org.jdesktop.swingx
Class JXTree.TreeAdapter

java.lang.Object
  extended by org.jdesktop.swingx.decorator.ComponentAdapter
      extended by org.jdesktop.swingx.JXTree.TreeAdapter
Enclosing class:
JXTree

protected static class JXTree.TreeAdapter
extends ComponentAdapter


Field Summary
 
Fields inherited from class org.jdesktop.swingx.decorator.ComponentAdapter
column, DEFAULT_COLUMN_IDENTIFIER, row, target
 
Constructor Summary
JXTree.TreeAdapter(JXTree component)
          Constructs a TableCellRenderContext for the specified target component.
 
Method Summary
 int getDepth()
          Returns the depth of this row in the hierarchy where the root is 0.
 String getFilteredStringAt(int row, int column)
          Returns the String representation of the filtered value of the cell identified by the row in view coordinate and the column in model coordinates.
 Object getFilteredValueAt(int row, int column)
          Returns the filtered value of the cell identified by the row in view coordinate and the column in model coordinates.
 String getString()
          Returns the String representation of the value of the cell identified by this adapter.
 String getStringAt(int row, int column)
          Returns the String representation of the value of the cell identified by the row specified row and column in model coordinates.
 JXTree getTree()
           
 Object getValue()
          Returns the value of the cell identified by this adapter.
 Object getValueAt(int row, int column)
          Returns the value of the target component's cell identified by the specified row and column in model coordinates.
 boolean hasFocus()
          Returns true if the cell identified by this adapter currently has focus.
 boolean isCellEditable(int row, int column)
          Determines whether this cell is editable.
 boolean isEditable()
          Returns true if the cell identified by this adapter is editable, false otherwise.
 boolean isExpanded()
          Returns true if the cell identified by this adapter is currently expanded.
 boolean isHierarchical()
          Returns true if the cell identified by this adapter displays the hierarchical node.
 boolean isLeaf()
          Returns true if the cell identified by this adapter is a leaf node.
 boolean isSelected()
          Returns true if the cell identified by this adapter is currently selected.
 void setValueAt(Object aValue, int row, int column)
          Sets the value of the target component's cell identified by the specified row and column in model coordinates.
 
Methods inherited from class org.jdesktop.swingx.decorator.ComponentAdapter
getColumnCount, getColumnIdentifierAt, getColumnIndex, getColumnName, getComponent, getRowCount, getString, getValue, isTestable, modelToView, refresh, viewToModel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JXTree.TreeAdapter

public JXTree.TreeAdapter(JXTree component)
Constructs a TableCellRenderContext for the specified target component.

Parameters:
component - the target component
Method Detail

getTree

public JXTree getTree()

hasFocus

public boolean hasFocus()
Returns true if the cell identified by this adapter currently has focus. Otherwise, it returns false.

Specified by:
hasFocus in class ComponentAdapter
Returns:
true if the cell identified by this adapter currently has focus; Otherwise, return false

getValueAt

public Object getValueAt(int row,
                         int column)
Returns the value of the target component's cell identified by the specified row and column in model coordinates.

Specified by:
getValueAt in class ComponentAdapter
Parameters:
row - in model coordinates
column - in model coordinates
Returns:
the value of the target component's cell identified by the specified row and column

getFilteredValueAt

public Object getFilteredValueAt(int row,
                                 int column)
Returns the filtered value of the cell identified by the row in view coordinate and the column in model coordinates. Note: the asymetry of the coordinates is intentional - clients like Highlighters are interested in view values but might need to access non-visible columns for testing. While it is possible to access row coordinates different from the current (that is this.row) it is not safe to do so for row > this.row because the adapter doesn't allow to query the count of visible rows.

JXTree doesn't support filtering/sorting. This implies that model and view coordinates are the same. So this method is implemented to call getValueAt(row, column).

Specified by:
getFilteredValueAt in class ComponentAdapter
Parameters:
row - the row of the cell in view coordinates
column - the column of the cell in model coordinates.
Returns:
the filtered value of the cell identified by the row in view coordinate and the column in model coordiantes

getValue

public Object getValue()
Returns the value of the cell identified by this adapter. That is, for the at position (adapter.row, adapter.column) in view coordinates.

NOTE: this implementation assumes that view coordinates == model coordinates, that is simply calls getValueAt(this.row, this.column). It is up to subclasses to override appropriately is they support model/view coordinate transformation.

JXTree doesn't support filtering/sorting. This implies that model and view coordinates are the same. So this method is implemented to call getValueAt(row, column).

