Copyright 2009,2010, Lapetus Systems Ltd. (All rights reserved)

com.lapetus_ltd.api.common.view
Class TLptsExpandTree

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTree
                  extended by com.lapetus_ltd.api.common.view.TLptsExpandTree
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable

public class TLptsExpandTree
extends javax.swing.JTree

Class Description : This extends the JTree and provides expansion capabilities.

The main purpose of this class is to keep track of the current expanded branches and leaves of the tree, so that
its integrity is maintained when the tree is refreshed.
Apart from that, this class provides some useful functions for expansion of the branches to certain levels, or all levels.

$LastChangedRevision: 1224 $
$LastChangedDate:: 2010-12-06 06:02:28#$

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JTree
javax.swing.JTree.AccessibleJTree, javax.swing.JTree.DropLocation, javax.swing.JTree.DynamicUtilTreeNode, javax.swing.JTree.EmptySelectionModel, javax.swing.JTree.TreeModelHandler, javax.swing.JTree.TreeSelectionRedirector
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JTree
ANCHOR_SELECTION_PATH_PROPERTY, CELL_EDITOR_PROPERTY, CELL_RENDERER_PROPERTY, cellEditor, cellRenderer, editable, EDITABLE_PROPERTY, EXPANDS_SELECTED_PATHS_PROPERTY, INVOKES_STOP_CELL_EDITING_PROPERTY, invokesStopCellEditing, LARGE_MODEL_PROPERTY, largeModel, LEAD_SELECTION_PATH_PROPERTY, ROOT_VISIBLE_PROPERTY, rootVisible, ROW_HEIGHT_PROPERTY, rowHeight, SCROLLS_ON_EXPAND_PROPERTY, scrollsOnExpand, SELECTION_MODEL_PROPERTY, selectionModel, selectionRedirector, SHOWS_ROOT_HANDLES_PROPERTY, showsRootHandles, TOGGLE_CLICK_COUNT_PROPERTY, toggleClickCount, TREE_MODEL_PROPERTY, treeModel, treeModelListener, VISIBLE_ROW_COUNT_PROPERTY, visibleRowCount
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
TLptsExpandTree()
           Returns a JTree with a sample model.
TLptsExpandTree(java.util.Hashtable<?,?> value)
          Taken from the JTree javadoc: Returns a JTree created from a Hashtable which does not display with root.
TLptsExpandTree(java.lang.Object[] value)
          Taken from the JTree javadoc: Returns a JTree with each element of the specified array as the child of a new root node which is not displayed.
TLptsExpandTree(javax.swing.tree.TreeModel newModel)
          Taken from the JTree javadoc: Returns an instance of JTree which displays the root node -- the tree is created using the specified data model.
TLptsExpandTree(javax.swing.tree.TreeNode root)
          Taken from the JTree javadoc: Returns a JTree with the specified TreeNode as its root, which displays the root node.
TLptsExpandTree(javax.swing.tree.TreeNode root, boolean asksAllowsChildren)
          Taken from the JTree javadoc: Returns a JTree with the specified TreeNode as its root, which displays the root node and which decides whether a node is a leaf node in the specified manner.
TLptsExpandTree(java.util.Vector<?> value)
          Taken from the JTree javadoc: Returns a JTree with each element of the specified Vector as the child of a new root node which is not displayed.
 
Method Summary
 void clearAllExpandedPaths()
          Clears all the expanded paths.
 void expandAllFromPath(javax.swing.tree.TreePath parent)
          Expands all the levels (children) under a certain path.
 void expandAllFromRoot()
          Expands all the levels of all branches from the root.
 void expandToLevel(int level)
          This function expands the whole tree to the level requested.
 void expandToLevel(javax.swing.tree.TreePath path, int level)
          Expands all children (recursively) of the last component in the path supplied.
 void reloadModelAndRepaint()
          Reloads the model and refreshes without loosing the current expansion status.
 
