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.JTreetreeprivate javax.swing.event.TreeModelListenertreeModelListenerprivate JXTreeTabletreeTable
-
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 voidbind(JXTreeTable treeTable)Immutably binds this TreeTableModelAdapter to the specified JXTreeTable.private voiddelayedFireTableDataChanged()Invokes fireTableDataChanged after all the pending events have been processed.private voiddelayedFireTableDataChanged(javax.swing.event.TreeModelEvent tme, int typeChange)Invokes fireTableDataChanged after all the pending events have been processed.protected voiddelayedFireTableDataUpdated(javax.swing.event.TreeModelEvent tme)This is used for updated only.private voiddelayedFireTableStructureChanged()Invokes fireTableDataChanged after all the pending events have been processed.java.lang.Class<?>getColumnClass(int column)intgetColumnCount()java.lang.StringgetColumnName(int column)intgetRowCount()private javax.swing.event.TreeModelListenergetTreeModelListener()protected JXTreeTablegetTreeTable()Returns the JXTreeTable instance to which this TreeTableModelAdapter is permanently and exclusively bound.TreeTableModelgetTreeTableModel()Returns a TreeTableModel, guaranteed to be not null.java.lang.ObjectgetValueAt(int row, int column)booleanisCellEditable(int row, int column)private booleanisTableStructureChanged(javax.swing.event.TreeModelEvent e)Decides if the given treeModel structureChanged should trigger a table structureChanged.protected java.lang.ObjectnodeForRow(int row)voidsetValueAt(java.lang.Object value, int row, int column)protected voidupdateAfterExpansionEvent(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:TreeTableModelProviderReturns a TreeTableModel, guaranteed to be not null.- Specified by:
getTreeTableModelin interfaceTreeTableModelProvider- Returns:
- a TreeTableModel, guaranteed to be not null.
-
getColumnClass
public java.lang.Class<?> getColumnClass(int column)
- Specified by:
getColumnClassin interfacejavax.swing.table.TableModel- Overrides:
getColumnClassin classjavax.swing.table.AbstractTableModel
-
getColumnCount
public int getColumnCount()
- Specified by:
getColumnCountin interfacejavax.swing.table.TableModel
-
getColumnName
public java.lang.String getColumnName(int column)
- Specified by:
getColumnNamein interfacejavax.swing.table.TableModel- Overrides:
getColumnNamein classjavax.swing.table.AbstractTableModel
-
getRowCount
public int getRowCount()
- Specified by:
getRowCountin interfacejavax.swing.table.TableModel
-
getValueAt
public java.lang.Object getValueAt(int row, int column)- Specified by:
getValueAtin interfacejavax.swing.table.TableModel
-
isCellEditable
public boolean isCellEditable(int row, int column)- Specified by:
isCellEditablein interfacejavax.swing.table.TableModel- Overrides:
isCellEditablein classjavax.swing.table.AbstractTableModel
-
setValueAt
public void setValueAt(java.lang.Object value, int row, int column)- Specified by:
setValueAtin interfacejavax.swing.table.TableModel- Overrides:
setValueAtin 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-
-
-