swingwtx.swing
Class JTree

java.lang.Object
  extended byswingwt.awt.Component
      extended byswingwt.awt.Container
          extended byswingwtx.swing.JComponent
              extended byswingwtx.swing.JTree
All Implemented Interfaces:
CellEditorListener, java.util.EventListener, ImageObserver, MenuContainer, TreeModelListener

public class JTree
extends JComponent
implements TreeModelListener, CellEditorListener


Nested Class Summary
 
Nested classes inherited from class swingwtx.swing.JComponent
JComponent.InternalFrameSelectionListener
 
Field Summary
protected  TreePath anchorSelectionPath
           
protected  TreeCellEditor cellEditor
           
protected  TreeCellRenderer cellRenderer
           
protected  Component editingComponent
           
protected  java.lang.Object editingNode
           
protected  org.eclipse.swt.widgets.TreeItem editingTreeItem
           
protected  boolean isEditable
           
protected  boolean isRootVisible
           
protected  TreeModel model
           
protected  org.eclipse.swt.widgets.Tree ppeer
           
protected  org.eclipse.swt.custom.TreeEditor swtEditor
          SWT Editor
protected  java.util.Vector treeExpansionListeners
           
protected  java.util.Vector treeSelectionListeners
           
protected  java.util.Vector treeWillExpansionListeners
           
 
Fields inherited from class swingwtx.swing.JComponent
accessibleContext, actionMap, ancestorInputMap, border, clientProperties, descendantHasPeer, focusInputMap, internalFrameAdapter, internalFrameParent, opaque, propertyChangeListeners, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW, windowInputMap
 
Fields inherited from class swingwt.awt.Container
composite, comps, containerListeners, layout, queuedValidateRequest
 
Fields inherited from class swingwt.awt.Component
actionCommand, actionListeners, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListeners, componentName, consumeAvailableHeight, consumeAvailableWidth, focusable, focusListeners, graphicsConfig, inputMethodListeners, isUserSetFont, keyListeners, layoutModifier, LEFT_ALIGNMENT, LOCK, mouseListeners, mouseMotionListeners, mouseWheelListeners, parent, pBackground, pCursor, pDoubleBuffered, peer, pEnabled, pFont, pForeground, pLayoutData, pLocation, pMaxSize, pMinSize, pPrefSize, pSize, pToolTipText, pVisible, RIGHT_ALIGNMENT, swingWTDefaultActionEventAdapter, swingWTEventAdapter, TOP_ALIGNMENT
 
Fields inherited from interface swingwt.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JTree()
           
JTree(TreeModel model)
           
JTree(TreeNode root)
           
 
Method Summary
 void addSelectionPath(TreePath t)
           
 void addSelectionPaths(TreePath[] path)
           
 void addTreeExpansionListener(TreeExpansionListener l)
           
 void addTreeSelectionListener(TreeSelectionListener l)
           
 void addWillTreeExpansionListener(TreeWillExpandListener l)
           
 void collapsePath(TreePath parent)
           
 void collapseRow(int row)
           
 void drawTree()
          Draws the tree from the model data
 void editingCanceled(ChangeEvent e)
           
 void editingStopped(ChangeEvent e)
          Callback when the editor is stopped - need to put any changes back into the model.
 void expandPath(TreePath parent)
           
 void expandRow(int row)
           
 void fireTreeExpanded(TreePath path)
           
 void fireTreeWillExpandOrCollapse(org.eclipse.swt.events.TreeEvent e, boolean collapse)
          Notifies all listeners that have registered interest for notification on this event type.
 TreePath getAnchorSelectionPath()
           
 TreeCellEditor getCellEditor()
           
 TreeCellRenderer getCellRenderer()
           
 TreePath getClosestPathForLocation(int x, int y)
           
 java.lang.Object getLastSelectedPathComponent()
           
 TreeModel getModel()
           
 TreePath getPathForLocation(int x, int y)
           
 TreePath getPathForRow(int row)
          Because SWT Trees don't have a row concept (apart from a row count), we have to make a guess.
