INTEGRATION: CWS sdkinspector2 (1.2.6); FILE MERGED

2007/01/24 16:04:12 bc 1.2.6.2: #i73575# extension in makefile modified
2007/01/17 19:26:41 bc 1.2.6.1: 73575# user interface encapsulated
cVS: ----------------------------------------------------------------------
This commit is contained in:
Rüdiger Timm
2007-01-30 07:13:01 +00:00
parent 9fa09d43d0
commit cbe20094ca
3 changed files with 366 additions and 195 deletions

View File

@ -1,5 +1,49 @@
/*************************************************************************
*
* $RCSfile: SwingTreeControlProvider.java,v $
*
* $Revision: 1.3 $
*
* last change: $Author: rt $ $Date: 2007-01-30 08:13:01 $
*
* The Contents of this file are made available subject to the terms of
* the BSD license.
*
* Copyright (c) 2003 by Sun Microsystems, Inc.
* 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.beans.Property;
import com.sun.star.beans.PropertyValue;
import com.sun.star.lang.NullPointerException;
import com.sun.star.uno.AnyConverter;
import com.sun.star.reflection.XConstantTypeDescription;
import com.sun.star.reflection.XIdlMethod;
import com.sun.star.uno.Type;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
@ -21,19 +65,10 @@ import javax.swing.tree.DefaultTreeSelectionModel;
import javax.swing.tree.ExpandVetoException;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
/*
* SwingTreeControlProvider.java
*
* Created on 12. Dezember 2006, 11:43
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
/**
*
* @author bc93774
*/
public class SwingTreeControlProvider implements XTreeControlProvider{
private JTextArea jtxtGeneratedSourceCode = new JTextArea();
private JTextField jtxtFilter = new JTextField();
@ -43,21 +78,30 @@ public class SwingTreeControlProvider implements XTreeControlProvider{
private JPanel jPnlPath = new JPanel(new BorderLayout());
private JLabel jLblPath = new JLabel("Generated source code");
private JProgressBar jProgressBar1 = new JProgressBar();
private JTree jTree = new javax.swing.JTree();
private JTree jTree = null;
private XDialogProvider m_xDialogProvider;
private HideableTreeModel treeModel;
private UnoTreeRenderer oUnoTreeRenderer;
private InspectorPane m_oInspectorPane;
private Object oUserDefinedObject = null;
private boolean bIsUserDefined = false;
private UnoObjectNode root;
private SwingUnoNode oRootNode;
private final int nDIALOGWIDTH = 800;
public SwingTreeControlProvider(XDialogProvider _xDialogProvider){
try{
m_xDialogProvider = _xDialogProvider;
jTree = new javax.swing.JTree();
}catch( java.lang.RuntimeException exception ) {
exception.printStackTrace(System.out);
}
catch (Throwable t) {
t.printStackTrace();
}
}
@ -76,12 +120,13 @@ public class SwingTreeControlProvider implements XTreeControlProvider{
private void ComponentSelector(Object _oRootObject, String _sRootTreeNodeName) {
String sTreeNodeName = _sRootTreeNodeName;
root = new UnoObjectNode(_oRootObject, _sRootTreeNodeName);
treeModel = new HideableTreeModel(root);
oRootNode = new SwingUnoNode(_oRootObject);
oRootNode.setLabel(_sRootTreeNodeName);
treeModel = new HideableTreeModel(oRootNode);
jTree.setModel(treeModel);
jTree.setRootVisible(true);
jTree.setVisible(true);
root.addDummyNode();
oRootNode.setFoldable(true);
enableFilterElements(null);
}
@ -129,9 +174,9 @@ public class SwingTreeControlProvider implements XTreeControlProvider{
}
public String enableFilterElements(UnoNode _oUnoNode){
public String enableFilterElements(XUnoNode _oUnoNode){
String sFilter ="";
boolean bIsFacetteNode = m_oInspectorPane.isFacetteNode(_oUnoNode);
boolean bIsFacetteNode = isFacetteNode(_oUnoNode);
this.jtxtFilter.setEnabled(bIsFacetteNode);
this.jlblFilter.setEnabled(bIsFacetteNode);
sFilter = m_oInspectorPane.getFilter(_oUnoNode);
@ -144,9 +189,9 @@ public class SwingTreeControlProvider implements XTreeControlProvider{
public void keyReleased(KeyEvent e){
String sFilter = jtxtFilter.getText();
SwingTreePathProvider oSwingTreePathProvider = new SwingTreePathProvider(jTree.getSelectionPath());
UnoNode oUnoNode = oSwingTreePathProvider.getLastPathComponent();
if (oUnoNode instanceof UnoFacetteNode){
m_oInspectorPane.applyFilter((UnoFacetteNode) oUnoNode, sFilter);
XUnoNode oUnoNode = oSwingTreePathProvider.getLastPathComponent();
if (oUnoNode instanceof XUnoFacetteNode){
m_oInspectorPane.applyFilter((XUnoFacetteNode) oUnoNode, sFilter);
}
}
}
@ -185,7 +230,7 @@ public class SwingTreeControlProvider implements XTreeControlProvider{
public void valueChanged(TreeSelectionEvent event) {
TreePath tp = event.getNewLeadSelectionPath();
if (tp != null){
UnoNode oUnoNode = getSelectedNode();
XUnoNode oUnoNode = getSelectedNode();
String sFilter = enableFilterElements(oUnoNode);
}
}
@ -197,7 +242,7 @@ public class SwingTreeControlProvider implements XTreeControlProvider{
if ( event.getKeyCode() == KeyEvent.VK_F1 ) {
// function key F1 pressed
TreePath aTreePath = jTree.getSelectionPath();
UnoNode oUnoNode = (UnoNode) aTreePath.getLastPathComponent();
SwingUnoNode oUnoNode = (SwingUnoNode) aTreePath.getLastPathComponent();
oUnoNode.openIdlDescription();
}
}
@ -233,15 +278,12 @@ public class SwingTreeControlProvider implements XTreeControlProvider{
jTree.addTreeWillExpandListener(
new TreeWillExpandListener() {
public void treeWillExpand(javax.swing.event.TreeExpansionEvent event) throws javax.swing.tree.ExpandVetoException {
SwingTreePathProvider oSwingTreePathProvider = new SwingTreePathProvider(event.getPath());
UnoNode oUnoNode = oSwingTreePathProvider.getLastPathComponent();
try{
SwingTreePathProvider oSwingTreePathProvider = new SwingTreePathProvider(event.getPath());
XUnoNode oUnoNode = oSwingTreePathProvider.getLastPathComponent();
if (!m_oInspectorPane.expandNode(oUnoNode, oSwingTreePathProvider)){
throw new ExpandVetoException(event);
}
}finally{
// hideProgressPanel();
}}
}
public void treeWillCollapse( javax.swing.event.TreeExpansionEvent evt) throws javax.swing.tree.ExpandVetoException {
}
@ -265,23 +307,23 @@ public class SwingTreeControlProvider implements XTreeControlProvider{
}
public UnoNode getSelectedNode(){
UnoNode oUnoNode = null;
public XUnoNode getSelectedNode(){
XUnoNode oUnoNode = null;
TreePath aTreePath = jTree.getSelectionPath();
Object oNode = aTreePath.getLastPathComponent();
if (oNode instanceof UnoNode){
oUnoNode = (UnoNode) oNode;
if (oNode instanceof XUnoNode){
oUnoNode = (XUnoNode) oNode;
}
return oUnoNode;
}
public void nodeInserted(UnoNode _oParentNode, UnoNode _oChildNode, int index) {
public void nodeInserted(XUnoNode _oParentNode, XUnoNode _oChildNode, int index) {
getModel().nodeInserted(_oParentNode, _oChildNode, _oParentNode.getChildCount()-1);
}
public void nodeChanged(UnoNode _oNode) {
public void nodeChanged(XUnoNode _oNode) {
getModel().nodeChanged(_oNode);
}
@ -291,97 +333,95 @@ public class SwingTreeControlProvider implements XTreeControlProvider{
}
public void setMaximumOfProgressBar(){
jProgressBar1.setMaximum(5);
public boolean isPropertyNode(XUnoNode _oUnoNode){
return (_oUnoNode instanceof SwingUnoPropertyNode);
}
public boolean isPropertyNode(UnoNode _oUnoNode){
return (_oUnoNode instanceof UnoPropertyNode);
public boolean isMethodNode(XUnoNode _oUnoNode){
return (_oUnoNode instanceof SwingUnoMethodNode);
}
public boolean isMethodNode(UnoNode _oUnoNode){
return (_oUnoNode instanceof UnoMethodNode);
public boolean isFacetteNode(XUnoNode _oUnoNode){
return (_oUnoNode instanceof SwingUnoFacetteNode);
}
public boolean isObjectNode(UnoNode _oUnoNode){
return (_oUnoNode instanceof UnoObjectNode);
public XUnoNode addUnoNode(Object _oUnoObject){
return new SwingUnoNode(_oUnoObject);
}
public boolean isFacetteNode(UnoNode _oUnoNode){
return (_oUnoNode instanceof UnoFacetteNode);
}
public boolean isServiceNode(UnoNode _oUnoNode){
return (_oUnoNode instanceof UnoServiceNode);
public XUnoNode addUnoNode(Object _oUnoObject, Type _aType){
return new SwingUnoNode(_oUnoObject, _aType);
}
public boolean isInterfaceNode(UnoNode _oUnoNode){
return (_oUnoNode instanceof UnoInterfaceNode);
public XUnoFacetteNode addUnoFacetteNode(XUnoNode _oParentNode, String _sNodeDescription, Object _oUnoObject){
SwingUnoFacetteNode oSwingUnoFacetteNode = new SwingUnoFacetteNode(_oUnoObject);
oSwingUnoFacetteNode.setLabel(_sNodeDescription);
if (_oParentNode != null){
((SwingUnoNode) _oParentNode).addChildNode(oSwingUnoFacetteNode);
}
return oSwingUnoFacetteNode;
}
public XUnoMethodNode addMethodNode(Object _objectElement, XIdlMethod _xIdlMethod){
SwingUnoMethodNode oSwingUnoMethodNode = new SwingUnoMethodNode(_xIdlMethod, _objectElement);
return oSwingUnoMethodNode;
}
public XUnoPropertyNode addUnoPropertyNodeWithName(Property _aProperty){
SwingUnoPropertyNode oUnoPropertyNode = new SwingUnoPropertyNode(_aProperty);
oUnoPropertyNode.setLabel("Name: " + _aProperty.Name);
return oUnoPropertyNode;
}
public XUnoPropertyNode addUnoPropertyNodeWithHandle(Property _aProperty){
SwingUnoPropertyNode oUnoPropertyNode = new SwingUnoPropertyNode(_aProperty);
oUnoPropertyNode.setLabel("Handle: " + _aProperty.Handle);
return oUnoPropertyNode;
}
public XUnoPropertyNode addUnoPropertyNodeWithType(Property _aProperty){
SwingUnoPropertyNode oUnoPropertyNode = new SwingUnoPropertyNode(_aProperty);
oUnoPropertyNode.setLabel("Type: " + _aProperty.Type.getTypeName());
return oUnoPropertyNode;
}
public XUnoPropertyNode addUnoPropertyNodeWithAttributesDescription(Property _aProperty){
SwingUnoPropertyNode oUnoPropertyNode = new SwingUnoPropertyNode(_aProperty);
XConstantTypeDescription[] xPropertyAttributesTypeDescriptions = Introspector.getIntrospector().getFieldsOfConstantGroup("com.sun.star.beans.PropertyAttribute");
String sDisplay = Introspector.getIntrospector().getConstantDisplayString((int) _aProperty.Attributes, xPropertyAttributesTypeDescriptions, "Attributes: ");
oUnoPropertyNode.setLabel(sDisplay);
return oUnoPropertyNode;
}
public XUnoPropertyNode addUnoPropertyNode(Object _oUnoObject, Property _aProperty){
SwingUnoPropertyNode oUnoPropertyNode = new SwingUnoPropertyNode(_aProperty, _oUnoObject, null);
oUnoPropertyNode.setPropertyNodeType(XUnoPropertyNode.nPROPERTYSETINFOTYPE);
oUnoPropertyNode.setLabel(UnoPropertyNode.getStandardPropertyDescription(_aProperty, null));
return oUnoPropertyNode;
}
public XUnoPropertyNode addUnoPropertyNode(Object _oUnoObject, Property _aProperty, Object _oUnoReturnObject){
SwingUnoPropertyNode oUnoPropertyNode = new SwingUnoPropertyNode(_aProperty, _oUnoObject, _oUnoReturnObject);
oUnoPropertyNode.setLabel(UnoPropertyNode.getStandardPropertyDescription(_aProperty, _oUnoReturnObject));
return oUnoPropertyNode;
}
public XUnoPropertyNode addUnoPropertyNode(Object _oUnoObject, PropertyValue _aPropertyValue, Object _oReturnObject){
SwingUnoPropertyNode oUnoPropertyNode = new SwingUnoPropertyNode(_aPropertyValue, _oUnoObject, _oReturnObject);
oUnoPropertyNode.setLabel(UnoPropertyNode.getStandardPropertyValueDescription(_aPropertyValue));
return oUnoPropertyNode;
}
}
// public ProgressDisplay getProgressDisplay(){
// return new ProgressDisplay();
// }
//
//
// public class ProgressDisplay extends Thread{
// public ProgressDisplay(){
// }
//
// public void run () {
// try {
// synchronized(jProgressBar1){
// jProgressBar1.setVisible(true);
// jPanelProgress.setVisible(true);
// m_xDialogProvider.paint();
// jProgressBar1.paintImmediately(jProgressBar1.getBounds());
// jProgressBar1.setStringPainted(true);
// }
// } catch (RuntimeException e) {
// }}
// }
//
//
// public void setProgressValue(int _nValue, String _sTitle){
// this.jProgressBar1.setValue(_nValue);
// this.jProgressBar1.setString(_sTitle);
// this.jProgressBar1.setStringPainted(true);
// jProgressBar1.paint(jProgressBar1.getGraphics());
// }
// private void initializeProgressPanel(){
// JPanel jPnlProgressSouth = new JPanel(new BorderLayout());
// jPnlProgressSouth.setPreferredSize(new Dimension(nDIALOGWIDTH, 10));
// jProgressBar1 = new javax.swing.JProgressBar();
// jProgressBar1.setStringPainted(true);
// jPanelProgress.add(jProgressBar1, java.awt.BorderLayout.NORTH);
// jPanelProgress.add(jPnlProgressSouth, java.awt.BorderLayout.SOUTH);
// jPnlBottom.add(jPanelProgress, java.awt.BorderLayout.NORTH);
// hideProgressPanel();
// }
//
// public JPanel getBottomPanel(){
// return jPnlBottom;
// }
//
//
// public void hideProgressPanel(){
// jProgressBar1.setValue(0);
// jProgressBar1.setString("");
// jProgressBar1.setVisible(false);
// jPanelProgress.setVisible(false);
// jPanelProgress.invalidate();
// jProgressBar1.invalidate();
// this.m_xDialogProvider.paint();
// jTree.paintImmediately(jTree.getBounds());
// }