1*34dd1e25SAndrew Rist /**************************************************************
2*34dd1e25SAndrew Rist  *
3*34dd1e25SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*34dd1e25SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*34dd1e25SAndrew Rist  * distributed with this work for additional information
6*34dd1e25SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*34dd1e25SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*34dd1e25SAndrew Rist  * "License"); you may not use this file except in compliance
9*34dd1e25SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*34dd1e25SAndrew Rist  *
11*34dd1e25SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*34dd1e25SAndrew Rist  *
13*34dd1e25SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*34dd1e25SAndrew Rist  * software distributed under the License is distributed on an
15*34dd1e25SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*34dd1e25SAndrew Rist  * KIND, either express or implied.  See the License for the
17*34dd1e25SAndrew Rist  * specific language governing permissions and limitations
18*34dd1e25SAndrew Rist  * under the License.
19*34dd1e25SAndrew Rist  *
20*34dd1e25SAndrew Rist  *************************************************************/
21*34dd1e25SAndrew Rist 
22*34dd1e25SAndrew Rist 
23cdf0e10cSrcweir import com.sun.star.uno.Type;
24cdf0e10cSrcweir import javax.swing.tree.TreeNode;
25cdf0e10cSrcweir 
26cdf0e10cSrcweir 
27cdf0e10cSrcweir public class SwingUnoNode extends HideableMutableTreeNode implements XUnoNode{
28cdf0e10cSrcweir     private UnoNode m_oUnoNode;
29cdf0e10cSrcweir 
30cdf0e10cSrcweir     /** Creates a new instance of SwingUnoNode */
SwingUnoNode(Object _oUnoObject)31cdf0e10cSrcweir     public SwingUnoNode(Object _oUnoObject) {
32cdf0e10cSrcweir         super();
33cdf0e10cSrcweir         m_oUnoNode = new UnoNode(_oUnoObject);
34cdf0e10cSrcweir     }
35cdf0e10cSrcweir 
36cdf0e10cSrcweir 
SwingUnoNode(Object _oUnoObject, Type _aType)37cdf0e10cSrcweir     public SwingUnoNode(Object _oUnoObject, Type _aType) {
38cdf0e10cSrcweir         super();
39cdf0e10cSrcweir         m_oUnoNode = new UnoNode(_oUnoObject, _aType);
40cdf0e10cSrcweir         if (_aType != null){
41cdf0e10cSrcweir             this.setLabel(_aType.getTypeName());
42cdf0e10cSrcweir         }
43cdf0e10cSrcweir     }
44cdf0e10cSrcweir 
45cdf0e10cSrcweir 
getUnoObject()46cdf0e10cSrcweir     public Object getUnoObject(){
47cdf0e10cSrcweir         return m_oUnoNode.getUnoObject();
48cdf0e10cSrcweir     }
49cdf0e10cSrcweir 
setVisible(String _sFilter)50cdf0e10cSrcweir     public void setVisible(String _sFilter){
51cdf0e10cSrcweir         boolean bisVisible = isFilterApplicable(_sFilter);
52cdf0e10cSrcweir         super.setVisible(bisVisible);
53cdf0e10cSrcweir     }
54cdf0e10cSrcweir 
isFilterApplicable(String _sFilter)55cdf0e10cSrcweir     public boolean isFilterApplicable(String _sFilter) {
56cdf0e10cSrcweir         return m_oUnoNode.isFilterApplicable(_sFilter, getName());
57cdf0e10cSrcweir     }
58cdf0e10cSrcweir 
setParameterObjects(Object[] _oParamObjects)59cdf0e10cSrcweir     public void setParameterObjects(Object[] _oParamObjects) {
60cdf0e10cSrcweir         m_oUnoNode.setParameterObjects(_oParamObjects);
61cdf0e10cSrcweir     }
62cdf0e10cSrcweir 
openIdlDescription(String _SDKPath)63cdf0e10cSrcweir     public void openIdlDescription(String _SDKPath) {
64cdf0e10cSrcweir         m_oUnoNode.openIdlDescription(_SDKPath, getClassName(), getAnchor());
65cdf0e10cSrcweir     }
66cdf0e10cSrcweir 
getParameterObjects()67cdf0e10cSrcweir     public Object[] getParameterObjects() {
68cdf0e10cSrcweir         return m_oUnoNode.getParameterObjects();
69cdf0e10cSrcweir     }
70cdf0e10cSrcweir 
getClassName()71cdf0e10cSrcweir     public String getClassName(){
72cdf0e10cSrcweir         String sClassName = m_oUnoNode.getClassName();
73cdf0e10cSrcweir         if (sClassName.equals("")){
74cdf0e10cSrcweir             TreeNode oTreeNode = getParent();
75cdf0e10cSrcweir             if (oTreeNode != null){
76cdf0e10cSrcweir                if (oTreeNode instanceof XUnoNode){
77cdf0e10cSrcweir                    SwingUnoNode oUnoNode = (SwingUnoNode) oTreeNode;
78cdf0e10cSrcweir                    sClassName = oUnoNode.getClassName();
79cdf0e10cSrcweir                }
80cdf0e10cSrcweir             }
81cdf0e10cSrcweir         }
82cdf0e10cSrcweir         return sClassName;
83cdf0e10cSrcweir     }
84cdf0e10cSrcweir 
getAnchor()85cdf0e10cSrcweir     public String getAnchor() {
86cdf0e10cSrcweir         return m_oUnoNode.getAnchor();
87cdf0e10cSrcweir     }
88cdf0e10cSrcweir 
89cdf0e10cSrcweir 
setFoldable(boolean _bIsFoldable)90cdf0e10cSrcweir     public void setFoldable(boolean _bIsFoldable){
91cdf0e10cSrcweir         if (_bIsFoldable){
92cdf0e10cSrcweir             addDummyNode();
93cdf0e10cSrcweir         }
94cdf0e10cSrcweir         else{
95cdf0e10cSrcweir             removeDummyNode();
96cdf0e10cSrcweir         }
97cdf0e10cSrcweir     }
98cdf0e10cSrcweir 
99cdf0e10cSrcweir 
getParentNode()100cdf0e10cSrcweir     public XUnoNode getParentNode(){
101cdf0e10cSrcweir         return (SwingUnoNode) super.getParent();
102cdf0e10cSrcweir     }
103cdf0e10cSrcweir 
104cdf0e10cSrcweir 
addChildNode(XUnoNode _xUnoNode)105cdf0e10cSrcweir     public void addChildNode(XUnoNode _xUnoNode) {
106cdf0e10cSrcweir         super.add((SwingUnoNode) _xUnoNode);
107cdf0e10cSrcweir     }
108cdf0e10cSrcweir 
setLabel(String _sLabel)109cdf0e10cSrcweir     public void  setLabel(String _sLabel){
110cdf0e10cSrcweir         super.setUserObject(_sLabel);
111cdf0e10cSrcweir         this.m_oUnoNode.setLabel(_sLabel);
112cdf0e10cSrcweir     }
113cdf0e10cSrcweir 
getLabel()114cdf0e10cSrcweir     public String getLabel(){
115cdf0e10cSrcweir         return (String) super.getUserObject();
116cdf0e10cSrcweir     }
117cdf0e10cSrcweir 
118cdf0e10cSrcweir 
getChildCount()119cdf0e10cSrcweir     public int getChildCount(){
120cdf0e10cSrcweir         return super.getChildCount();
121cdf0e10cSrcweir     }
122cdf0e10cSrcweir 
123cdf0e10cSrcweir 
getChild(int _i)124cdf0e10cSrcweir     public XUnoNode getChild(int _i){
125cdf0e10cSrcweir         return (SwingUnoNode) super.getChildAt(_i);
126cdf0e10cSrcweir     }
127cdf0e10cSrcweir 
getNodeType()128cdf0e10cSrcweir     public int getNodeType(){
129cdf0e10cSrcweir         return m_oUnoNode.getNodeType();
130cdf0e10cSrcweir     }
131cdf0e10cSrcweir 
setNodeType(int _nNodeType)132cdf0e10cSrcweir     public void setNodeType(int _nNodeType){
133cdf0e10cSrcweir         m_oUnoNode.setNodeType(_nNodeType);
134cdf0e10cSrcweir     }
135cdf0e10cSrcweir 
136cdf0e10cSrcweir 
getName()137cdf0e10cSrcweir     public String getName(){
138cdf0e10cSrcweir         return getClassName();
139cdf0e10cSrcweir     }
140cdf0e10cSrcweir 
141cdf0e10cSrcweir 
getUnoType()142cdf0e10cSrcweir     public Type getUnoType(){
143cdf0e10cSrcweir         return m_oUnoNode.getUnoType();
144cdf0e10cSrcweir     }
145cdf0e10cSrcweir }
146