protected  org.eclipse.swt.widgets.TreeItem getPeerTreeItem(java.lang.Object swingNode)
           
 int getRowCount()
           
 TreeSelectionModel getSelectionModel()
          NOT IMPLEMENTED - RETURNS DUMMY STUB
 TreePath getSelectionPath()
           
 TreePath[] getSelectionPaths()
           
 TreePath getTreePath(java.lang.Object node)
          Returns a TreePath from a given node - not a real Swing method, but useful for us here for generating events
 boolean isEditable()
           
 boolean isRootVisible()
          Returns true if the root node of the tree is displayed
protected  void processTreeEdit(java.lang.Object node, org.eclipse.swt.widgets.TreeItem item)
          Called back when the user selects a node to allow them to edit the value (if the tree is editable)
protected  void processTreeExpansion(org.eclipse.swt.events.TreeEvent e, boolean collapse)
           
protected  void processTreeSelection(org.eclipse.swt.events.SelectionEvent e)
           
protected  void registerTreeEvents()
          Registers some tree specific events and maps them to Swing events.
 void removeSelectionPath(TreePath t)
           
 void removeSelectionPaths(TreePath[] t)
           
 void removeTreeExpansionListener(TreeExpansionListener l)
           
 void removeTreeSelectionListener(TreeSelectionListener l)
           
 void removeTreeWillExpansionListener(TreeWillExpandListener l)
           
 void scrollPathToVisible(TreePath t)
          Scrolls the Tree to show the selected path
 void setAnchorSelectionPath(TreePath path)
           
 void setCellEditor(TreeCellEditor cell)
           
 void setCellRenderer(TreeCellRenderer renderer)
           
 void setEditable(boolean b)
           
 void setModel(TreeModel model)
           
 void setRootVisible(boolean rootVisible)
          Determines whether or not the root node from the TreeModel is visible.
 void setScrollsOnExpand(boolean b)
          NOT IMPLEMENTED
 void setSelectionModel(TreeSelectionModel model)
          NOT IMPLEMENTED
 void setSelectionPath(TreePath t)
           
 void setSelectionPaths(TreePath[] t)
           
 void setShowsRootHandles(boolean b)
          NOT IMPLEMENTED
 void setSwingWTParent(Container parent)
          Once a parent component receives an "add" call for a child, this being the child, this should be called to tell us to instantiate the peer and load in any cached properties.
 void treeNodesChanged(TreeModelEvent e)
           
 void treeNodesInserted(TreeModelEvent e)
           
 void treeNodesRemoved(TreeModelEvent e)
           
 void treeStructureChanged(TreeModelEvent e)
           
 
Methods inherited from class swingwtx.swing.JComponent
add, add, add, add, add, addPropertyChangeListener, addPropertyChangeListener, checkInternalFrameChild, dispose, getAccessibleContext, getActionMap, getAutoscrolls, getBorder, getClientProperty, getInputMap, getInsets, getToolTipLocation, getToolTipText, getTopLevelAncestor, getVisibleRect, isDoubleBuffered, isOpaque, isOptimizedDrawingEnabled, isValidateRoot, paint, paintBackground, paintChildren, paintComponent, paintImmediately, paintImmediately, putClientProperty, remove, remove, removePropertyChangeListener, removePropertyChangeListener, repaint, revalidate, scrollRectToVisible, setActionMap, setAutoscrolls, setBorder, setDoubleBuffered, setInputMap, setMargin, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled
 
Methods inherited from class swingwt.awt.Container
addComponentToLayout, addContainerListener, debug_showContainmentTree, doAdd, doLayout, getComponent, getComponentCount, getComponentOrientation, getComponents, getComposite, getLayout, getMaximumSize, getMinimumSize, getParent, getPreferredSize, invalidate, minimumSize, preferredSize, processContainerEvent, processEvent, queuedValidate, removeAll, removeComponentFromCache, removeContainerListener, setLayout, setLayoutImpl, validate
 
