com.explodingpixels.macwidgets.plaf
Class SourceListTreeUI
java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.TreeUI
javax.swing.plaf.basic.BasicTreeUI
com.explodingpixels.macwidgets.plaf.SourceListTreeUI
public class SourceListTreeUI
- extends BasicTreeUI
A UI delegate that paints a JTree
as an Apple defined
Source List. Consider using this UI delegate with
MacWidgetFactory.createSourceListScrollPane(javax.swing.JComponent)
.
For the best development experience, it is recommended that you migrate your code to use the
SourceList
with the SourceListModel
, as this component abstracts away many of the
complexities of JTree
.
Pictured below are the two different rendering styles of a Source List: focused and unfocused.
The corresponding JTree
's focusable property drives this rendering style.
 |
 |
Focusable SourceList |
Non-focusable SourceList |
Providing Category and Item text and icons
During the rendering process, each Category and Item node will be consulted for the text to be
displayed. The renderer determines the text based on these prioritized checks:
- If the node is an instance of
DefaultMutableTreeNode
, and the
DefaultMutableTreeNode.getUserObject()
is an instance of TextProvider
, then
the TextProvider
will be queried for the node text.
- If no implementation of
TextProvider
is found, the standard
JTree.convertValueToText(Object, boolean, boolean, boolean, int, boolean)
method will
be consulted.
Also, during rendering, each Item node will be consulted for an icon. Similarly to the above
mechanism for determining text, the render determines a nodes icon by the following check:
- If the node is an instance of
DefaultMutableTreeNode
, and the
DefaultMutableTreeNode.getUserObject()
is an instance of IconProvider
, then
the IconProvider
will be queried for the node icon.
Nested classes/interfaces inherited from class javax.swing.plaf.basic.BasicTreeUI |
BasicTreeUI.CellEditorHandler, BasicTreeUI.ComponentHandler, BasicTreeUI.FocusHandler, BasicTreeUI.KeyHandler, BasicTreeUI.MouseHandler, BasicTreeUI.MouseInputHandler, BasicTreeUI.NodeDimensionsHandler, BasicTreeUI.PropertyChangeHandler, BasicTreeUI.SelectionModelPropertyChangeHandler, BasicTreeUI.TreeCancelEditingAction, BasicTreeUI.TreeExpansionHandler, BasicTreeUI.TreeHomeAction, BasicTreeUI.TreeIncrementAction, BasicTreeUI.TreeModelHandler, BasicTreeUI.TreePageAction, BasicTreeUI.TreeSelectionHandler, BasicTreeUI.TreeToggleAction, BasicTreeUI.TreeTraverseAction |
Fields inherited from class javax.swing.plaf.basic.BasicTreeUI |
cellEditor, collapsedIcon, createdCellEditor, createdRenderer, currentCellRenderer, depthOffset, drawingCache, editingComponent, editingPath, editingRow, editorHasDifferentSize, expandedIcon, largeModel, lastSelectedRow, leftChildIndent, nodeDimensions, preferredMinSize, preferredSize, rendererPane, rightChildIndent, stopEditingInCompleteEditing, totalChildIndent, tree, treeModel, treeSelectionModel, treeState, validCachedPreferredSize |
Method Summary |
protected void |
completeUIInstall()
|
protected AbstractLayoutCache.NodeDimensions |
createNodeDimensions()
|
SourceListColorScheme |
getColorScheme()
Gets the SourceListColorScheme that this SourceListTreeUI uses to paint. |
Rectangle |
getPathBounds(JTree tree,
TreePath path)
|
protected void |
installKeyboardActions()
|
protected void |
installListeners()
|
void |
paint(Graphics g,
JComponent c)
|
protected void |
paintExpandControl(Graphics g,
Rectangle clipBounds,
Insets insets,
Rectangle bounds,
TreePath path,
int row,
boolean isExpanded,
boolean hasBeenExpanded,
boolean isLeaf)
|
protected void |
paintHorizontalLine(Graphics g,
JComponent c,
int y,
int left,
int right)
|
protected void |
paintVerticalPartOfLeg(Graphics g,
Rectangle clipBounds,
Insets insets,
TreePath path)
|
protected void |
selectPathForEvent(TreePath path,
MouseEvent event)
|
void |
setColorScheme(SourceListColorScheme colorScheme)
Sets the SourceListColorScheme that this SourceListTreeUI uses to paint. |
protected void |
setModel(TreeModel model)
|
Methods inherited from class javax.swing.plaf.basic.BasicTreeUI |
cancelEditing, checkForClickInExpandControl, completeEditing, completeEditing, completeUIUninstall, configureLayoutCache, createCellEditorListener, createCellRendererPane, createComponentListener, createDefaultCellEditor, createDefaultCellRenderer, createFocusListener, createKeyListener, createLayoutCache, createMouseListener, createPropertyChangeListener, createSelectionModelPropertyChangeListener, createTreeExpansionListener, createTreeModelListener, createTreeSelectionListener, createUI, drawCentered, drawDashedHorizontalLine, drawDashedVerticalLine, ensureRowsAreVisible, getBaseline, getBaselineResizeBehavior, getCellEditor, getCellRenderer, getClosestPathForLocation, getCollapsedIcon, getEditingPath, getExpandedIcon, getHashColor, getHorizontalLegBuffer, getLastChildPath, getLeftChildIndent, getMaximumSize, getMinimumSize, getModel, getPathForRow, getPreferredMinSize, getPreferredSize, getPreferredSize, getRightChildIndent, getRowCount, getRowForPath, getRowHeight, getRowX, getSelectionModel, getShowsRootHandles, getVerticalLegBuffer, handleExpandControlClick, installComponents, installDefaults, installUI, isEditable, isEditing, isLargeModel, isLeaf, isLocationInExpandControl, isMultiSelectEvent, isRootVisible, isToggleEvent, isToggleSelectionEvent, paintHorizontalPartOfLeg, paintRow, paintVerticalLine, pathWasCollapsed, pathWasExpanded, prepareForUIInstall, prepareForUIUninstall, setCellEditor, setCellRenderer, setCollapsedIcon, setEditable, setExpandedIcon, setHashColor, setLargeModel, setLeftChildIndent, setPreferredMinSize, setRightChildIndent, setRootVisible, setRowHeight, setSelectionModel, setShowsRootHandles, shouldPaintExpandControl, startEditing, startEditingAtPath, stopEditing, toggleExpandState, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, uninstallUI, updateCachedPreferredSize, updateCellEditor, updateDepthOffset, updateExpandedDescendants, updateLayoutCacheExpandedNodes, updateRenderer, updateSize |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SourceListTreeUI
public SourceListTreeUI()
completeUIInstall
protected void completeUIInstall()
- Overrides:
completeUIInstall
in class BasicTreeUI
installListeners
protected void installListeners()
- Overrides:
installListeners
in class BasicTreeUI
installKeyboardActions
protected void installKeyboardActions()
- Overrides:
installKeyboardActions
in class BasicTreeUI
setModel
protected void setModel(TreeModel model)
- Overrides:
setModel
in class BasicTreeUI
getColorScheme
public SourceListColorScheme getColorScheme()
- Gets the
SourceListColorScheme
that this SourceListTreeUI
uses to paint.
- Returns:
- the
SourceListColorScheme
that this SourceList
uses to paint.
setColorScheme
public void setColorScheme(SourceListColorScheme colorScheme)
- Sets the
SourceListColorScheme
that this SourceListTreeUI
uses to paint.
- Parameters:
colorScheme
- the SourceListColorScheme
that this SourceList
uses to
paint.
paintExpandControl
protected void paintExpandControl(Graphics g,
Rectangle clipBounds,
Insets insets,
Rectangle bounds,
TreePath path,
int row,
boolean isExpanded,
boolean hasBeenExpanded,
boolean isLeaf)
- Overrides:
paintExpandControl
in class BasicTreeUI
createNodeDimensions
protected AbstractLayoutCache.NodeDimensions createNodeDimensions()
- Overrides:
createNodeDimensions
in class BasicTreeUI
getPathBounds
public Rectangle getPathBounds(JTree tree,
TreePath path)
- Overrides:
getPathBounds
in class BasicTreeUI
paint
public void paint(Graphics g,
JComponent c)
- Overrides:
paint
in class BasicTreeUI
paintHorizontalLine
protected void paintHorizontalLine(Graphics g,
JComponent c,
int y,
int left,
int right)
- Overrides:
paintHorizontalLine
in class BasicTreeUI
paintVerticalPartOfLeg
protected void paintVerticalPartOfLeg(Graphics g,
Rectangle clipBounds,
Insets insets,
TreePath path)
- Overrides:
paintVerticalPartOfLeg
in class BasicTreeUI
selectPathForEvent
protected void selectPathForEvent(TreePath path,
MouseEvent event)
- Overrides:
selectPathForEvent
in class BasicTreeUI