public class

DefaultTreeCellEditor

extends Object
implements ActionListener TreeSelectionListener TreeCellEditor
java.lang.Object
   ↳ javax.swing.tree.DefaultTreeCellEditor

Class Overview

A TreeCellEditor. You need to supply an instance of DefaultTreeCellRenderer so that the icons can be obtained. You can optionally supply a TreeCellEditor that will be layed out according to the icon in the DefaultTreeCellRenderer. If you do not supply a TreeCellEditor, a TextField will be used. Editing is started on a triple mouse click, or after a click, pause, click and a delay of 1200 miliseconds.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

See Also

Summary

Nested Classes
class DefaultTreeCellEditor.DefaultTextField TextField used when no editor is supplied. 
class DefaultTreeCellEditor.EditorContainer Container responsible for placing the editingComponent
Fields
protected Color borderSelectionColor True if the border selection color should be drawn.
protected boolean canEdit As of Java 2 platform v1.4 this field should no longer be used.
protected Component editingComponent Component used in editing, obtained from the editingContainer.
protected Container editingContainer Editing container, will contain the editorComponent.
protected Icon editingIcon Icon to use when editing.
protected Font font Font to paint with, null indicates font of renderer is to be used.
protected TreePath lastPath Last path that was selected.
protected int lastRow Row that was last passed into getTreeCellEditorComponent.
protected int offset Used in editing.
protected TreeCellEditor realEditor Editor handling the editing.
protected DefaultTreeCellRenderer renderer Renderer, used to get border and offsets from.
protected Timer timer Used before starting the editing session.
protected JTree tree JTree instance listening too.
Public Constructors
DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer)
Constructs a DefaultTreeCellEditor object for a JTree using the specified renderer and a default editor.
DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer, TreeCellEditor editor)
Constructs a DefaultTreeCellEditor object for a JTree using the specified renderer and the specified editor.
Public Methods
void actionPerformed(ActionEvent e)
Messaged when the timer fires, this will start the editing session.
void addCellEditorListener(CellEditorListener l)
Adds the CellEditorListener.
void cancelCellEditing()
Messages cancelCellEditing to the realEditor and removes it from this instance.
Color getBorderSelectionColor()
Returns the color the border is drawn.
CellEditorListener[] getCellEditorListeners()
Returns an array of all the CellEditorListeners added to this DefaultTreeCellEditor with addCellEditorListener().
Object getCellEditorValue()
Returns the value currently being edited.
Font getFont()
Gets the font used for editing.
Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row)
Configures the editor.
boolean isCellEditable(EventObject event)
If the realEditor returns true to this message, prepareForEditing is messaged and true is returned.
void removeCellEditorListener(CellEditorListener l)
Removes the previously added CellEditorListener.
void setBorderSelectionColor(Color newColor)
Sets the color to use for the border.
void setFont(Font font)
Sets the font to edit with.
boolean shouldSelectCell(EventObject event)
Messages the realEditor for the return value.
boolean stopCellEditing()
If the realEditor will allow editing to stop, the realEditor is removed and true is returned, otherwise false is returned.
void valueChanged(TreeSelectionEvent e)
Resets lastPath.
Protected Methods
boolean canEditImmediately(EventObject event)
Returns true if event is null, or it is a MouseEvent with a click count > 2 and inHitRegion returns true.
Container createContainer()
Creates the container to manage placement of editingComponent.
TreeCellEditor createTreeCellEditor()
This is invoked if a TreeCellEditor is not supplied in the constructor.
void determineOffset(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row)
boolean inHitRegion(int x, int y)
Returns true if the passed in location is a valid mouse location to start editing from.
void prepareForEditing()
Invoked just before editing is to start.
void setTree(JTree newTree)
Sets the tree currently editing for.
boolean shouldStartEditingTimer(EventObject event)
Returns true if event is a MouseEvent and the click count is 1.
void startEditingTimer()
Starts the editing timer.
[Expand]
Inherited Methods
From class java.lang.Object
From interface java.awt.event.ActionListener
From interface javax.swing.CellEditor
From interface javax.swing.event.TreeSelectionListener
From interface javax.swing.tree.TreeCellEditor

Fields

protected Color borderSelectionColor

True if the border selection color should be drawn.

protected boolean canEdit

As of Java 2 platform v1.4 this field should no longer be used. If you wish to provide similar behavior you should directly override isCellEditable.

protected Component editingComponent

Component used in editing, obtained from the editingContainer.

protected Container editingContainer

Editing container, will contain the editorComponent.

protected Icon editingIcon

Icon to use when editing.

protected Font font

Font to paint with, null indicates font of renderer is to be used.

protected TreePath lastPath

Last path that was selected.

protected int lastRow

Row that was last passed into getTreeCellEditorComponent.

protected int offset