Methods inherited from class swingwt.awt.Component
add, addActionListener, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, calculatePreferredSize, componentOnlyDispose, computePreferredSize, contains, contains, createImage, createListenerArrayFromVector, createVolatileImage, dispatchEvent, getActionCommand, getAlignmentX, getAlignmentY, getBackground, getBounds, getCursor, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getListeners, getLocation, getLocationOnScreen, getName, getPeer, getPeerSize, getSize, getSize, getSWTPeer, getToolkit, getToolTipText, getTreeLock, getWidth, getX, getY, grabFocus, hasFocus, hasSetFont, hide, imageUpdate, inside, isEnabled, isFocusable, isMinimumSizeSet, isShowing, isVisible, processActionEvent, processComponentEvent, processFocusEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, processTraverseEvent, registerActionEvents, registerComponentEvents, registerEvents, registerExtendedModifyEvents, registerFocusEvents, registerKeyEvents, registerModifyEvents, registerMouseEvents, registerPaintEvents, registerTraversalEvents, remove, removeActionListener, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, repaint, repaint, repaint, requestFocus, setActionCommand, setAlignmentX, setAlignmentY, setBackground, setBounds, setBounds, setCachedProperties, setComponentOrientation, setComponentRemoved, setCursor, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setFont, setForeground, setHeight, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setSize, setSize, setToolTipText, setVisible, setWidth, show, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ppeer

protected org.eclipse.swt.widgets.Tree ppeer

model

protected TreeModel model

cellRenderer

protected TreeCellRenderer cellRenderer

cellEditor

protected TreeCellEditor cellEditor

isEditable

protected boolean isEditable

isRootVisible

protected boolean isRootVisible

anchorSelectionPath

protected TreePath anchorSelectionPath

swtEditor

protected org.eclipse.swt.custom.TreeEditor swtEditor
SWT Editor


editingTreeItem

protected org.eclipse.swt.widgets.TreeItem editingTreeItem

editingNode

protected java.lang.Object editingNode

editingComponent

protected Component editingComponent

treeWillExpansionListeners

protected java.util.Vector treeWillExpansionListeners

treeExpansionListeners

protected java.util.Vector treeExpansionListeners

treeSelectionListeners

protected java.util.Vector treeSelectionListeners
Constructor Detail

JTree

public JTree()

JTree

public JTree(TreeNode root)

JTree

public JTree(TreeModel model)
Method Detail

getPeerTreeItem

protected org.eclipse.swt.widgets.TreeItem getPeerTreeItem(java.lang.Object swingNode)

addTreeExpansionListener

public void addTreeExpansionListener(TreeExpansionListener l)

removeTreeExpansionListener

public void removeTreeExpansionListener(TreeExpansionListener l)

addWillTreeExpansionListener

public void addWillTreeExpansionListener(TreeWillExpandListener l)

removeTreeWillExpansionListener

public void removeTreeWillExpansionListener(TreeWillExpandListener l)

addTreeSelectionListener

public void addTreeSelectionListener(TreeSelectionListener l)

removeTreeSelectionListener

public void removeTreeSelectionListener(TreeSelectionListener l)

setModel

public void setModel(TreeModel model)

getModel

public TreeModel getModel()

isEditable

public boolean isEditable()

setEditable

public void setEditable(boolean b)

setCellEditor

public void setCellEditor(TreeCellEditor cell)

getCellEditor

public TreeCellEditor getCellEditor()

setSwingWTParent

public void setSwingWTParent(Container parent)
                      throws java.lang.Exception
Once a parent component receives an "add" call for a child, this being the child, this should be called to tell us to instantiate the peer and load in any cached properties.

Overrides:
setSwingWTParent in class JComponent
Throws:
java.lang.Exception

registerTreeEvents

protected void registerTreeEvents()
Registers some tree specific events and maps them to Swing events.


processTreeEdit

protected void processTreeEdit(java.lang.Object node,
                               org.eclipse.swt.widgets.TreeItem item)
Called back when the user selects a node to allow them to edit the value (if the tree is editable)


editingStopped

public void editingStopped(ChangeEvent e)
Callback when the editor is stopped - need to put any changes back into the model.

Specified by:
editingStopped in interface CellEditorListener

fireTreeExpanded

public void fireTreeExpanded(TreePath path)

getAnchorSelectionPath

public TreePath getAnchorSelectionPath()

setAnchorSelectionPath