Methods inherited from class javax.swing.JTree
addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearSelection, clearToggledPaths, collapsePath, collapseRow, convertValueToText, createTreeModel, createTreeModelListener, expandPath, expandRow, fireTreeCollapsed, fireTreeExpanded, fireTreeWillCollapse, fireTreeWillExpand, fireValueChanged, getAccessibleContext, getAnchorSelectionPath, getCellEditor, getCellRenderer, getClosestPathForLocation, getClosestRowForLocation, getDefaultTreeModel, getDescendantToggledPaths, getDragEnabled, getDropLocation, getDropMode, getEditingPath, getExpandedDescendants, getExpandsSelectedPaths, getInvokesStopCellEditing, getLastSelectedPathComponent, getLeadSelectionPath, getLeadSelectionRow, getMaxSelectionRow, getMinSelectionRow, getModel, getNextMatch, getPathBetweenRows, getPathBounds, getPathForLocation, getPathForRow, getPreferredScrollableViewportSize, getRowBounds, getRowCount, getRowForLocation, getRowForPath, getRowHeight, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollsOnExpand, getSelectionCount, getSelectionModel, getSelectionPath, getSelectionPaths, getSelectionRows, getShowsRootHandles, getToggleClickCount, getToolTipText, getTreeExpansionListeners, getTreeSelectionListeners, getTreeWillExpandListeners, getUI, getUIClassID, getVisibleRowCount, hasBeenExpanded, isCollapsed, isCollapsed, isEditable, isEditing, isExpanded, isExpanded, isFixedRowHeight, isLargeModel, isPathEditable, isPathSelected, isRootVisible, isRowSelected, isSelectionEmpty, isVisible, makeVisible, paramString, removeDescendantSelectedPaths, removeDescendantToggledPaths, removeSelectionInterval, removeSelectionPath, removeSelectionPaths, removeSelectionRow, removeSelectionRows, removeTreeExpansionListener, removeTreeSelectionListener, removeTreeWillExpandListener, scrollPathToVisible, scrollRowToVisible, setAnchorSelectionPath, setCellEditor, setCellRenderer, setDragEnabled, setDropMode, setEditable, setExpandedState, setExpandsSelectedPaths, setInvokesStopCellEditing, setLargeModel, setLeadSelectionPath, setModel, setRootVisible, setRowHeight, setScrollsOnExpand, setSelectionInterval, setSelectionModel, setSelectionPath, setSelectionPaths, setSelectionRow, setSelectionRows, setShowsRootHandles, setToggleClickCount, setUI, setVisibleRowCount, startEditingAtPath, stopEditing, treeDidChange, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TLptsExpandTree

public TLptsExpandTree()

Returns a JTree with a sample model. The default model used by the tree defines a leaf node as any node without children.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : No

Notes :

Example :

 

See Also:
DefaultTreeModel.asksAllowsChildren

TLptsExpandTree

public TLptsExpandTree(java.util.Hashtable<?,?> value)

Taken from the JTree javadoc: Returns a JTree created from a Hashtable which does not display with root. Each value-half of the key/value pairs in the HashTable becomes a child of the new root node. By default, the tree defines a leaf node as any node without children.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : No

Notes :

Example :

 

Parameters:
value - a Hashtable
See Also:
DefaultTreeModel.asksAllowsChildren

TLptsExpandTree

public TLptsExpandTree(java.lang.Object[] value)

Taken from the JTree javadoc: Returns a JTree with each element of the specified array as the child of a new root node which is not displayed. By default, the tree defines a leaf node as any node without children.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : No

Notes :

Example :

 

Parameters:
value - an array of Objects
See Also:
DefaultTreeModel.asksAllowsChildren

TLptsExpandTree

public TLptsExpandTree(javax.swing.tree.TreeModel newModel)

Taken from the JTree javadoc: Returns an instance of JTree which displays the root node -- the tree is created using the specified data model.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : No

Notes :

Example :

 new TLptsExpandTree(new DefaultTreeModel(new DefaultMutableTreeNode("Root")));
 

Parameters:
newModel - the TreeModel to use as the data model

TLptsExpandTree

public TLptsExpandTree(javax.swing.tree.TreeNode root)

Taken from the JTree javadoc: Returns a JTree with the specified TreeNode as its root, which displays the root node. By default, the tree defines a leaf node as any node without children.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : No

Notes :

Example :

 new TLptsExpandTree(new DefaultMutableTreeNode("Root"));
 

Parameters:
root - a TreeNode object
See Also:
DefaultTreeModel.asksAllowsChildren

TLptsExpandTree

public TLptsExpandTree(javax.swing.tree.TreeNode root,
                       boolean asksAllowsChildren)

Taken from the JTree javadoc: Returns a JTree with the specified TreeNode as its root, which displays the root node and which decides whether a node is a leaf node in the specified manner.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : No

