Class SynthTreeUI
java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.TreeUI
javax.swing.plaf.basic.BasicTreeUI
javax.swing.plaf.synth.SynthTreeUI
- All Implemented Interfaces:
PropertyChangeListener, EventListener, SynthConstants, SynthUI
Provides the Synth L&F UI delegate for
JTree
.- Since:
- 1.7
-
Nested Class Summary
Nested classes/interfaces declared in class 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
Modifier and TypeClassDescriptionclass
Listener responsible for getting cell editing events and updating the tree accordingly.class
Updates the preferred size when scrolling (if necessary).class
Repaints the lead selection row when focus is lost/gained.class
This is used to get multiple key down events to appropriately generate events.class
TreeMouseListener is responsible for updating the selection based on mouse events.class
MouseInputHandler handles passing all mouse events, including mouse motion events, until the mouse is released to the destination it is constructed with.class
Class responsible for getting size of node, method is forwarded to BasicTreeUI method.class
PropertyChangeListener for the tree.class
Listener on the TreeSelectionModel, resets the row selection if any of the properties of the model change.class
ActionListener that invokes cancelEditing when action performed.class
Updates the TreeState in response to nodes expanding/collapsing.class
TreeHomeAction is used to handle end/home actions.class
TreeIncrementAction is used to handle up/down actions.class
Forwards all TreeModel events to the TreeState.class
TreePageAction handles page up and page down events.class
Listens for changes in the selection model and updates the display accordingly.class
For the first selected row expandedness will be toggled.class
TreeTraverseAction
is the action used for left/right keys. -
Field Summary
Fields declared in class 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
Modifier and TypeFieldDescriptionprotected TreeCellEditor
Editor for the tree.protected Icon
The collapsed icon.protected boolean
Set to true if editor that is currently in the tree was created by this instance.protected boolean
Set to true if the renderer that is currently in the tree was created by this instance.protected TreeCellRenderer
Renderer that is being used to do the actual cell drawing.protected int
How much the depth should be offset to properly calculate x locations.Used for minimizing the drawing of vertical lines.protected Component
When editing, this will be the Component that is doing the actual editing.protected TreePath
Path that is being edited.protected int
Row that is being edited.protected boolean
Set to true if the editor has a different size than the renderer.protected Icon
The expanded icon.protected boolean
True if doing optimizations for a largeModel.protected int
Index of the row that was last selected.protected int
Distance between left margin and where vertical dashes will be drawn.protected AbstractLayoutCache.NodeDimensions
Responsible for telling the TreeState the size needed for a node.protected Dimension
Minimum preferred size.protected Dimension
Size needed to completely display all the nodes.protected CellRendererPane
Used to paint the TreeCellRenderer.protected int
Distance to add to leftChildIndent to determine where cell contents will be drawn.protected boolean
Set to false when editing and shouldSelectCell() returns true meaning the node should be selected before editing, used in completeEditing.protected int
Total distance that will be indented.protected JTree
Component that we're going to be drawing into.protected TreeModel
Used to determine what to display.protected TreeSelectionModel
Model maintaining the selection.protected AbstractLayoutCache
Object responsible for handling sizing and expanded issues.protected boolean
Is the preferredSize valid?Fields declared in interface SynthConstants
DEFAULT, DISABLED, ENABLED, FOCUSED, MOUSE_OVER, PRESSED, SELECTED
Modifier and TypeFieldDescriptionstatic final int
Indicates the region is the default.static final int
Primary state indicating the region is not enabled.static final int
Primary state indicating the component is enabled.static final int
Indicates the region has focus.static final int
Primary state indicating the mouse is over the region.static final int
Primary state indicating the region is in a pressed state.static final int
Indicates the region is selected. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ComponentUI
Creates a new UI object for the given component.Returns the Context for the specified component.void
paint
(Graphics g, JComponent c) Paints the specified component according to the Look and Feel.protected void
paint
(SynthContext context, Graphics g) Paints the specified component.void
paintBorder
(SynthContext context, Graphics g, int x, int y, int w, int h) Paints the border.void
This method gets called when a bound property is changed.void
update
(Graphics g, JComponent c) Notifies this UI delegate to repaint the specified component.Methods declared in class BasicTreeUI
cancelEditing, checkForClickInExpandControl, completeEditing, completeEditing, completeUIInstall, completeUIUninstall, configureLayoutCache, createCellEditorListener, createCellRendererPane, createComponentListener, createDefaultCellEditor, createDefaultCellRenderer, createFocusListener, createKeyListener, createLayoutCache, createMouseListener, createNodeDimensions, createPropertyChangeListener, createSelectionModelPropertyChangeListener, createTreeExpansionListener, createTreeModelListener, createTreeSelectionListener, drawCentered, drawDashedHorizontalLine, drawDashedVerticalLine, ensureRowsAreVisible, getBaseline, getBaselineResizeBehavior, getCellEditor, getCellRenderer, getClosestPathForLocation, getCollapsedIcon, getDropLineRect, getEditingPath, getExpandedIcon, getHashColor, getHorizontalLegBuffer, getLastChildPath, getLeadSelectionRow, getLeftChildIndent, getMaximumSize, getMinimumSize, getModel, getPathBounds, getPathForRow, getPreferredMinSize, getPreferredSize, getPreferredSize, getRightChildIndent, getRowCount, getRowForPath, getRowHeight, getRowX, getSelectionModel, getShowsRootHandles, getVerticalLegBuffer, handleExpandControlClick, installComponents, installDefaults, installKeyboardActions, installListeners, isDropLine, isEditable, isEditing, isLargeModel, isLeaf, isLocationInExpandControl, isMultiSelectEvent, isRootVisible, isToggleEvent, isToggleSelectionEvent, paintDropLine, paintExpandControl, paintHorizontalLine, paintHorizontalPartOfLeg, paintRow, paintVerticalLine, paintVerticalPartOfLeg, pathWasCollapsed, pathWasExpanded, prepareForUIInstall, prepareForUIUninstall, selectPathForEvent, setCellEditor, setCellRenderer, setCollapsedIcon, setEditable, setExpandedIcon, setHashColor, setLargeModel, setLeftChildIndent, setModel, setPreferredMinSize, setRightChildIndent, setRootVisible, setRowHeight, setSelectionModel, setShowsRootHandles, shouldPaintExpandControl, startEditing, startEditingAtPath, stopEditing, toggleExpandState, uninstallComponents, uninstallDefaults, uninstallKeyboardActions, uninstallListeners, updateCachedPreferredSize, updateCellEditor, updateDepthOffset, updateExpandedDescendants, updateLayoutCacheExpandedNodes, updateLeadSelectionRow, updateRenderer, updateSize
Modifier and TypeMethodDescriptionvoid
cancelEditing
(JTree tree) Cancels the current editing session.protected void
checkForClickInExpandControl
(TreePath path, int mouseX, int mouseY) If themouseX
andmouseY
are in the expand/collapse region of therow
, this will toggle the row.protected void
Messages to stop the editing session.protected void
completeEditing
(boolean messageStop, boolean messageCancel, boolean messageTree) Stops the editing session.protected void
Invoked from installUI after all the defaults/listeners have been installed.protected void
Uninstalls UI.protected void
Resets the TreeState instance based on the tree we're providing the look and feel for.protected CellEditorListener
Creates a listener to handle events from the current editor.protected CellRendererPane
Returns the renderer pane that renderer components are placed in.protected ComponentListener
Creates and returns a new ComponentHandler.protected TreeCellEditor
Creates a default cell editor.protected TreeCellRenderer
Returns the default cell renderer that is used to do the stamping of each node.protected FocusListener
Creates a listener that is responsible for updating the display when focus is lost/gained.protected KeyListener
Creates the listener responsible for getting key events from the tree.protected AbstractLayoutCache
Creates the object responsible for managing what is expanded, as well as the size of nodes.protected MouseListener
Creates the listener responsible for updating the selection based on mouse events.protected AbstractLayoutCache.NodeDimensions
Creates an instance ofNodeDimensions
that is able to determine the size of a given node in the tree.protected PropertyChangeListener
Creates a listener that is responsible that updates the UI based on how the tree changes.protected PropertyChangeListener
Creates the listener responsible for getting property change events from the selection model.protected TreeExpansionListener
Creates and returns the object responsible for updating the treestate when nodes expanded state changes.protected TreeModelListener
Returns a listener that can update the tree when the model changes.protected TreeSelectionListener
Creates the listener that updates the display based on selection change methods.protected void
drawCentered
(Component c, Graphics graphics, Icon icon, int x, int y) Draws theicon
centered at (x,y).protected void
drawDashedHorizontalLine
(Graphics g, int y, int x1, int x2) Draws a horizontal dashed line.protected void
drawDashedVerticalLine
(Graphics g, int x, int y1, int y2) Draws a vertical dashed line.protected void
ensureRowsAreVisible
(int beginRow, int endRow) Ensures that the rows identified bybeginRow
throughendRow
are visible.int
getBaseline
(JComponent c, int width, int height) Returns the baseline.Returns an enum indicating how the baseline of the component changes as the size changes.protected TreeCellEditor
Returns the editor used to edit entries in the drawn tree component, ornull
if the tree cannot be edited.protected TreeCellRenderer
Returns the current instance of theTreeCellRenderer
that is rendering each cell.getClosestPathForLocation
(JTree tree, int x, int y) Returns the path to the node that is closest to x,y.Returns the collapsed icon.protected Rectangle
Returns a unbounding box for the drop line.getEditingPath
(JTree tree) Returns the path to the element that is being edited.Returns the expanded icon.protected Color
Returns the hash color.protected int
The horizontal element of legs between nodes starts at the right of the left-hand side of the child node by default.protected TreePath
getLastChildPath
(TreePath parent) Returns a path to the last child ofparent
.protected int
Returns the lead row of the selection.int
Returns the left child indent.Returns the maximum size for this component, which will be the preferred size if the instance is currently in a JTree, or 0, 0.Returns the minimum size for this component.protected TreeModel
getModel()
Returns the tree model.getPathBounds
(JTree tree, TreePath path) Returns the Rectangle enclosing the label portion that the last item in path will be drawn into.getPathForRow
(JTree tree, int row) Returns the path for passed in row.Returns the minimum preferred size.Returns the preferred size to properly display the tree, this is a cover method forgetPreferredSize(c, true)
.getPreferredSize
(JComponent c, boolean checkConsistency) Returns the preferred size to represent the tree in c.int
Returns the right child indent.int
getRowCount
(JTree tree) Returns the number of rows that are being displayed.int
getRowForPath
(JTree tree, TreePath path) Returns the row that the last item identified in path is visible at.protected int
Returns the height of each row in the drawn tree component.protected int
getRowX
(int row, int depth) Returns the location, along the x-axis, to render a particular row at.protected TreeSelectionModel
Returns the current instance of theTreeSelectionModel
which is the model for selections.protected boolean
Returnstrue
if the root handles are to be displayed.protected int
The vertical element of legs between nodes starts at the bottom of the parent node by default.protected void
handleExpandControlClick
(TreePath path, int mouseX, int mouseY) Messaged when the user clicks the particular row, this invokestoggleExpandState
.protected void
Installs the subcomponents of the tree, which is the renderer pane.protected void
Installs default properties.protected void
Registers keyboard actions.protected void
Registers listeners.protected boolean
Tells if aDropLocation
should be indicated by a line between nodes.protected boolean
Returns whether the drawn tree component should be enabled for editing.boolean
Returns true if the tree is being edited.protected boolean
Returnstrue
if large model is set.protected boolean
isLeaf
(int row) Returnstrue
if the node atrow
is a leaf.protected boolean
isLocationInExpandControl
(TreePath path, int mouseX, int mouseY) Returnstrue
ifmouseX
andmouseY
fall in the area of row that is used to expand/collapse the node and the node atrow
does not represent a leaf.protected boolean
isMultiSelectEvent
(MouseEvent event) Returningtrue
signifies a mouse event on the node should select from the anchor point.protected boolean
Returns whether the root node of the drawn tree component should be displayed.protected boolean
isToggleEvent
(MouseEvent event) Returningtrue
indicates the row under the mouse should be toggled based on the event.protected boolean
isToggleSelectionEvent
(MouseEvent event) Returningtrue
signifies a mouse event on the node should toggle the selection of only the row under mouse.protected void
Paints the drop line.protected void
paintExpandControl
(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf) Paints the expand (toggle) part of a row.protected void
paintHorizontalLine
(Graphics g, JComponent c, int y, int left, int right) Paints a horizontal line.protected void
paintHorizontalPartOfLeg
(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf) Paints the horizontal part of the leg.protected void
paintRow
(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf) Paints the renderer part of a row.protected void
paintVerticalLine
(Graphics g, JComponent c, int x, int top, int bottom) Paints a vertical line.protected void
paintVerticalPartOfLeg
(Graphics g, Rectangle clipBounds, Insets insets, TreePath path) Paints the vertical part of the leg.protected void
pathWasCollapsed
(TreePath path) Messaged from theVisibleTreeNode
after it has collapsed.protected void
pathWasExpanded
(TreePath path) Messaged from theVisibleTreeNode
after it has been expanded.protected void
Invoked after thetree
instance variable has been set, but before any defaults/listeners have been installed.protected void
Invoked before uninstallation of UI.protected void
selectPathForEvent
(TreePath path, MouseEvent event) Messaged to update the selection based on aMouseEvent
over a particular row.protected void
setCellEditor
(TreeCellEditor editor) Sets the cell editor.protected void
Sets theTreeCellRenderer
totcr
.void
setCollapsedIcon
(Icon newG) Sets the collapsed icon.protected void
setEditable
(boolean newValue) Configures the receiver to allow, or not allow, editing.void
setExpandedIcon
(Icon newG) Sets the expanded icon.protected void
setHashColor
(Color color) Sets the hash color.protected void
setLargeModel
(boolean largeModel) Sets thelargeModel
.void
setLeftChildIndent
(int newAmount) Sets the left child indent.protected void
Sets theTreeModel
.void
setPreferredMinSize
(Dimension newSize) Sets the preferred minimum size.void
setRightChildIndent
(int newAmount) Sets the right child indent.protected void
setRootVisible
(boolean newValue) Sets the root to being visible.protected void
setRowHeight
(int rowHeight) Sets the row height, this is forwarded to the treeState.protected void
setSelectionModel
(TreeSelectionModel newLSM) Resets the selection model.protected void
setShowsRootHandles
(boolean newValue) Determines whether the node handles are to be displayed.protected boolean
shouldPaintExpandControl
(TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf) Returnstrue
if the expand (toggle) control should be drawn for the specified row.protected boolean
startEditing
(TreePath path, MouseEvent event) Will start editing for node if there is acellEditor
andshouldSelectCell
returnstrue
.void
startEditingAtPath
(JTree tree, TreePath path) Selects the last item in path and tries to edit it.boolean
stopEditing
(JTree tree) Stops the current editing session.protected void
toggleExpandState
(TreePath path) Expands path if it is not expanded, or collapses row if it is expanded.protected void
Uninstalls the renderer pane.protected void
Uninstalls default properties.protected void
Unregisters keyboard actions.protected void
Unregisters listeners.protected void
Updates thepreferredSize
instance variable, which is returned fromgetPreferredSize()
.protected void
Updates the cellEditor based on the editability of the JTree that we're contained in.protected void
Updates how much each depth should be offset by.protected void
Updates the expanded state of all the descendants ofpath
by getting the expanded descendants from the tree and forwarding to the tree state.protected void
Makes all the nodes that are expanded in JTree expanded in LayoutCache.protected void
Updates the lead row of the selection.protected void
Messaged from the tree we're in when the renderer has changed.protected void
Marks the cached size as being invalid, and messages the tree withtreeDidChange
.Methods declared in class ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, installUI, uninstallUI
Modifier and TypeMethodDescriptionboolean
contains
(JComponent c, int x, int y) Returnstrue
if the specified x,y location is contained within the look and feel's defined shape of the specified component.getAccessibleChild
(JComponent c, int i) Returns thei
thAccessible
child of the object.int
Returns the number of accessible children in the object.void
Configures the specified component appropriately for the look and feel.void
Reverses configuration which was done on the specified component duringinstallUI
.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Modifier and TypeMethodDescriptionprotected Object
clone()
Creates and returns a copy of this object.boolean
Indicates whether some other object is "equal to" this one.protected void
finalize()
Deprecated, for removal: This API element is subject to removal in a future version.Finalization is deprecated and subject to removal in a future release.final Class
<?> getClass()
Returns the runtime class of thisObject
.int
hashCode()
Returns a hash code value for this object.final void
notify()
Wakes up a single thread that is waiting on this object's monitor.final void
Wakes up all threads that are waiting on this object's monitor.toString()
Returns a string representation of the object.final void
wait()
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final void
wait
(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.final void
wait
(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
-
Constructor Details
-
SynthTreeUI
public SynthTreeUI()Constructs aSynthTreeUI
.
-
-
Method Details
-
createUI
Creates a new UI object for the given component.- Parameters:
x
- component to create UI object for- Returns:
- the UI object
-
getContext
Returns the Context for the specified component.- Specified by:
getContext
in interfaceSynthUI
- Parameters:
c
- Component requesting SynthContext.- Returns:
- SynthContext describing component.
-
update
Notifies this UI delegate to repaint the specified component. This method paints the component background, then calls thepaint(SynthContext,Graphics)
method.In general, this method does not need to be overridden by subclasses. All Look and Feel rendering code should reside in the
paint
method.- Overrides:
update
in classComponentUI
- Parameters:
g
- theGraphics
object used for paintingc
- the component being painted- See Also:
-
paintBorder
Paints the border.- Specified by:
paintBorder
in interfaceSynthUI
- Parameters:
context
- a component contextg
-Graphics
to paint onx
- the X coordinatey
- the Y coordinatew
- width of the borderh
- height of the border
-
paint
Paints the specified component according to the Look and Feel.This method is not used by Synth Look and Feel. Painting is handled by the
paint(SynthContext,Graphics)
method.- Overrides:
paint
in classComponentUI
- Parameters:
g
- theGraphics
object used for paintingc
- the component being painted- See Also:
-
paint
Paints the specified component.- Parameters:
context
- context for the component being paintedg
- theGraphics
object used for painting- See Also:
-
propertyChange
This method gets called when a bound property is changed.- Specified by:
propertyChange
in interfacePropertyChangeListener
- Parameters:
event
- A PropertyChangeEvent object describing the event source and the property that has changed.
-