edu.northwestern.at.utils.swing
Class XTree

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 edu.northwestern.at.utils.swing.XTree
All Implemented Interfaces:
PrintableContents, SaveToFile, TreeIconSetter, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.Scrollable
Direct Known Subclasses:
Tree

public class XTree
extends javax.swing.JTree
implements PrintableContents, SaveToFile, TreeIconSetter

A JTree with different defaults and behavior.

The constructors are the same as in JTree. We did not bother giving them their own javadoc.

See Also:
Serialized Form

Nested Class Summary
protected  class XTree.Renderer
          Custom tree cell renderer class.
 
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
protected  java.lang.String title
          Tree title.
 
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, 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
XTree()
           
XTree(java.util.Hashtable value)
           
XTree(java.lang.Object[] value)
           
XTree(javax.swing.tree.TreeModel newModel)
           
XTree(javax.swing.tree.TreeNode root)
           
XTree(javax.swing.tree.TreeNode root, boolean asksAllowsChildren)
           
XTree(java.util.Vector value)
           
 
Method Summary
 void collapseAll()
          Collapses all the nodes.
 void collapseAllButRoot()
          Collapses all nodes except for the root node.
 void expandAll()
          Expands all the nodes.
 java.util.Collection getExpansionState()
          Gets (saves) the node expanded/collapsed state.
 PrintableComponent getPrintableComponent(java.lang.String title, java.awt.print.PageFormat pageFormat)
          Return printable component.
 java.lang.String getTitle()
          Get the tree title.
 void printContents(java.lang.String title, java.awt.print.PrinterJob printerJob, java.awt.print.PageFormat pageFormat)
          Prints the tree.
 void saveToFile(java.lang.String fileName)
          Save to a named file.
 void saveToFile(java.awt.Window parentWindow)
          Save to a file using a file dialog.
 void setCellRenderer(javax.swing.tree.TreeCellRenderer cellRenderer)
          Set the cell renderer.
 void setClosedIcon(javax.swing.ImageIcon newIcon)
          Set the closed folder icon for the tree display.
 void setExpansionState(java.util.Collection expansionState)
          Sets (restores) the node expanded/collapsed state.
 void setLeafIcon(javax.swing.ImageIcon newIcon)
          Set the leaf icon for the tree display.
 void setModel(javax.swing.tree.DefaultTreeModel newModel)
          Sets a new tree model.
 void setOpenIcon(javax.swing.ImageIcon newIcon)
          Set the open folder icon for the tree display.
 void setStandardIcons(boolean standardIcons)
          Sets the standard icons option.
 void setTitle(java.lang.String title)
          Set the tree title.
 
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, 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
 

Field Detail

title

protected java.lang.String title
Tree title.

Constructor Detail

XTree

public XTree()

XTree

public XTree(java.util.Hashtable value)

XTree

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

XTree

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

XTree

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

XTree

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

XTree

public XTree(java.util.Vector value)
Method Detail

setStandardIcons

public void setStandardIcons(boolean standardIcons)
Sets the standard icons option.

Parameters:
standardIcons - True if the tree uses standard prefix JTree open folder, closed folder, and leaf icons (the default). To use non-standard icons, see the setLeafIcon, setOpenIcon, and setClosedIcon methods of XTree. False to use no leading icons and optional trailing icons.

setModel

public void setModel(javax.swing.tree.DefaultTreeModel newModel)
Sets a new tree model.

Parameters:
newModel - New default tree model.

setExpansionState

public void setExpansionState(java.util.Collection expansionState)
Sets (restores) the node expanded/collapsed state.

Parameters:
expansionState - Set of all expanded nodes, or null to disable saved/restored expansion states.

getExpansionState

public java.util.Collection getExpansionState()
Gets (saves) the node expanded/collapsed state.

Returns:
Set of all expanded nodes, or null if saved/restored expansion states are disabled.

expandAll

public void expandAll()
Expands all the nodes.


collapseAll

public void collapseAll()
Collapses all the nodes.


collapseAllButRoot

public void collapseAllButRoot()
Collapses all nodes except for the root node.


setLeafIcon

public void setLeafIcon(javax.swing.ImageIcon newIcon)
Set the leaf icon for the tree display.

Specified by:
setLeafIcon in interface TreeIconSetter
Parameters:
newIcon - The new leaf icon.

setOpenIcon

public void setOpenIcon(javax.swing.ImageIcon newIcon)
Set the open folder icon for the tree display.

Specified by:
setOpenIcon in interface TreeIconSetter
Parameters:
newIcon - The new open folder icon.

setClosedIcon

public void setClosedIcon(javax.swing.ImageIcon newIcon)
Set the closed folder icon for the tree display.

Specified by:
setClosedIcon in interface TreeIconSetter
Parameters:
newIcon - The new closed folder icon.

setCellRenderer

public void setCellRenderer(javax.swing.tree.TreeCellRenderer cellRenderer)
Set the cell renderer.

Overrides:
setCellRenderer in class javax.swing.JTree
Parameters:
cellRenderer - Cell renderer for tree.

setTitle

public void setTitle(java.lang.String title)
Set the tree title.

Parameters:
title - The tree title.

The title is used for printing and file saving purposes.


getTitle

public java.lang.String getTitle()
Get the tree title.

Returns:
The tree title.

printContents

public void printContents(java.lang.String title,
                          java.awt.print.PrinterJob printerJob,
                          java.awt.print.PageFormat pageFormat)
Prints the tree.

Parameters:
title - Title for output.
printerJob - The printer job.
pageFormat - The printer page format.

getPrintableComponent

public PrintableComponent getPrintableComponent(java.lang.String title,
                                                java.awt.print.PageFormat pageFormat)
Return printable component.

Specified by:
getPrintableComponent in interface PrintableContents
Parameters:
title - Title for printing.
pageFormat - Page format for printing.
Returns:
Printable component for XTree.

saveToFile

public void saveToFile(java.lang.String fileName)
Save to a named file.

Specified by:
saveToFile in interface SaveToFile
Parameters:
fileName - Name of file to which to save results.

saveToFile

public void saveToFile(java.awt.Window parentWindow)
Save to a file using a file dialog.

Specified by:
saveToFile in interface SaveToFile
Parameters:
parentWindow - Parent window for file dialog.

Runs a file dialog to get the name of the file to which to save results.