diff options
author | Andre Fischer <af@openoffice.org> | 2002-06-28 09:07:27 +0000 |
---|---|---|
committer | Andre Fischer <af@openoffice.org> | 2002-06-28 09:07:27 +0000 |
commit | 680bc2eab1d4d38bc578d89f26a7ae014b6af9cd (patch) | |
tree | 598601e7c7785e8439fd16942452a3877ebc4d93 /toolkit | |
parent | be35c7c6ec27f13c396843712fbd70b6d6f20970 (diff) |
#100363# Supported services and types and the implementation name are now displayed.
Diffstat (limited to 'toolkit')
-rw-r--r-- | toolkit/test/accessibility/AccessibilityTreeModel.java | 3 | ||||
-rw-r--r-- | toolkit/test/accessibility/AccessibleUNOHandler.java | 115 | ||||
-rw-r--r-- | toolkit/test/accessibility/makefile.mk | 1 |
3 files changed, 119 insertions, 0 deletions
diff --git a/toolkit/test/accessibility/AccessibilityTreeModel.java b/toolkit/test/accessibility/AccessibilityTreeModel.java index 01f480be5964..016eabc65eca 100644 --- a/toolkit/test/accessibility/AccessibilityTreeModel.java +++ b/toolkit/test/accessibility/AccessibilityTreeModel.java @@ -54,6 +54,7 @@ public class AccessibilityTreeModel private static NodeHandler maSelectionHandler = new AccessibleSelectionHandler(); private static NodeHandler maRelationHandler = new AccessibleRelationHandler(); private static NodeHandler maTreeHandler = new AccessibleTreeHandler(); + private static NodeHandler maUNOHandler = new AccessibleUNOHandler(); private Canvas maCanvas; @@ -551,6 +552,7 @@ public class AccessibilityTreeModel aNode.addHandler (maHyperlinkHandler.createHandler (xContext)); aNode.addHandler (maSelectionHandler.createHandler (xContext)); aNode.addHandler (maRelationHandler.createHandler (xContext)); + aNode.addHandler (maUNOHandler.createHandler (xContext)); aNode.addHandler (maTreeHandler.createHandler (xContext)); } else @@ -579,6 +581,7 @@ public class AccessibilityTreeModel aNode.addHandler (maRelationHandler.createHandler (xContext)); aNode.addHandler (maCellHandler.createHandler (xContext)); aNode.addHandler (maSelectionHandler.createHandler (xContext)); + aNode.addHandler (maUNOHandler.createHandler (xContext)); aNode.addHandler (maTreeHandler.createHandler (xContext)); } } diff --git a/toolkit/test/accessibility/AccessibleUNOHandler.java b/toolkit/test/accessibility/AccessibleUNOHandler.java new file mode 100644 index 000000000000..1e1ba1b9b9c5 --- /dev/null +++ b/toolkit/test/accessibility/AccessibleUNOHandler.java @@ -0,0 +1,115 @@ +import com.sun.star.uno.UnoRuntime; +import drafts.com.sun.star.accessibility.XAccessible; +import drafts.com.sun.star.accessibility.XAccessibleContext; +import drafts.com.sun.star.accessibility.AccessibleRelation; +import drafts.com.sun.star.accessibility.XAccessibleRelationSet; +import drafts.com.sun.star.accessibility.AccessibleRelationType; +import com.sun.star.lang.XServiceInfo; +import com.sun.star.lang.XTypeProvider; +import com.sun.star.uno.Type; + + +/** This handler displays lower level UNO information. These are the + supported services, interfaces, and the implementation name. +*/ +class AccessibleUNOHandler + extends NodeHandler +{ + public NodeHandler createHandler (XAccessibleContext xContext) + { + if (xContext == null) + return null; + else + return new AccessibleUNOHandler (xContext); + } + + public AccessibleUNOHandler() + { + } + + public AccessibleUNOHandler (XAccessibleContext xContext) + { + maChildList.setSize (3); + } + + private XServiceInfo GetServiceInfo (AccessibleTreeNode aNode) + { + XServiceInfo xServiceInfo = null; + if (aNode instanceof AccTreeNode) + xServiceInfo = (XServiceInfo)UnoRuntime.queryInterface( + XServiceInfo.class, ((AccTreeNode)aNode).getContext()); + return xServiceInfo; + } + private XTypeProvider GetTypeProvider (AccessibleTreeNode aNode) + { + XTypeProvider xTypeProvider = null; + if (aNode instanceof AccTreeNode) + xTypeProvider = (XTypeProvider)UnoRuntime.queryInterface( + XTypeProvider.class, ((AccTreeNode)aNode).getContext()); + return xTypeProvider; + } + + public AccessibleTreeNode createChild (AccessibleTreeNode aParent, + int nIndex) + { + AccessibleTreeNode aChild = null; + XServiceInfo xServiceInfo; + switch (nIndex) + { + case 0 : // Implemenation name. + xServiceInfo = GetServiceInfo (aParent); + aChild = new StringNode ("Implementation name: " + + (xServiceInfo!=null ? xServiceInfo.getImplementationName() + : "<XServiceInfo not supported>"), + aParent); + break; + case 1 : + xServiceInfo = GetServiceInfo (aParent); + if (xServiceInfo == null) + aChild = new StringNode ( + "Supported services: <XServiceInfo not supported>", + aParent); + else + aChild = CreateServiceTree (aParent, xServiceInfo); + break; + case 2 : + XTypeProvider xTypeProvider = GetTypeProvider (aParent); + if (xTypeProvider == null) + aChild = new StringNode ( + "Supported interfaces: <XTypeProvider not supported>", + aParent); + else + aChild = CreateInterfaceTree (aParent, xTypeProvider); + break; + } + + return aChild; + } + + + private AccessibleTreeNode CreateServiceTree (AccessibleTreeNode aParent, + XServiceInfo xServiceInfo) + { + String[] aServiceNames = xServiceInfo.getSupportedServiceNames(); + VectorNode aNode = new VectorNode ("Supported Services", aParent); + + int nCount = aServiceNames.length; + for (int i=0; i<nCount; i++) + aNode.addChild (new StringNode (aServiceNames[i], aParent)); + + return aNode; + } + + private AccessibleTreeNode CreateInterfaceTree (AccessibleTreeNode aParent, + XTypeProvider xTypeProvider) + { + Type[] aTypes = xTypeProvider.getTypes(); + VectorNode aNode = new VectorNode ("Supported Interfaces", aParent); + + int nCount = aTypes.length; + for (int i=0; i<nCount; i++) + aNode.addChild (new StringNode (aTypes[i].getTypeName(), aParent)); + + return aNode; + } +} diff --git a/toolkit/test/accessibility/makefile.mk b/toolkit/test/accessibility/makefile.mk index ddf2383c2749..dff0f140dfbd 100644 --- a/toolkit/test/accessibility/makefile.mk +++ b/toolkit/test/accessibility/makefile.mk @@ -51,6 +51,7 @@ JAVA_FILES = \ AccessibleTreeCellRenderer.java \ AccessibleTreeHandler.java \ AccessibleTreeNode.java \ + AccessibleUNOHandler.java \ Canvas.java \ FrameActionListener.java \ InformationWriter.java \ |