public void setAnchorSelectionPath(TreePath path)

processTreeSelection

protected void processTreeSelection(org.eclipse.swt.events.SelectionEvent e)

processTreeExpansion

protected void processTreeExpansion(org.eclipse.swt.events.TreeEvent e,
                                    boolean collapse)

fireTreeWillExpandOrCollapse

public void fireTreeWillExpandOrCollapse(org.eclipse.swt.events.TreeEvent e,
                                         boolean collapse)
                                  throws ExpandVetoException
Notifies all listeners that have registered interest for notification on this event type. The event instance is created using path parameter.

Parameters:
e - the TreeExpansionEvent instance
collapse - boolean indication for collapse state of the tree
Throws:
ExpandVetoException

getTreePath

public TreePath getTreePath(java.lang.Object node)
Returns a TreePath from a given node - not a real Swing method, but useful for us here for generating events


addSelectionPaths

public void addSelectionPaths(TreePath[] path)

getSelectionPath

public TreePath getSelectionPath()

getSelectionPaths

public TreePath[] getSelectionPaths()

addSelectionPath

public void addSelectionPath(TreePath t)

removeSelectionPath

public void removeSelectionPath(TreePath t)

removeSelectionPaths

public void removeSelectionPaths(TreePath[] t)

setScrollsOnExpand

public void setScrollsOnExpand(boolean b)
NOT IMPLEMENTED


setShowsRootHandles

public void setShowsRootHandles(boolean b)
NOT IMPLEMENTED


setSelectionModel

public void setSelectionModel(TreeSelectionModel model)
NOT IMPLEMENTED


getSelectionModel

public TreeSelectionModel getSelectionModel()
NOT IMPLEMENTED - RETURNS DUMMY STUB


scrollPathToVisible

public void scrollPathToVisible(TreePath t)
Scrolls the Tree to show the selected path


setSelectionPaths

public void setSelectionPaths(TreePath[] t)

setSelectionPath

public void setSelectionPath(TreePath t)

getPathForLocation

public TreePath getPathForLocation(int x,
                                   int y)

getClosestPathForLocation

public TreePath getClosestPathForLocation(int x,
                                          int y)

getPathForRow

public TreePath getPathForRow(int row)
Because SWT Trees don't have a row concept (apart from a row count), we have to make a guess. Now, because our JTree.drawTree() works down the model from it's root, we guess that drawn item x = row x - which should work for the most part (apart from it being horribly wrong with collapsed items).


getRowCount

public int getRowCount()

expandRow

public void expandRow(int row)
See Also:
for faults with row based stuff - use path methods if possible.

collapseRow

public void collapseRow(int row)
See Also:
for faults with row based stuff - use path methods if possible.

expandPath

public void expandPath(TreePath parent)

collapsePath

public void collapsePath(TreePath parent)

drawTree

public void drawTree()
Draws the tree from the model data


getLastSelectedPathComponent

public java.lang.Object getLastSelectedPathComponent()

setCellRenderer

public void setCellRenderer(TreeCellRenderer renderer)

getCellRenderer

public TreeCellRenderer getCellRenderer()

treeNodesChanged

public void treeNodesChanged(TreeModelEvent e)
Specified by:
treeNodesChanged in interface TreeModelListener

treeNodesInserted

public void treeNodesInserted(TreeModelEvent e)
Specified by:
treeNodesInserted in interface TreeModelListener

treeNodesRemoved

public void treeNodesRemoved(TreeModelEvent e)
Specified by:
treeNodesRemoved in interface TreeModelListener

treeStructureChanged

public void treeStructureChanged(TreeModelEvent e)
Specified by:
treeStructureChanged in interface TreeModelListener

setRootVisible

public void setRootVisible(boolean rootVisible)
Determines whether or not the root node from the TreeModel is visible.

Parameters:
rootVisible - true if the root node of the tree is to be displayed

isRootVisible

public boolean isRootVisible()
Returns true if the root node of the tree is displayed

Returns:
true if the root node of the tree is displayed

editingCanceled

public void editingCanceled(ChangeEvent e)
Specified by:
editingCanceled in interface CellEditorListener