Notes :

Example :

 new TLptsExpandTree(new DefaultMutableTreeNode("Root"),false);
 

Parameters:
root - a TreeNode object
asksAllowsChildren - if false, any node without children is a leaf node; if true, only nodes that do not allow children are leaf nodes
See Also:
DefaultTreeModel.asksAllowsChildren

TLptsExpandTree

public TLptsExpandTree(java.util.Vector<?> value)

Taken from the JTree javadoc: Returns a JTree with each element of the specified Vector as the child of a new root node which is not displayed. By default, the tree defines a leaf node as any node without children.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : No

Notes :

Example :

 

Parameters:
value - a Vector
See Also:
DefaultTreeModel.asksAllowsChildren
Method Detail

clearAllExpandedPaths

public void clearAllExpandedPaths()
Clears all the expanded paths.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : N/A

Notes : The tree is completely collapsed after this call.

Example :

 

DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode c11Node = new DefaultMutableTreeNode("Child Level-1-No-1"); DefaultMutableTreeNode c12Node = new DefaultMutableTreeNode("Child Level-1-No-2"); DefaultMutableTreeNode c21Node = new DefaultMutableTreeNode("Child Level-2-No-1"); DefaultMutableTreeNode c22Node = new DefaultMutableTreeNode("Child Level-2-No-2"); DefaultMutableTreeNode c31Node = new DefaultMutableTreeNode("Child Level-3-No-1");

c11Node.add(c21Node); c11Node.add(c22Node); c21Node.add(c31Node);

setModel(new DefaultTreeModel(rootNode)); rootNode.add(c11Node); rootNode.add(c12Node);

expandAllFromRoot(); // Everything will be visible

clearAllExpandedPaths(); reloadModelAndRepaint();

Result : root Visible -- Child Level-1-No-1 Invisible -- Child Level-2-No-1 Invisible -- Child Level-3-No-1 Invisible -- Child Level-2-No-2 Invisible -- Child Level-1-No-2 Invisible


expandAllFromPath

public void expandAllFromPath(javax.swing.tree.TreePath parent)
Expands all the levels (children) under a certain path.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : N/A

Notes :

Example :

 

DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode c11Node = new DefaultMutableTreeNode("Child Level-1-No-1"); DefaultMutableTreeNode c12Node = new DefaultMutableTreeNode("Child Level-1-No-2"); DefaultMutableTreeNode c21Node = new DefaultMutableTreeNode("Child Level-2-No-1"); DefaultMutableTreeNode c22Node = new DefaultMutableTreeNode("Child Level-2-No-2"); DefaultMutableTreeNode c31Node = new DefaultMutableTreeNode("Child Level-3-No-1");

c11Node.add(c21Node); c11Node.add(c22Node); c21Node.add(c31Node);

setModel(new DefaultTreeModel(rootNode)); rootNode.add(c11Node); rootNode.add(c12Node);

Object objs[] = {rootNode}; TreePath path = new TreePath(objs); expandAllFromPath(path);

Result : root Visible -- Child Level-1-No-1 Visible -- Child Level-2-No-1 Visible -- Child Level-3-No-1 Visible -- Child Level-2-No-2 Visible -- Child Level-1-No-2 Visible

Parameters:
parent - The path to start expanding from. Everything below it will be expanded.

expandAllFromRoot

public void expandAllFromRoot()
Expands all the levels of all branches from the root.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : N/A

Notes :

Example :

 

DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode c11Node = new DefaultMutableTreeNode("Child Level-1-No-1"); DefaultMutableTreeNode c12Node = new DefaultMutableTreeNode("Child Level-1-No-2"); DefaultMutableTreeNode c21Node = new DefaultMutableTreeNode("Child Level-2-No-1"); DefaultMutableTreeNode c22Node = new DefaultMutableTreeNode("Child Level-2-No-2"); DefaultMutableTreeNode c31Node = new DefaultMutableTreeNode("Child Level-3-No-1");

c11Node.add(c21Node); c11Node.add(c22Node); c21Node.add(c31Node);

setModel(new DefaultTreeModel(rootNode)); rootNode.add(c11Node); rootNode.add(c12Node);

expandAllFromRoot();

