com.ca.directory.jxplorer.tree
Class SmartTreeCellEditor

java.lang.Object
  |
  +--javax.swing.tree.DefaultTreeCellEditor
        |
        +--com.ca.directory.jxplorer.tree.SmartTreeCellEditor
All Implemented Interfaces:
java.awt.event.ActionListener, javax.swing.CellEditor, java.util.EventListener, javax.swing.tree.TreeCellEditor, javax.swing.event.TreeSelectionListener

public class SmartTreeCellEditor
extends javax.swing.tree.DefaultTreeCellEditor

This class provides a (potentially) multi-field editor for editing multi-valued RDNs, and provides a number of sub-classes to allow it to be integrated into the JTree class.


Nested Class Summary
 class SmartTreeCellEditor.MyTreeCellEditor
          A custom CellEditor that extends DefaultCellEditor, and changes the internal editor delegate used to be the CellEditorGUI defined above.
 
Nested classes inherited from class javax.swing.tree.DefaultTreeCellEditor
javax.swing.tree.DefaultTreeCellEditor.DefaultTextField, javax.swing.tree.DefaultTreeCellEditor.EditorContainer
 
Field Summary
 
Fields inherited from class javax.swing.tree.DefaultTreeCellEditor
borderSelectionColor, canEdit, editingComponent, editingContainer, editingIcon, font, lastPath, lastRow, offset, realEditor, renderer, timer, tree
 
Constructor Summary
SmartTreeCellEditor(javax.swing.JTree tree, javax.swing.tree.DefaultTreeCellRenderer renderer)
          Default constructor.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Quick hack to disable editing during drag and drop operations.
protected  javax.swing.tree.TreeCellEditor createTreeCellEditor()
          overload the standard DefaultTreeCellEditor method that creates the 'inner' editor used to display data.
protected  void determineOffset(javax.swing.JTree tree, java.lang.Object value, boolean isSelected, boolean expanded, boolean leaf, int row)
          Hacked to use SmartNode icon, so we don't see the icon changing during editing.
 java.lang.Object getCellEditorValue()
          Returns the value of the tree entry currently being edited.
 boolean isCellEditable(java.util.EventObject event)
          Extend the base method to nobble editing of 'structural' nodes.
 
Methods inherited from class javax.swing.tree.DefaultTreeCellEditor
addCellEditorListener, cancelCellEditing, canEditImmediately, createContainer, getBorderSelectionColor, getCellEditorListeners, getFont, getTreeCellEditorComponent, inHitRegion, prepareForEditing, removeCellEditorListener, setBorderSelectionColor, setFont, setTree, shouldSelectCell, shouldStartEditingTimer, startEditingTimer, stopCellEditing, valueChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SmartTreeCellEditor

public SmartTreeCellEditor(javax.swing.JTree tree,
                           javax.swing.tree.DefaultTreeCellRenderer renderer)
Default constructor. All the intelligence is added by overloading the methods below.

Parameters:
tree - the tree the editor will be used in.
renderer - the existing renderer, used to obtain icons from.
Method Detail

createTreeCellEditor

protected javax.swing.tree.TreeCellEditor createTreeCellEditor()
overload the standard DefaultTreeCellEditor method that creates the 'inner' editor used to display data.

Overrides:
createTreeCellEditor in class javax.swing.tree.DefaultTreeCellEditor
Returns:
a custom tree cell editor, being a 'MyTreeCellEditor' object (as defined below).

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Quick hack to disable editing during drag and drop operations.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Overrides:
actionPerformed in class javax.swing.tree.DefaultTreeCellEditor
Parameters:
e - the event to disable if dragging occuring.

determineOffset

protected void determineOffset(javax.swing.JTree tree,
                               java.lang.Object value,
                               boolean isSelected,
                               boolean expanded,
                               boolean leaf,
                               int row)
Hacked to use SmartNode icon, so we don't see the icon changing during editing.

Overrides:
determineOffset in class javax.swing.tree.DefaultTreeCellEditor

getCellEditorValue

public java.lang.Object getCellEditorValue()
Returns the value of the tree entry currently being edited.

Specified by:
getCellEditorValue in interface javax.swing.CellEditor
Overrides:
getCellEditorValue in class javax.swing.tree.DefaultTreeCellEditor
Returns:

isCellEditable

public boolean isCellEditable(java.util.EventObject event)
Extend the base method to nobble editing of 'structural' nodes.

Specified by:
isCellEditable in interface javax.swing.CellEditor
Overrides:
isCellEditable in class javax.swing.tree.DefaultTreeCellEditor