diff options
Diffstat (limited to 'odk/examples/java/Inspector/InspectorPane.java')
-rw-r--r-- | odk/examples/java/Inspector/InspectorPane.java | 629 |
1 files changed, 0 insertions, 629 deletions
diff --git a/odk/examples/java/Inspector/InspectorPane.java b/odk/examples/java/Inspector/InspectorPane.java deleted file mode 100644 index 14d14478..00000000 --- a/odk/examples/java/Inspector/InspectorPane.java +++ /dev/null @@ -1,629 +0,0 @@ -/************************************************************************* - * - * The Contents of this file are made available subject to the terms of - * the BSD license. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Sun Microsystems, Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - *************************************************************************/ - - -import com.sun.star.lib.uno.helper.WeakBase; -import com.sun.star.uno.Any; -import com.sun.star.uno.AnyConverter; -import com.sun.star.lang.XServiceInfo; -import com.sun.star.uno.TypeClass; -import com.sun.star.uno.UnoRuntime; -import com.sun.star.uno.Type; -import com.sun.star.uno.XComponentContext; -import com.sun.star.beans.XIntrospectionAccess; -import com.sun.star.beans.Property; -import com.sun.star.beans.PropertyValue; -import com.sun.star.beans.XPropertySet; -import com.sun.star.reflection.XIdlMethod; -import javax.swing.tree.ExpandVetoException; -import org.openoffice.XInstanceInspector; -import javax.swing.tree.TreePath; -import javax.swing.event.TreeWillExpandListener; - - public class InspectorPane extends WeakBase implements XInstanceInspector{ //, XServiceInfo - private XIdlMethod[] xIdlMethods; - private Property[] aProperties; - private boolean bIncludeContent = false; - private XComponentContext m_xComponentContext; - private XDialogProvider m_xDialogProvider; - private Introspector m_oIntrospector = null; - private SourceCodeGenerator m_oSourceCodeGenerator; - private XTreeControlProvider m_xTreeControlProvider; - private String sTitle = ""; - - - /** The constructor of the inner class has a XMultiServiceFactory parameter. - * @param xMultiServiceFactory XMultiServiceFactory - */ - public InspectorPane(XComponentContext _xComponentContext, XDialogProvider _xDialogProvider, XTreeControlProvider _xTreeControlProvider, int _nLanguage) { - m_xComponentContext = _xComponentContext; - m_xTreeControlProvider = _xTreeControlProvider; - m_xDialogProvider = _xDialogProvider; - m_oIntrospector = Introspector.getIntrospector(m_xComponentContext); - m_oSourceCodeGenerator = new SourceCodeGenerator(_nLanguage); - _xTreeControlProvider.addInspectorPane(this); - } - - - private void setMaximumOfProgressBar(Object _oUnoObject){ - int nMaxValue = 0; - xIdlMethods = m_oIntrospector.getMethods(_oUnoObject); - aProperties = m_oIntrospector.getProperties(_oUnoObject); - } - - - /** Inspect the given object for methods, properties, interfaces, and - * services. - * @param a The object to inspect - * @throws RuntimeException If - */ - public void inspect(java.lang.Object _oUserDefinedObject, String _sTitle) throws com.sun.star.uno.RuntimeException { - try { - Object oContainer = m_xTreeControlProvider.inspect(_oUserDefinedObject, _sTitle); - m_xDialogProvider.addInspectorPage(getTitle(), oContainer); - } - catch( Exception exception ) { - exception.printStackTrace(System.out); - }} - - - public void setTitle(String _sTitle){ - if (_sTitle != null){ - if (_sTitle.length() > 0){ - sTitle = _sTitle; - } - } - } - - - public String getTitle(){ - return sTitle; - } - - - - private Type[] getTypes(Object _oUnoObject){ - Type[] aTypes = null; - if (m_oIntrospector.isArray(_oUnoObject)){ - aTypes = (Type[])_oUnoObject; - } - else{ - aTypes = m_oIntrospector.getInterfaces(_oUnoObject); - } - return aTypes; - } - - - private Object invoke(XUnoMethodNode _oUnoMethodNode){ - try{ - String sParamValueDescription = ""; - Object oUnoReturnObject = _oUnoMethodNode.invoke(); - boolean bHasParameters = _oUnoMethodNode.hasParameters(); - boolean bIsPrimitive = _oUnoMethodNode.isPrimitive(); - if (bHasParameters){ - sParamValueDescription = " (" + m_oSourceCodeGenerator.getMethodParameterValueDescription(_oUnoMethodNode, _oUnoMethodNode.getLastParameterObjects(), true) + ")"; - } - if (oUnoReturnObject != null ){ - String sNodeDescription = ""; - XUnoNode oUnoNode = null; - if (_oUnoMethodNode.getXIdlMethod().getReturnType().getTypeClass().getValue() == TypeClass.VOID_value){ - sNodeDescription += _oUnoMethodNode.getXIdlMethod().getReturnType().getName() + " " + _oUnoMethodNode.getXIdlMethod().getName() + sParamValueDescription; - _oUnoMethodNode.setLabel(sNodeDescription); - m_xTreeControlProvider.nodeChanged(_oUnoMethodNode); - } - else if (bHasParameters || !bIsPrimitive){ - if (bIsPrimitive){ - sNodeDescription += m_oSourceCodeGenerator.getStringValueOfObject(oUnoReturnObject, _oUnoMethodNode.getTypeClass()); - } - else{ - Any aReturnObject = Any.complete(oUnoReturnObject); - String sShortClassName = m_oIntrospector.getShortClassName(aReturnObject.getType().getTypeName()); - sNodeDescription += m_oSourceCodeGenerator.getVariableNameforUnoObject(sShortClassName); - } - if (m_oIntrospector.isArray(oUnoReturnObject)){ - if (m_oIntrospector.isUnoTypeObject(oUnoReturnObject)){ - oUnoNode = addUnoFacetteNode(_oUnoMethodNode, XUnoFacetteNode.SINTERFACEDESCRIPTION, _oUnoMethodNode.getUnoObject()); - } - else if(m_oIntrospector.isUnoPropertyTypeObject(oUnoReturnObject)){ - oUnoNode = addUnoFacetteNode(_oUnoMethodNode, XUnoFacetteNode.SPROPERTYINFODESCRIPTION, oUnoReturnObject); - } - else if(m_oIntrospector.isUnoPropertyValueTypeObject(oUnoReturnObject)){ - oUnoNode = addUnoFacetteNode(_oUnoMethodNode, XUnoFacetteNode.SPROPERTYVALUEDESCRIPTION, oUnoReturnObject); - } - } - if (oUnoNode == null){ - if (bHasParameters){ - sNodeDescription += sParamValueDescription; - } - oUnoNode = addUnoNode(null, oUnoReturnObject, sNodeDescription); - if (bHasParameters){ - oUnoNode.setParameterObjects(_oUnoMethodNode.getLastParameterObjects()); - } - } - if (oUnoNode != null){ - oUnoNode.setFoldable(!bIsPrimitive); - _oUnoMethodNode.setFoldable(false); - _oUnoMethodNode.addChildNode(oUnoNode); - m_xTreeControlProvider.nodeInserted(_oUnoMethodNode, oUnoNode, _oUnoMethodNode.getChildCount()-1); - } - } - else{ - if (bIsPrimitive){ - sNodeDescription = _oUnoMethodNode.getStandardMethodDescription() + "=" + UnoMethodNode.getDisplayValueOfPrimitiveType(oUnoReturnObject); - _oUnoMethodNode.setLabel(sNodeDescription); - m_xTreeControlProvider.nodeChanged(_oUnoMethodNode); - } - } - } - // ReturnObject of method node == null.. - else{ - if (!bHasParameters){ - _oUnoMethodNode.setLabel(_oUnoMethodNode.getLabel() + " = null"); - } - else{ - _oUnoMethodNode.setLabel(_oUnoMethodNode.getXIdlMethod().getName() + sParamValueDescription + " = null"); - } - m_xTreeControlProvider.nodeChanged(_oUnoMethodNode); - } - return oUnoReturnObject; - }catch(Exception exception ) { - return null; - }} - - - public void invokeSelectedMethodNode(){ - XTreePathProvider xTreePathProvider = m_xTreeControlProvider.getSelectedPath(); - XUnoNode oUnoNode = xTreePathProvider.getLastPathComponent(); - if (oUnoNode instanceof XUnoMethodNode){ - invoke((XUnoMethodNode) oUnoNode); - m_xTreeControlProvider.expandPath(xTreePathProvider); - } - } - - - public void addSourceCodeOfSelectedNode(){ - XTreePathProvider oTreePathProvider = m_xTreeControlProvider.getSelectedPath(); - XUnoNode oUnoNode = oTreePathProvider.getLastPathComponent(); - if (oUnoNode instanceof XUnoMethodNode){ - XUnoMethodNode oUnoMethodNode = (XUnoMethodNode) oUnoNode; - if (!oUnoMethodNode.isInvoked() && oUnoMethodNode.isInvokable()){ - invoke(oUnoMethodNode); - } - } - String sSourceCode = m_oSourceCodeGenerator.addSourceCodeOfUnoObject(oTreePathProvider, true, true, true); - m_xTreeControlProvider.setSourceCode(sSourceCode); - } - - - public void convertCompleteSourceCode(int _nLanguage){ - String sSourceCode = m_oSourceCodeGenerator.convertAllUnoObjects(_nLanguage); - m_xTreeControlProvider.setSourceCode(sSourceCode); - } - - protected XUnoNode getSelectedNode(){ - return m_xTreeControlProvider.getSelectedNode(); - } - - - // add the object to the hashtable for a possible access in the tree - private XUnoFacetteNode addUnoFacetteNode(XUnoNode _oParentNode, String _sNodeDescription, Object _oUnoObject){ - return m_xTreeControlProvider.addUnoFacetteNode( _oParentNode, _sNodeDescription, _oUnoObject); - } - - - private XUnoMethodNode addMethodNode(Object _objectElement, XIdlMethod _xIdlMethod){ - return m_xTreeControlProvider.addMethodNode(_objectElement, _xIdlMethod); - } - - - - public void addMethodsToTreeNode(XUnoNode _oGrandParentNode, Object _oUnoParentObject, XIdlMethod[] _xIdlMethods){ - if (this.m_oIntrospector.isValid(_xIdlMethods)){ - for ( int n = 0; n < _xIdlMethods.length; n++ ) { - XIdlMethod xIdlMethod = _xIdlMethods[n]; - if (!xIdlMethod.getDeclaringClass().getName().equals("com.sun.star.uno.XInterface")){ - XUnoMethodNode oChildNode = addMethodNode(_oUnoParentObject, xIdlMethod); - if (oChildNode != null){ - _oGrandParentNode.addChildNode(oChildNode); - } - } - } - } - } - - - private void addFacetteNodesToTreeNode(XUnoNode _oParentNode, Object _oUnoObject){ - if (m_oIntrospector.hasMethods(_oUnoObject)){ - XUnoFacetteNode oUnoFacetteNode = addUnoFacetteNode(_oParentNode, XUnoFacetteNode.SMETHODDESCRIPTION, _oUnoObject); - } - if (m_oIntrospector.hasProperties(_oUnoObject)){ - XUnoFacetteNode oUnoFacetteNode = addUnoFacetteNode(_oParentNode, XUnoFacetteNode.SPROPERTYDESCRIPTION, _oUnoObject); - } - if (m_oIntrospector.hasInterfaces(_oUnoObject)){ - XUnoFacetteNode oUnoFacetteNode = addUnoFacetteNode(_oParentNode, XUnoFacetteNode.SINTERFACEDESCRIPTION, _oUnoObject); - } - if (m_oIntrospector.isContainer(_oUnoObject)){ - XUnoFacetteNode oUnoFacetteNode = addUnoFacetteNode(_oParentNode, XUnoFacetteNode.SCONTAINERDESCRIPTION, _oUnoObject); - } - if (m_oIntrospector.hasSupportedServices(_oUnoObject)){ - XUnoFacetteNode oUnoFacetteNode = addUnoFacetteNode(_oParentNode, XUnoFacetteNode.SSERVICEDESCRIPTION, _oUnoObject); - } - } - - - private void addInterfacesToTreeNode(XUnoNode _oGrandParentNode, Object _oUnoParentObject, Type[] _aTypes) { - try { - if (_oUnoParentObject != null){ - for ( int m = 0; m < _aTypes.length; m++ ) { - addUnoNode(_oGrandParentNode, _oUnoParentObject, _aTypes[m]); - } - } - } - catch( Exception exception ) { - exception.printStackTrace(System.out); - }} - - - // add all services for the given object to the tree under the node parent - private void addServicesToTreeNode(XUnoNode _oGrandParentNode, Object _oUnoObject) { - try{ - XServiceInfo xServiceInfo = ( XServiceInfo ) UnoRuntime.queryInterface( XServiceInfo.class, _oUnoObject ); - if ( xServiceInfo != null ){ - String[] sSupportedServiceNames = xServiceInfo.getSupportedServiceNames(); - for ( int m = 0; m < sSupportedServiceNames.length; m++ ) { - String sServiceName = sSupportedServiceNames[m]; - if (sServiceName.length() > 0){ - XUnoNode oUnoNode = addUnoNode(_oGrandParentNode, _oUnoObject, sSupportedServiceNames[m]); - oUnoNode.setNodeType(XUnoNode.nSERVICE); - } - } - } - } - catch(Exception exception) { - exception.printStackTrace(System.out); - }} - - - private void addPropertiesAndInterfacesOfService(XUnoNode _oUnoServiceNode){ - String sServiceName = _oUnoServiceNode.getClassName(); - Object oUnoObject = _oUnoServiceNode.getUnoObject(); - addInterfacesToTreeNode(_oUnoServiceNode, oUnoObject, m_oIntrospector.getInterfaces(oUnoObject, sServiceName)); - addPropertiesToTreeNode(_oUnoServiceNode, oUnoObject, m_oIntrospector.getProperties(oUnoObject, sServiceName)); - } - - - private void addPropertiesToTreeNode(XUnoNode _oParentNode, Object _oUnoParentObject, Property[] _aProperties) { - try { - if (_aProperties.length > 0){ - for ( int n = 0; n < _aProperties.length; n++ ){ - Property aProperty = _aProperties[n]; - XIntrospectionAccess xIntrospectionAccess = m_oIntrospector.getXIntrospectionAccess(_oUnoParentObject); - XPropertySet xPropertySet = ( XPropertySet ) UnoRuntime.queryInterface( XPropertySet.class, xIntrospectionAccess.queryAdapter(new Type( XPropertySet.class))); - if (xPropertySet != null) { - if (xPropertySet.getPropertySetInfo().hasPropertyByName(aProperty.Name)){ - Object objectElement = xPropertySet.getPropertyValue(aProperty.Name); - if (objectElement != null) { - XUnoNode oChildNode = m_xTreeControlProvider.addUnoPropertyNode(_oUnoParentObject, aProperty, objectElement); - if (oChildNode != null){ - _oParentNode.addChildNode(oChildNode); - } - } - } - } - } - } - } - catch(Exception exception) { - exception.printStackTrace(System.out); - }} - - - public void addContainerElementsToTreeNode(XUnoNode _oParentNode, Object _oUnoParentObject){ - Object[] oUnoContainerElements = m_oIntrospector.getUnoObjectsOfContainer(_oUnoParentObject); - if (m_oIntrospector.isValid(oUnoContainerElements)){ - if (oUnoContainerElements.length > 0){ - for (int i=0; i< oUnoContainerElements.length; i++){ - XUnoNode oChildNode = addUnoNode(_oParentNode, oUnoContainerElements[i], UnoNode.getNodeDescription(oUnoContainerElements[i])); - m_xTreeControlProvider.nodeInserted(_oParentNode, oChildNode, _oParentNode.getChildCount()-1); - } - } - } - } - - - private XUnoNode addUnoNode(XUnoNode _oParentNode, Object _oUnoObject, String _sLabel ){ - XUnoNode oUnoNode = this.m_xTreeControlProvider.addUnoNode(_oUnoObject); - oUnoNode.setLabel(_sLabel); - if (_oParentNode != null){ - _oParentNode.addChildNode(oUnoNode); - } - setNodeFoldable(oUnoNode, _oUnoObject); - return oUnoNode; - } - - - private void setNodeFoldable(XUnoNode _oUnoNode, Object _oUnoObject){ - if (_oUnoObject != null){ - if (!m_oIntrospector.isObjectPrimitive(_oUnoObject)){ - _oUnoNode.setFoldable(true); - } - } - } - - - private XUnoNode addUnoNode(XUnoNode _oParentNode, Object _oUnoObject, Type _aType){ - XUnoNode oUnoNode = this.m_xTreeControlProvider.addUnoNode(_oUnoObject, _aType); - if (_oParentNode != null){ - _oParentNode.addChildNode(oUnoNode); - } - setNodeFoldable(oUnoNode, _oUnoObject); - return oUnoNode; - } - - - private void addPropertySetInfoNodesToTreeNode(XUnoFacetteNode _oUnoFacetteNode, Object _oUnoObject){ - if (_oUnoObject.getClass().isArray()){ - Object[] object = ( Object[] ) _oUnoObject; - for ( int i = 0; i < object.length; i++ ) { - Property aProperty = (Property) object[i]; - XUnoPropertyNode oUnoPropertyNode = m_xTreeControlProvider.addUnoPropertyNode(_oUnoObject, aProperty); - oUnoPropertyNode.setLabel(XUnoFacetteNode.SPROPERTYINFODESCRIPTION + " (" + aProperty.Name + ")"); - oUnoPropertyNode.setFoldable(true); - _oUnoFacetteNode.addChildNode(oUnoPropertyNode); - } - } - } - - private void addPrimitiveValuesToTreeNode(XUnoNode _oUnoNode, Object _oUnoObject){ - if (_oUnoObject.getClass().isArray()){ - if (!_oUnoObject.getClass().getComponentType().isPrimitive()){ - Object[] object = ( Object[] ) _oUnoObject; - for ( int i = 0; i < object.length; i++ ) { - if (m_oIntrospector.isObjectPrimitive(object[i])){ - XUnoNode oChildNode = addUnoNode(_oUnoNode, null, UnoNode.getNodeDescription(object[i])); - } - } - } - else{ - String[] sDisplayValues = UnoNode.getDisplayValuesofPrimitiveArray(_oUnoObject); - for ( int i = 0; i < sDisplayValues.length; i++ ) { - XUnoNode oUnoNode = addUnoNode(_oUnoNode, null, sDisplayValues[i]); - } - } - } - } - - - private void addPropertySetInfoSubNodes(XUnoPropertyNode _oUnoPropertyNode){ - Property aProperty = _oUnoPropertyNode.getProperty(); - _oUnoPropertyNode.addChildNode(m_xTreeControlProvider.addUnoPropertyNodeWithName(aProperty)); - _oUnoPropertyNode.addChildNode(m_xTreeControlProvider.addUnoPropertyNodeWithType(aProperty)); - _oUnoPropertyNode.addChildNode(m_xTreeControlProvider.addUnoPropertyNodeWithHandle(aProperty)); - _oUnoPropertyNode.addChildNode(m_xTreeControlProvider.addUnoPropertyNodeWithAttributesDescription(aProperty)); - } - - - private void addPropertyValueSubNodes(XUnoFacetteNode _oUnoFacetteNode, Object _oUnoObject){ - if (m_oIntrospector.isUnoPropertyValueTypeObject(_oUnoObject)){ - Object[] object = ( Object[] ) _oUnoObject; - for ( int i = 0; i < object.length; i++ ) { - String sObjectClassName = object[i].getClass().getName(); - if (sObjectClassName.equals("com.sun.star.beans.PropertyValue")){ - XUnoNode oChildNode = null; - PropertyValue aPropertyValue = (PropertyValue) object[i]; - if (! m_oIntrospector.isObjectPrimitive(aPropertyValue.Value)){ - oChildNode = m_xTreeControlProvider.addUnoPropertyNode(_oUnoObject, aPropertyValue, _oUnoObject); - } - else{ - oChildNode = addUnoNode(null, aPropertyValue.Value, UnoPropertyNode.getStandardPropertyValueDescription(aPropertyValue)); - } - if (oChildNode != null){ - _oUnoFacetteNode.addChildNode(oChildNode); - } - } - } - } - } - - - public boolean expandNode(XUnoNode _oUnoNode, XTreePathProvider _xTreePathProvider){ - if ( _oUnoNode != null ) { - _oUnoNode.setFoldable(false); - if (m_xTreeControlProvider.isMethodNode(_oUnoNode)){ - XUnoMethodNode oUnoMethodNode = (XUnoMethodNode) _oUnoNode; - if (!oUnoMethodNode.isInvoked()){ - Object oUnoReturnObject = invoke((XUnoMethodNode) _oUnoNode); - if (oUnoReturnObject == null){ - _oUnoNode.setFoldable(true); - return false; - } - } - } - else if (m_xTreeControlProvider.isPropertyNode(_oUnoNode)){ - XUnoPropertyNode oUnoPropertyNode = (XUnoPropertyNode) _oUnoNode; - Object oUnoObject = oUnoPropertyNode.getUnoReturnObject(); - if (oUnoPropertyNode.getPropertyNodeType() == XUnoPropertyNode.nPROPERTYSETINFOTYPE){ - addPropertySetInfoSubNodes(oUnoPropertyNode); - } - else{ - //TOOD this code is redundant!!! - if ( oUnoObject.getClass().isArray()){ - // TOODO probably we should provid a possibility to insert also non-primitive nodes - addPrimitiveValuesToTreeNode(oUnoPropertyNode, oUnoObject); - } - else{ - addFacetteNodesToTreeNode(oUnoPropertyNode, oUnoObject); - } - } - } - else if (m_xTreeControlProvider.isFacetteNode(_oUnoNode)){ - XUnoFacetteNode oUnoFacetteNode = (XUnoFacetteNode) _oUnoNode; - Object oUnoObject = _oUnoNode.getUnoObject(); - if (oUnoFacetteNode.isMethodNode()){ - addMethodsToTreeNode(oUnoFacetteNode, oUnoObject, m_oIntrospector.getMethods(oUnoObject)); - } - if (oUnoFacetteNode.isPropertyNode()){ - String sNodeDescription = oUnoFacetteNode.getLabel(); - // TODO: it's very dangerous to distinguishe the different UnoFacetteNodes only by the nodedescription - if (sNodeDescription.startsWith(XUnoFacetteNode.SPROPERTYINFODESCRIPTION)){ - addPropertySetInfoNodesToTreeNode(oUnoFacetteNode, oUnoObject); - } - else if (sNodeDescription.startsWith(XUnoFacetteNode.SPROPERTYVALUEDESCRIPTION)){ - addPropertyValueSubNodes(oUnoFacetteNode, oUnoObject); - } - else{ - addPropertiesToTreeNode(oUnoFacetteNode, oUnoObject, m_oIntrospector.getProperties(oUnoObject)); - } - } - if (oUnoFacetteNode.isServiceNode()){ - addServicesToTreeNode(oUnoFacetteNode, oUnoObject); - } - if (oUnoFacetteNode.isInterfaceNode()){ - addInterfacesToTreeNode(oUnoFacetteNode, oUnoObject, getTypes(oUnoObject)); - } - if (oUnoFacetteNode.isContainerNode()){ - addContainerElementsToTreeNode(oUnoFacetteNode, oUnoObject); - } - } - else if (_oUnoNode.getNodeType() == XUnoNode.nSERVICE){ - addPropertiesAndInterfacesOfService(_oUnoNode); - } - else if (_oUnoNode.getNodeType() == XUnoNode.nINTERFACE){ - Type aType = _oUnoNode.getUnoType(); - if (aType != null){ - addMethodsToTreeNode(_oUnoNode, _oUnoNode.getUnoObject(), m_oIntrospector.getMethodsOfInterface(aType)); - } - } - else if (_oUnoNode.getNodeType() == XUnoNode.nOTHERS){ - Object oUnoObject = _oUnoNode.getUnoObject(); - if ( oUnoObject.getClass().isArray()){ - // TOODO probably we should provid a possibility to insert also non-primitive nodes - addPrimitiveValuesToTreeNode(_oUnoNode, oUnoObject); - } - else{ - addFacetteNodesToTreeNode(_oUnoNode, oUnoObject); - } - } - } - return true; - } - - - - public void applyFilter(XUnoFacetteNode _oUnoFacetteNode, String _sFilter){ - for (int i = 0; i < _oUnoFacetteNode.getChildCount(); i++){ - XUnoNode oUnoNode = _oUnoFacetteNode.getChild(i); - boolean bIsVisible = oUnoNode.isFilterApplicable(_sFilter); - m_xTreeControlProvider.setNodeVisible(oUnoNode, bIsVisible); - } - _oUnoFacetteNode.setFilter(_sFilter); - } - - - /** In opposition to 'getUnoObjectOfTreeNode' this method inspects the passed node if it represents a Uno object - * If not it returns null - * - */ - private Object getUnoObjectOfExplicitTreeNode(XTreePathProvider _xTreePathProvider){ - XUnoNode oUnoNode = _xTreePathProvider.getLastPathComponent(); - if (oUnoNode != null){ - return oUnoNode.getUnoObject(); - } - return null; - } - - - public String getFilter(XUnoNode _oUnoNode){ - String sFilter = ""; - if (_oUnoNode != null){ - XUnoNode oUnoNode = _oUnoNode; - boolean bleaveLoop = false; - do{ - if (m_xTreeControlProvider.isFacetteNode(oUnoNode)){ - sFilter = ((XUnoFacetteNode) oUnoNode).getFilter(); - bleaveLoop = true; - } - else{ - if (oUnoNode.getParentNode() != null){ - oUnoNode = oUnoNode.getParentNode(); - } - else{ - bleaveLoop = true; - } - } - } while(!bleaveLoop); - } - return sFilter; - } - - - /** In opposition to 'getUnoObjectOfexplictTreeNode' this method inspects the passed node if it represents a Uno object - * if not it keeps checking all ancestors until it finds a Uno representation - */ - private Object getUnoObjectOfTreeNode(XTreePathProvider _xTreePathProvider){ - XTreePathProvider xTreePathProvider = _xTreePathProvider; - HideableMutableTreeNode oNode = null; - Object oUnoObject = null; - while (xTreePathProvider != null){ - oUnoObject = getUnoObjectOfExplicitTreeNode(xTreePathProvider); - if (oUnoObject != null){ - if (oUnoObject instanceof String){ - } - else{ - if (!m_oIntrospector.isUnoTypeObject(oUnoObject)){ - return oUnoObject; - } - } - } - xTreePathProvider = xTreePathProvider.getParentPath(); - } - return null; - } - - - public void showPopUpMenu(Object _invoker, int x, int y) throws ClassCastException{ - XUnoNode oUnoNode = getSelectedNode(); - boolean bdoEnableInvoke = oUnoNode instanceof XUnoMethodNode; -// boolean bdoEnableSourceCodeGeneration = true; - if (bdoEnableInvoke){ - XUnoMethodNode oUnoMethodNode = (XUnoMethodNode) oUnoNode; - bdoEnableInvoke = oUnoMethodNode.isInvokable(); -// bdoEnableSourceCodeGeneration = bdoEnableInvoke; - } - m_xDialogProvider.enablePopupMenuItem(XDialogProvider.SINVOKE, bdoEnableInvoke); -// m_xDialogProvider.enablePopupMenuItem(XDialogProvider.SADDTOSOURCECODE, bdoEnableSourceCodeGeneration); - m_xDialogProvider.showPopUpMenu(_invoker, x, y); - } -} -
\ No newline at end of file |