Result : root Visible -- Child Level-1-No-1 Visible -- Child Level-2-No-1 Visible -- Child Level-3-No-1 Visible -- Child Level-2-No-2 Visible -- Child Level-1-No-2 Visible


expandToLevel

public void expandToLevel(int level)
This function expands the whole tree to the level requested.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : N/A

Notes :
The first level is specified as 1 from the root, the second as 2 etc.
In other word if 1 is specified as the parameter, then all the branches of the root will be visible, but their children will not be visible.

Example :

 

DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode c11Node = new DefaultMutableTreeNode("Child Level-1-No-1"); DefaultMutableTreeNode c12Node = new DefaultMutableTreeNode("Child Level-1-No-2"); DefaultMutableTreeNode c21Node = new DefaultMutableTreeNode("Child Level-2-No-1"); DefaultMutableTreeNode c22Node = new DefaultMutableTreeNode("Child Level-2-No-2"); DefaultMutableTreeNode c31Node = new DefaultMutableTreeNode("Child Level-3-No-1");

c11Node.add(c21Node); c11Node.add(c22Node); c21Node.add(c31Node);

setModel(new DefaultTreeModel(rootNode)); rootNode.add(c11Node); rootNode.add(c12Node);

expandToLevel(2);

Result : root Visible -- Child Level-1-No-1 Visible -- Child Level-2-No-1 Visible -- Child Level-3-No-1 Visible -- Child Level-2-No-2 Visible -- Child Level-1-No-2 Visible

Parameters:
level - Starting at 1, specify the level required. If all levels are required, do not use this function, use expandAllFromPath or expandAllFromRoot.

expandToLevel

public void expandToLevel(javax.swing.tree.TreePath path,
                          int level)
Expands all children (recursively) of the last component in the path supplied.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : N/A

Notes : Use this to expand everything under a certain path, without influencing anything else.

Example :

 

DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode c11Node = new DefaultMutableTreeNode("Child Level-1-No-1"); DefaultMutableTreeNode c12Node = new DefaultMutableTreeNode("Child Level-1-No-2"); DefaultMutableTreeNode c21Node = new DefaultMutableTreeNode("Child Level-2-No-1"); DefaultMutableTreeNode c22Node = new DefaultMutableTreeNode("Child Level-2-No-2"); DefaultMutableTreeNode c31Node = new DefaultMutableTreeNode("Child Level-3-No-1");

c11Node.add(c21Node); c11Node.add(c22Node); c21Node.add(c31Node);

setModel(new DefaultTreeModel(rootNode)); rootNode.add(c11Node); rootNode.add(c12Node);

Object objs[] = {rootNode,c11Node}; TreePath path = new TreePath(objs); expandToLevel(path,1);

Result : root Visible -- Child Level-1-No-1 Visible -- Child Level-2-No-1 Visible -- Child Level-3-No-1 Invisible -- Child Level-2-No-2 Visible -- Child Level-1-No-2 Visible

Parameters:
path - The path to use as the start of expanding.
level - The level to which the children of this path need to be expanded.

reloadModelAndRepaint

public void reloadModelAndRepaint()
Reloads the model and refreshes without loosing the current expansion status.

Thread Safe : Yes

Spawns its own Thread : No

May Return NULL : N/A

Notes : Use this after the model has been updated to show the new model.

Example :

 

DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Root"); DefaultMutableTreeNode c11Node = new DefaultMutableTreeNode("Child Level-1-No-1"); DefaultMutableTreeNode c12Node = new DefaultMutableTreeNode("Child Level-1-No-2"); DefaultMutableTreeNode c21Node = new DefaultMutableTreeNode("Child Level-2-No-1"); DefaultMutableTreeNode c22Node = new DefaultMutableTreeNode("Child Level-2-No-2"); DefaultMutableTreeNode c31Node = new DefaultMutableTreeNode("Child Level-3-No-1");

c11Node.add(c21Node); c11Node.add(c22Node); c21Node.add(c31Node);

setModel(new DefaultTreeModel(rootNode)); rootNode.add(c11Node); rootNode.add(c12Node);

reloadModelAndRepaint();

Result : root Visible -- Child Level-1-No-1 Invisible -- Child Level-2-No-1 Invisible -- Child Level-3-No-1 Invisible -- Child Level-2-No-2 Invisible -- Child Level-1-No-2 Invisible



Copyright 2009,2010, Lapetus Systems Ltd. (All rights reserved)