1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 import com.sun.star.uno.UnoRuntime;
24 import com.sun.star.accessibility.XAccessibleContext;
25 import com.sun.star.accessibility.XAccessibleImage;
26 
27 
28 class AccessibleImageHandler extends NodeHandler
29 {
createHandler(XAccessibleContext xContext)30     public NodeHandler createHandler (XAccessibleContext xContext)
31     {
32         XAccessibleImage xImage =
33             (XAccessibleImage) UnoRuntime.queryInterface (
34                 XAccessibleImage.class, xContext);
35         if (xImage != null)
36             return new AccessibleImageHandler (xImage);
37         else
38             return null;
39     }
40 
AccessibleImageHandler()41     public AccessibleImageHandler ()
42     {
43     }
44 
AccessibleImageHandler(XAccessibleImage xImage)45     public AccessibleImageHandler (XAccessibleImage xImage)
46     {
47         if (xImage != null)
48             maChildList.setSize (1);
49     }
50 
getImage(AccTreeNode aNode)51     protected static XAccessibleImage getImage (AccTreeNode aNode)
52     {
53         return (XAccessibleImage) UnoRuntime.queryInterface (
54             XAccessibleImage.class, aNode.getContext());
55     }
56 
createChild(AccessibleTreeNode aParent, int nIndex)57     public AccessibleTreeNode createChild (AccessibleTreeNode aParent, int nIndex)
58     {
59         if (aParent instanceof AccTreeNode)
60         {
61             XAccessibleImage xImage = getImage ((AccTreeNode)aParent);
62             if (xImage != null)
63                 return new StringNode (
64                     "Image: " +
65                     xImage.getAccessibleImageDescription() + " (" +
66                     xImage.getAccessibleImageWidth() + "x" +
67                     xImage.getAccessibleImageHeight() + ")",
68                     aParent);
69         }
70         return null;
71     }
72 }
73