Used in editing. Indicates x position to place editingComponent.

protected TreeCellEditor realEditor

Editor handling the editing.

protected DefaultTreeCellRenderer renderer

Renderer, used to get border and offsets from.

protected Timer timer

Used before starting the editing session.

protected JTree tree

JTree instance listening too.

Public Constructors

public DefaultTreeCellEditor (JTree tree, DefaultTreeCellRenderer renderer)

Constructs a DefaultTreeCellEditor object for a JTree using the specified renderer and a default editor. (Use this constructor for normal editing.)

Parameters
tree a JTree object
renderer a DefaultTreeCellRenderer object

public DefaultTreeCellEditor (JTree tree, DefaultTreeCellRenderer renderer, TreeCellEditor editor)

Constructs a DefaultTreeCellEditor object for a JTree using the specified renderer and the specified editor. (Use this constructor for specialized editing.)

Parameters
tree a JTree object
renderer a DefaultTreeCellRenderer object
editor a TreeCellEditor object

Public Methods

public void actionPerformed (ActionEvent e)

Messaged when the timer fires, this will start the editing session.

public void addCellEditorListener (CellEditorListener l)

Adds the CellEditorListener.

Parameters
l the listener to be added

public void cancelCellEditing ()

Messages cancelCellEditing to the realEditor and removes it from this instance.

public Color getBorderSelectionColor ()

Returns the color the border is drawn.

Returns
  • the border selection color

public CellEditorListener[] getCellEditorListeners ()

Returns an array of all the CellEditorListeners added to this DefaultTreeCellEditor with addCellEditorListener().

Returns
  • all of the CellEditorListeners added or an empty array if no listeners have been added

public Object getCellEditorValue ()

Returns the value currently being edited.

Returns
  • the value currently being edited

public Font getFont ()

Gets the font used for editing.

Returns
  • the editing Font
See Also

public Component getTreeCellEditorComponent (JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row)

Configures the editor. Passed onto the realEditor.

Parameters
tree the JTree that is asking the editor to edit; this parameter can be null
value the value of the cell to be edited
isSelected true if the cell is to be rendered with selection highlighting
expanded true if the node is expanded
leaf true if the node is a leaf node
row the row index of the node being edited
Returns
  • the component for editing

public boolean isCellEditable (EventObject event)

If the realEditor returns true to this message, prepareForEditing is messaged and true is returned.

Parameters
event the event the editor should use to consider whether to begin editing or not
Returns
  • true if editing can be started

public void removeCellEditorListener (CellEditorListener l)

Removes the previously added CellEditorListener.

Parameters
l the listener to be removed

public void setBorderSelectionColor (Color newColor)

Sets the color to use for the border.

Parameters
newColor the new border color

public void setFont (Font font)

Sets the font to edit with. null indicates the renderers font should be used. This will NOT override any font you have set in the editor the receiver was instantied with. If null for an editor was passed in a default editor will be created that will pick up this font.

Parameters
font the editing Font
See Also

public boolean shouldSelectCell (EventObject event)

Messages the realEditor for the return value.

Parameters
event the event the editor should use to start editing
Returns
  • true if the editor would like the editing cell to be selected; otherwise returns false

public boolean stopCellEditing ()

If the realEditor will allow editing to stop, the realEditor is removed and true is returned, otherwise false is returned.

Returns
  • true if editing was stopped; false otherwise

public void valueChanged (TreeSelectionEvent e)

Resets lastPath.

Parameters
e the event that characterizes the change.

Protected Methods

protected boolean canEditImmediately (EventObject event)

Returns true if event is null, or it is a MouseEvent with a click count > 2 and inHitRegion returns true.

Parameters
event the event being studied

protected Container createContainer ()

Creates the container to manage placement of editingComponent.

protected TreeCellEditor createTreeCellEditor ()

This is invoked if a TreeCellEditor is not supplied in the constructor. It returns a TextField editor.

Returns
  • a new TextField editor

protected void determineOffset (JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row)

protected boolean inHitRegion (int x, int y)

Returns true if the passed in location is a valid mouse location to start editing from. This is implemented to return false if x is <= the width of the icon and icon gap displayed by the renderer. In other words this returns true if the user clicks over the text part displayed by the renderer, and false otherwise.

Parameters
x the x-coordinate of the point
y the y-coordinate of the point
Returns
  • true if the passed in location is a valid mouse location

protected void prepareForEditing ()

Invoked just before editing is to start. Will add the editingComponent to the editingContainer.

protected void setTree (JTree newTree)

Sets the tree currently editing for. This is needed to add a selection listener.

Parameters
newTree the new tree to be edited

protected boolean shouldStartEditingTimer (EventObject event)

Returns true if event is a MouseEvent and the click count is 1.

Parameters
event the event being studied

protected void startEditingTimer ()

Starts the editing timer.