Package org.jdesktop.swingx
Class JXTreeTable.TreeTableModelAdapter
- java.lang.Object
-
- javax.swing.table.AbstractTableModel
-
- org.jdesktop.swingx.JXTreeTable.TreeTableModelAdapter
-
- All Implemented Interfaces:
java.io.Serializable
,javax.swing.table.TableModel
,TreeTableModelProvider
- Enclosing class:
- JXTreeTable
protected static class JXTreeTable.TreeTableModelAdapter extends javax.swing.table.AbstractTableModel implements TreeTableModelProvider
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private javax.swing.JTree
tree
private javax.swing.event.TreeModelListener
treeModelListener
private JXTreeTable
treeTable
-
Constructor Summary
Constructors Constructor Description TreeTableModelAdapter(javax.swing.JTree tree)
Maintains a TreeTableModel and a JTree as purely implementation details.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
bind(JXTreeTable treeTable)
Immutably binds this TreeTableModelAdapter to the specified JXTreeTable.private void
delayedFireTableDataChanged()
Invokes fireTableDataChanged after all the pending events have been processed.private void
delayedFireTableDataChanged(javax.swing.event.TreeModelEvent tme, int typeChange)
Invokes fireTableDataChanged after all the pending events have been processed.protected void
delayedFireTableDataUpdated(javax.swing.event.TreeModelEvent tme)
This is used for updated only.private void
delayedFireTableStructureChanged()
Invokes fireTableDataChanged after all the pending events have been processed.java.lang.Class<?>
getColumnClass(int column)
int
getColumnCount()
java.lang.String
getColumnName(int column)
int
getRowCount()
private javax.swing.event.TreeModelListener
getTreeModelListener()
protected JXTreeTable
getTreeTable()
Returns the JXTreeTable instance to which this TreeTableModelAdapter is permanently and exclusively bound.TreeTableModel
getTreeTableModel()
Returns a TreeTableModel, guaranteed to be not null.java.lang.Object
getValueAt(int row, int column)
boolean
isCellEditable(int row, int column)
private boolean
isTableStructureChanged(javax.swing.event.TreeModelEvent e)
Decides if the given treeModel structureChanged should trigger a table structureChanged.protected java.lang.Object
nodeForRow(int row)
void
setValueAt(java.lang.Object value, int row, int column)
protected void
updateAfterExpansionEvent(javax.swing.event.TreeExpansionEvent event)
updates the table after having received an TreeExpansionEvent.-
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, removeTableModelListener
-
-
-
-
Field Detail
-
treeModelListener
private javax.swing.event.TreeModelListener treeModelListener
-
tree
private final javax.swing.JTree tree
-
treeTable
private JXTreeTable treeTable
-
-
Constructor Detail
-
TreeTableModelAdapter
TreeTableModelAdapter(javax.swing.JTree tree)
Maintains a TreeTableModel and a JTree as purely implementation details. Developers can plug in any type of custom TreeTableModel through a JXTreeTable constructor or through setTreeTableModel().- Parameters:
tree
- TreeTableCellRenderer instantiated with the same model as the driving JXTreeTable's TreeTableModel.- Throws:
java.lang.IllegalArgumentException
- if a null tree argument is passed
-
-
Method Detail
-
updateAfterExpansionEvent
protected void updateAfterExpansionEvent(javax.swing.event.TreeExpansionEvent event)
updates the table after having received an TreeExpansionEvent.- Parameters:
event
- the TreeExpansionEvent which triggered the method call.
-
getTreeTable
protected JXTreeTable getTreeTable()
Returns the JXTreeTable instance to which this TreeTableModelAdapter is permanently and exclusively bound. For use byJXTreeTable.setModel(javax.swing.table.TableModel)
.- Returns:
- JXTreeTable to which this TreeTableModelAdapter is permanently bound
-
bind
protected final void bind(JXTreeTable treeTable)
Immutably binds this TreeTableModelAdapter to the specified JXTreeTable.- Parameters:
treeTable
- the JXTreeTable instance that this adapter is bound to.
-
getTreeTableModel
public TreeTableModel getTreeTableModel()
Description copied from interface:TreeTableModelProvider
Returns a TreeTableModel, guaranteed to be not null.- Specified by:
getTreeTableModel
in interfaceTreeTableModelProvider
- Returns:
- a TreeTableModel, guaranteed to be not null.
-
getColumnClass
public java.lang.Class<?> getColumnClass(int column)
- Specified by:
getColumnClass
in interfacejavax.swing.table.TableModel
- Overrides:
getColumnClass
in classjavax.swing.table.AbstractTableModel
-
getColumnCount
public int getColumnCount()
- Specified by:
getColumnCount
in interfacejavax.swing.table.TableModel
-
getColumnName
public java.lang.String getColumnName(int column)
- Specified by:
getColumnName
in interfacejavax.swing.table.TableModel
- Overrides:
getColumnName
in classjavax.swing.table.AbstractTableModel
-
getRowCount
public int getRowCount()
- Specified by:
getRowCount
in interfacejavax.swing.table.TableModel
-
getValueAt
public java.lang.Object getValueAt(int row, int column)
- Specified by:
getValueAt
in interfacejavax.swing.table.TableModel
-
isCellEditable
public boolean isCellEditable(int row, int column)
- Specified by:
isCellEditable
in interfacejavax.swing.table.TableModel
- Overrides:
isCellEditable
in classjavax.swing.table.AbstractTableModel
-
setValueAt
public void setValueAt(java.lang.Object value, int row, int column)
- Specified by:
setValueAt
in interfacejavax.swing.table.TableModel
- Overrides:
setValueAt
in classjavax.swing.table.AbstractTableModel
-
nodeForRow
protected java.lang.Object nodeForRow(int row)
-
getTreeModelListener
private javax.swing.event.TreeModelListener getTreeModelListener()
- Returns:
TreeModelListener
-
isTableStructureChanged
private boolean isTableStructureChanged(javax.swing.event.TreeModelEvent e)
Decides if the given treeModel structureChanged should trigger a table structureChanged. Returns true if the source path is the root or null, false otherwise.PENDING: need to refine? "Marker" in Event-Object?
- Parameters:
e
- the TreeModelEvent received in the treeModelListener's treeStructureChanged- Returns:
- a boolean indicating whether the given TreeModelEvent should trigger a structureChanged.
-
delayedFireTableStructureChanged
private void delayedFireTableStructureChanged()
Invokes fireTableDataChanged after all the pending events have been processed. SwingUtilities.invokeLater is used to handle this.
-
delayedFireTableDataChanged
private void delayedFireTableDataChanged()
Invokes fireTableDataChanged after all the pending events have been processed. SwingUtilities.invokeLater is used to handle this.
-
delayedFireTableDataChanged
private void delayedFireTableDataChanged(javax.swing.event.TreeModelEvent tme, int typeChange)
Invokes fireTableDataChanged after all the pending events have been processed. SwingUtilities.invokeLater is used to handle this. Allowed event types: 1 for insert, 2 for delete
-
delayedFireTableDataUpdated
protected void delayedFireTableDataUpdated(javax.swing.event.TreeModelEvent tme)
This is used for updated only. PENDING: not necessary to delay? Updates are never structural changes which are the critical.- Parameters:
tme
-
-
-