Class JXTreeTable.TreeTableModelAdapter

java.lang.Object
javax.swing.table.AbstractTableModel
org.jdesktop.swingx.JXTreeTable.TreeTableModelAdapter
All Implemented Interfaces:
Serializable, TableModel, TreeTableModelProvider
Enclosing class:
JXTreeTable

protected static class JXTreeTable.TreeTableModelAdapter extends AbstractTableModel implements TreeTableModelProvider
See Also:
  • Field Details

  • Constructor Details

    • TreeTableModelAdapter

      TreeTableModelAdapter(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:
      IllegalArgumentException - if a null tree argument is passed
  • Method Details

    • updateAfterExpansionEvent

      protected void updateAfterExpansionEvent(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 by JXTreeTable.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 interface TreeTableModelProvider
      Returns:
      a TreeTableModel, guaranteed to be not null.
    • getColumnClass

      public Class<?> getColumnClass(int column)
      Specified by:
      getColumnClass in interface TableModel
      Overrides:
      getColumnClass in class AbstractTableModel
    • getColumnCount

      public int getColumnCount()
      Specified by:
      getColumnCount in interface TableModel
    • getColumnName

      public String getColumnName(int column)
      Specified by:
      getColumnName in interface TableModel
      Overrides:
      getColumnName in class AbstractTableModel
    • getRowCount

      public int getRowCount()
      Specified by:
      getRowCount in interface TableModel
    • getValueAt

      public Object getValueAt(int row, int column)
      Specified by:
      getValueAt in interface TableModel
    • isCellEditable

      public boolean isCellEditable(int row, int column)
      Specified by:
      isCellEditable in interface TableModel
      Overrides:
      isCellEditable in class AbstractTableModel
    • setValueAt

      public void setValueAt(Object value, int row, int column)
      Specified by:
      setValueAt in interface TableModel
      Overrides:
      setValueAt in class AbstractTableModel
    • nodeForRow

      protected Object nodeForRow(int row)
    • getTreeModelListener

      private TreeModelListener getTreeModelListener()
      Returns:
      TreeModelListener
    • isTableStructureChanged

      private boolean isTableStructureChanged(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(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(TreeModelEvent tme)
      This is used for updated only. PENDING: not necessary to delay? Updates are never structural changes which are the critical.
      Parameters:
      tme -