diff options
Diffstat (limited to 'odk/examples/java/Inspector/SwingTreeControlProvider.java')
-rw-r--r-- | odk/examples/java/Inspector/SwingTreeControlProvider.java | 427 |
1 files changed, 0 insertions, 427 deletions
diff --git a/odk/examples/java/Inspector/SwingTreeControlProvider.java b/odk/examples/java/Inspector/SwingTreeControlProvider.java deleted file mode 100644 index bf00acd7..00000000 --- a/odk/examples/java/Inspector/SwingTreeControlProvider.java +++ /dev/null @@ -1,427 +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.beans.Property; -import com.sun.star.beans.PropertyValue; -import com.sun.star.lang.NullPointerException; -import com.sun.star.reflection.XConstantTypeDescription; -import com.sun.star.reflection.XIdlMethod; -import com.sun.star.uno.AnyConverter; -import com.sun.star.uno.Type; -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.Dimension; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JProgressBar; -import javax.swing.JScrollBar; -import javax.swing.JScrollPane; -import javax.swing.JSplitPane; -import javax.swing.JTextArea; -import javax.swing.JTextField; -import javax.swing.JTree; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; -import javax.swing.event.TreeWillExpandListener; -import javax.swing.tree.DefaultTreeSelectionModel; -import javax.swing.tree.ExpandVetoException; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; - - - -public class SwingTreeControlProvider implements XTreeControlProvider{ - private JTextArea jtxtGeneratedSourceCode = new JTextArea(); - private JTextField jtxtFilter = new JTextField(); - private javax.swing.JLabel jlblFilter = new javax.swing.JLabel("Set a filter"); - private JPanel jPnlBottom = new JPanel(new BorderLayout()); - private JPanel jPanelProgress = new JPanel(new BorderLayout()); - 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 XDialogProvider m_xDialogProvider; - private HideableTreeModel treeModel; - private UnoTreeRenderer oUnoTreeRenderer; - private InspectorPane m_oInspectorPane; - private Object oUserDefinedObject = null; - private boolean bIsUserDefined = false; - private SwingUnoNode oRootNode; - - private final int nDIALOGWIDTH = 800; - - - - public SwingTreeControlProvider(XDialogProvider _xDialogProvider){ - m_xDialogProvider = _xDialogProvider; - } - - - public void addInspectorPane(InspectorPane _oInspectorPane){ - m_oInspectorPane = _oInspectorPane; - } - - public InspectorPane getInspectorPane() throws NullPointerException{ - if (m_oInspectorPane == null){ - throw new NullPointerException("InspectorPage has not been added to TreeControl"); - } - else{ - return m_oInspectorPane; - } - } - - private void ComponentSelector(Object _oRootObject, String _sRootTreeNodeName) { - String sTreeNodeName = _sRootTreeNodeName; - oRootNode = new SwingUnoNode(_oRootObject); - oRootNode.setLabel(_sRootTreeNodeName); - treeModel = new HideableTreeModel(oRootNode); - jTree.setModel(treeModel); - jTree.setRootVisible(true); - jTree.setVisible(true); - oRootNode.setFoldable(true); - enableFilterElements(null); - } - - - - private void insertTopPanel(JPanel _jPnlCenter){ - javax.swing.JPanel jPnlTop = new javax.swing.JPanel(new BorderLayout(10, 10)); - jPnlTop.setPreferredSize(new java.awt.Dimension(nDIALOGWIDTH, 20)); - jlblFilter.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - jlblFilter.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT); - jPnlTop.add(jlblFilter, java.awt.BorderLayout.WEST); - jtxtFilter.setHorizontalAlignment(javax.swing.JTextField.LEFT); - jtxtFilter.setPreferredSize(new java.awt.Dimension(200, 10)); - jtxtFilter.addKeyListener(new InspectorKeyFilterAdapter()); - jPnlTop.add(jtxtFilter, java.awt.BorderLayout.CENTER); - _jPnlCenter.add(jPnlTop, java.awt.BorderLayout.NORTH); - } - - - private void insertBottomPanel(JSplitPane _jSplitPane){ //JPanel _jPnlCenter){ - jtxtGeneratedSourceCode.setTabSize(4); - jtxtGeneratedSourceCode.getAccessibleContext().setAccessibleName("generated SourceCode"); - JScrollPane jScrollPane = new JScrollPane(jtxtGeneratedSourceCode); - jScrollPane.setPreferredSize(new Dimension(nDIALOGWIDTH,205)); - jtxtGeneratedSourceCode.setEditable(false); - _jSplitPane.setBottomComponent(jScrollPane); - } - - private void insertBorderPanes(Container _cp){ - JPanel jPnlEast = new JPanel(new BorderLayout()); - JPanel jPnlNorth = new JPanel(new BorderLayout()); - JPanel jPnlSouth = new JPanel(new BorderLayout()); - JPanel jPnlWest = new JPanel(new BorderLayout()); - _cp.add(jPnlNorth, java.awt.BorderLayout.NORTH); - jPnlWest.setPreferredSize(new java.awt.Dimension(10, 10)); - _cp.add(jPnlWest, java.awt.BorderLayout.WEST); - jPnlEast.setPreferredSize(new java.awt.Dimension(10, 10)); - _cp.add(jPnlEast, java.awt.BorderLayout.EAST); - jPnlSouth.setPreferredSize(new java.awt.Dimension(10, 10)); - _cp.add(jPnlSouth, java.awt.BorderLayout.SOUTH); - } - - - public String enableFilterElements(XUnoNode _oUnoNode){ - String sFilter =""; - boolean bIsFacetteNode = isFacetteNode(_oUnoNode); - this.jtxtFilter.setEnabled(bIsFacetteNode); - this.jlblFilter.setEnabled(bIsFacetteNode); - sFilter = m_oInspectorPane.getFilter(_oUnoNode); - jtxtFilter.setText(sFilter); - return sFilter; - } - - - private class InspectorKeyFilterAdapter extends KeyAdapter{ - public void keyReleased(KeyEvent e){ - String sFilter = jtxtFilter.getText(); - SwingTreePathProvider oSwingTreePathProvider = new SwingTreePathProvider(jTree.getSelectionPath()); - XUnoNode oUnoNode = oSwingTreePathProvider.getLastPathComponent(); - if (oUnoNode instanceof XUnoFacetteNode){ - m_oInspectorPane.applyFilter((XUnoFacetteNode) oUnoNode, sFilter); - } - } - } - - - - /** Inspect the given object for methods, properties, interfaces, and - * services. - * @param a The object to inspect - * @throws RuntimeException If - */ - public Object inspect(java.lang.Object _oUserDefinedObject, String _sTitle) throws com.sun.star.uno.RuntimeException { - JPanel jPnlContainer = new javax.swing.JPanel(new BorderLayout(10, 10)); - try { - javax.swing.JPanel jPnlCenter = new javax.swing.JPanel(); - bIsUserDefined = (_oUserDefinedObject != null); - if (bIsUserDefined){ - oUserDefinedObject = _oUserDefinedObject; - m_oInspectorPane.setTitle(_sTitle); - } - javax.swing.JScrollPane jScrollPane1 = new javax.swing.JScrollPane(); - TreeSelectionModel tsm = new DefaultTreeSelectionModel(); - tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); - jTree.setSelectionModel(tsm); - jTree.setVisible(false); - jPnlCenter.setLayout(new java.awt.BorderLayout(10, 10)); - jPnlCenter.getAccessibleContext().setAccessibleName("inspection tab view"); - insertTopPanel(jPnlCenter); - jScrollPane1.setViewportView(jTree); - jScrollPane1.setPreferredSize(new java.awt.Dimension(600, 600)); - jScrollPane1.getAccessibleContext().setAccessibleName("API view scroll pane"); - - JScrollBar jHScrollBar = jScrollPane1.createHorizontalScrollBar(); - jHScrollBar.getAccessibleContext().setAccessibleName("API view horizontal scroll bar"); - jScrollPane1.setHorizontalScrollBar(jHScrollBar); - - JScrollBar jVScrollBar = jScrollPane1.createVerticalScrollBar(); - jVScrollBar.getAccessibleContext().setAccessibleName("API view vertical scroll bar"); - jScrollPane1.setVerticalScrollBar(jVScrollBar); - - JSplitPane jSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); - jSplitPane.setTopComponent(jScrollPane1); - jPnlCenter.add(jSplitPane, java.awt.BorderLayout.CENTER); - jSplitPane.setDividerLocation(500); - insertBottomPanel(jSplitPane); - UnoTreeRenderer oUnoTreeRenderer = new UnoTreeRenderer(); - jTree.setCellRenderer(oUnoTreeRenderer); - jTree.addTreeSelectionListener( - new TreeSelectionListener() { - public void valueChanged(TreeSelectionEvent event) { - TreePath tp = event.getNewLeadSelectionPath(); - if (tp != null){ - XUnoNode oUnoNode = getSelectedNode(); - String sFilter = enableFilterElements(oUnoNode); - } - } - } - ); - // Add KeyListener for help - jTree.addKeyListener( new java.awt.event.KeyAdapter() { - public void keyReleased(java.awt.event.KeyEvent event) { - if ( event.getKeyCode() == KeyEvent.VK_F1 ) { - // function key F1 pressed - TreePath aTreePath = jTree.getSelectionPath(); - SwingUnoNode oUnoNode = (SwingUnoNode) aTreePath.getLastPathComponent(); - oUnoNode.openIdlDescription(m_xDialogProvider.getIDLPath()); - } - } - }); - jTree.addMouseListener(new MouseAdapter() { - public void mousePressed (MouseEvent e) { - if (e.isPopupTrigger()){ - m_oInspectorPane.showPopUpMenu(e.getComponent(), e.getX(), e.getY()); - } - //unfortunately under Windows the method "isPopupTrigger" always returns false - else if ((e.getModifiersEx() & MouseEvent.BUTTON3_DOWN_MASK) == MouseEvent.BUTTON3_DOWN_MASK){ - m_oInspectorPane.showPopUpMenu(e.getComponent(), e.getX(), e.getY()); - } - } - }); - jPnlContainer.add(jPnlCenter, java.awt.BorderLayout.CENTER); - insertBorderPanes(jPnlContainer); - if (this.bIsUserDefined){ - ComponentSelector(oUserDefinedObject, m_oInspectorPane.getTitle()); - } - m_xDialogProvider.addInspectorPage(m_oInspectorPane.getTitle(), jPnlContainer); - addTreeExpandListener(); - } - catch( Exception exception ) { - exception.printStackTrace(System.out); - } - return jPnlContainer; - } - - public HideableTreeModel getModel(){ - return treeModel; - } - - - public void addTreeExpandListener(){ - jTree.addTreeWillExpandListener( - new TreeWillExpandListener() { - public void treeWillExpand(javax.swing.event.TreeExpansionEvent event) throws javax.swing.tree.ExpandVetoException { - SwingTreePathProvider oSwingTreePathProvider = new SwingTreePathProvider(event.getPath()); - XUnoNode oUnoNode = oSwingTreePathProvider.getLastPathComponent(); - if (!m_oInspectorPane.expandNode(oUnoNode, oSwingTreePathProvider)){ - throw new ExpandVetoException(event); - } - } - - public void treeWillCollapse( javax.swing.event.TreeExpansionEvent evt) throws javax.swing.tree.ExpandVetoException { - } - }); - } - - - public void setSourceCode(String _sSourceCode){ - jtxtGeneratedSourceCode.setText(_sSourceCode); - } - - - public XTreePathProvider getSelectedPath(){ - return new SwingTreePathProvider(jTree.getSelectionPath()); - } - - - public void expandPath(XTreePathProvider _xTreePathProvider) throws ClassCastException{ - SwingTreePathProvider oSwingTreePathProvider = (SwingTreePathProvider) _xTreePathProvider; - jTree.expandPath(oSwingTreePathProvider.getSwingTreePath()); - } - - - public XUnoNode getSelectedNode(){ - XUnoNode oUnoNode = null; - TreePath aTreePath = jTree.getSelectionPath(); - Object oNode = aTreePath.getLastPathComponent(); - if (oNode instanceof XUnoNode){ - oUnoNode = (XUnoNode) oNode; - } - return oUnoNode; - } - - - public void nodeInserted(XUnoNode _oParentNode, XUnoNode _oChildNode, int index) { - getModel().nodeInserted(_oParentNode, _oChildNode, _oParentNode.getChildCount()-1); - } - - - public void nodeChanged(XUnoNode _oNode) { - getModel().nodeChanged(_oNode); - } - - - public boolean setNodeVisible(Object node, boolean v) { - return getModel().setNodeVisible(node, v); - } - - - public boolean isPropertyNode(XUnoNode _oUnoNode){ - return (_oUnoNode instanceof SwingUnoPropertyNode); - } - - - public boolean isMethodNode(XUnoNode _oUnoNode){ - return (_oUnoNode instanceof SwingUnoMethodNode); - } - - - public boolean isFacetteNode(XUnoNode _oUnoNode){ - return (_oUnoNode instanceof SwingUnoFacetteNode); - } - - - public XUnoNode addUnoNode(Object _oUnoObject){ - return new SwingUnoNode(_oUnoObject); - } - - - public XUnoNode addUnoNode(Object _oUnoObject, Type _aType){ - return new SwingUnoNode(_oUnoObject, _aType); - } - - - 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, m_xDialogProvider); - 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; - } -} |