xref: /AOO41X/main/toolkit/test/accessibility/AccessibleTableHandler.java (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
1 
2 import com.sun.star.uno.UnoRuntime;
3 import com.sun.star.accessibility.XAccessibleContext;
4 import com.sun.star.accessibility.XAccessibleTable;
5 
6 
7 class AccessibleTableHandler extends NodeHandler
8 {
9     public NodeHandler createHandler (XAccessibleContext xContext)
10     {
11         XAccessibleTable xTable =
12             (XAccessibleTable) UnoRuntime.queryInterface (
13                 XAccessibleTable.class, xContext);
14         if (xTable != null)
15             return new AccessibleTableHandler (xTable);
16         else
17             return null;
18     }
19 
20     public AccessibleTableHandler ()
21     {
22     }
23 
24     public AccessibleTableHandler (XAccessibleTable xTable)
25     {
26         if (xTable != null)
27             maChildList.setSize (4);
28     }
29 
30     protected static XAccessibleTable getTable(Object aObject)
31     {
32         return (XAccessibleTable) UnoRuntime.queryInterface (
33             XAccessibleTable.class, aObject);
34     }
35 
36     public AccessibleTreeNode createChild (AccessibleTreeNode aParent, int nIndex)
37     {
38         AccessibleTreeNode aChild = null;
39         XAccessibleTable xTable = null;
40         if (aParent instanceof AccTreeNode)
41             xTable = ((AccTreeNode)aParent).getTable();
42         try
43         {
44             if( xTable != null )
45             {
46                 switch( nIndex )
47                 {
48                     case 0:
49                         aChild = new StringNode ("# table rows: " + xTable.getAccessibleRowCount(), aParent);
50                         break;
51                     case 1:
52                         aChild = new StringNode ("# table columns: " + xTable.getAccessibleColumnCount(), aParent);
53                         break;
54                     case 2:
55 						{
56 							String sText = "selected rows: ";
57 							int[] aSelected = xTable.getSelectedAccessibleRows();
58 							for( int i=0; i < aSelected.length; i++ )
59 							{
60 								sText += aSelected[i];
61 								sText += " ";
62 							}
63                         	aChild = new StringNode (sText, aParent);
64 						}
65                         break;
66                     case 3:
67 						{
68 							String sText = "selected columns: ";
69 							int[] aSelected = xTable.getSelectedAccessibleColumns();
70 							for( int i=0; i < aSelected.length; i++ )
71 							{
72 								sText += aSelected[i];
73 								sText += " ";
74 							}
75                         	aChild = new StringNode (sText, aParent);
76 						}
77                         break;
78                     default:
79                         aChild = new StringNode ("unknown child index " + nIndex, aParent);
80                 }
81             }
82         }
83         catch (Exception e)
84         {
85             // Return empty child.
86         }
87 
88         return aChild;
89     }
90 }
91