Overrides:
getValue in class ComponentAdapter
Returns:
the value of the cell identified by this adapter
See Also:
ComponentAdapter.getValueAt(int, int), ComponentAdapter.getFilteredValueAt(int, int), ComponentAdapter.getValue(int)

getFilteredStringAt

public String getFilteredStringAt(int row,
                                  int column)
Returns the String representation of the filtered value of the cell identified by the row in view coordinate and the column in model coordinates.

Note: the asymetry of the coordinates is intentional - clients like Highlighters are interested in view values but might need to access non-visible columns for testing. While it is possible to access row coordinates different from the current (that is this.row) it is not safe to do so for row > this.row because the adapter doesn't allow to query the count of visible rows.

This implementation messages the StringValue.TO_STRING with the filteredValue, subclasses should re-implement and use the api appropriate for the target component type.

PENDING JW: what about null cell values? StringValue has a contract to return a empty string then, would that be okay here as well?

Overrides:
getFilteredStringAt in class ComponentAdapter
Parameters:
row - the row of the cell in view coordinates
column - the column of the cell in model coordinates.
Returns:
the String representation of the filtered value of the cell identified by the row in view coordinate and the column in model coordiantes

getString

public String getString()
Returns the String representation of the value of the cell identified by this adapter. That is, for the at position (adapter.row, adapter.column) in view coordinates.

NOTE: this implementation assumes that view coordinates == model coordinates, that is simply calls getValueAt(this.row, this.column). It is up to subclasses to override appropriately is they support model/view coordinate transformation.

This implementation messages the StringValue.TO_STRING with the getValue, subclasses should re-implement and use the api appropriate for the target component type.

Overrides:
getString in class ComponentAdapter
Returns:
the String representation of value of the cell identified by this adapter
See Also:
ComponentAdapter.getValueAt(int, int), ComponentAdapter.getFilteredValueAt(int, int), ComponentAdapter.getValue(int)

getStringAt

public String getStringAt(int row,
                          int column)
Returns the String representation of the value of the cell identified by the row specified row and column in model coordinates.

This implementation messages the StringValue.TO_STRING with the valueAt, subclasses should re-implement and use the api appropriate for the target component type.

Overrides:
getStringAt in class ComponentAdapter
Parameters:
row - in model coordinates
column - in model coordinates
Returns:
the value of the target component's cell identified by the specified row and column

isEditable

public boolean isEditable()
Returns true if the cell identified by this adapter is editable, false otherwise.

Specified by:
isEditable in class ComponentAdapter
Returns:
true if the cell is editable, false otherwise

isSelected

public boolean isSelected()
Returns true if the cell identified by this adapter is currently selected. Otherwise, it returns false.

Specified by:
isSelected in class ComponentAdapter
Returns:
true if the cell identified by this adapter is currently selected; Otherwise, return false

isExpanded

public boolean isExpanded()
Returns true if the cell identified by this adapter is currently expanded. Otherwise, it returns false. For components that do not support hierarchical data, this method always returns true because the cells in such components can never be collapsed.

Overrides:
isExpanded in class ComponentAdapter
Returns:
true if the cell identified by this adapter is currently expanded; Otherwise, return false

getDepth

public int getDepth()
Returns the depth of this row in the hierarchy where the root is 0. For components that do not contain hierarchical data, this method returns 1.

Overrides:
getDepth in class ComponentAdapter
Returns:
the depth for this adapter

isHierarchical

public boolean isHierarchical()
Returns true if the cell identified by this adapter displays the hierarchical node. Otherwise, it returns false. For components that do not support hierarchical data, this method always returns false because the cells in such components can never have children.

Overrides:
isHierarchical in class ComponentAdapter
Returns:
true if the cell identified by this adapter displays the hierarchical node; Otherwise, return false

isLeaf

public boolean isLeaf()
Returns true if the cell identified by this adapter is a leaf node. Otherwise, it returns false. For components that do not support hierarchical data, this method always returns true because the cells in such components can never have children.

Overrides:
isLeaf in class ComponentAdapter
Returns:
true if the cell identified by this adapter is a leaf node; Otherwise, return false

isCellEditable

public boolean isCellEditable(int row,
                              int column)
Determines whether this cell is editable.

Specified by:
isCellEditable in class ComponentAdapter
Parameters:
row - the row to query in model coordinates
column - the column to query in model coordinates
Returns:
true if the cell is editable, false otherwise

setValueAt

public void setValueAt(Object aValue,
                       int row,
                       int column)
Sets the value of the target component's cell identified by the specified row and column in model coordinates.

Specified by:
setValueAt in class ComponentAdapter
Parameters:
aValue - the value to set
row - in model coordinates
column - in model coordinates