Class JXTreeTable.TreeTableModelAdapter

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private javax.swing.JTree tree  
      private javax.swing.event.TreeModelListener treeModelListener  
      private JXTreeTable treeTable  
      • Fields inherited from class javax.swing.table.AbstractTableModel

        listenerList
    • 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • treeModelListener

        private javax.swing.event.TreeModelListener treeModelListener
      • tree

        private final javax.swing.JTree tree
    • 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.
      • 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.
      • getColumnClass

        public java.lang.Class<?> getColumnClass​(int column)
        Specified by:
        getColumnClass in interface javax.swing.table.TableModel
        Overrides:
        getColumnClass in class javax.swing.table.AbstractTableModel
      • getColumnCount

        public int getColumnCount()
        Specified by:
        getColumnCount in interface javax.swing.table.TableModel
      • getColumnName

        public java.lang.String getColumnName​(int column)
        Specified by:
        getColumnName in interface javax.swing.table.TableModel
        Overrides:
        getColumnName in class javax.swing.table.AbstractTableModel
      • getRowCount

        public int getRowCount()
        Specified by:
        getRowCount in interface javax.swing.table.TableModel
      • getValueAt

        public java.lang.Object getValueAt​(int row,
                                           int column)
        Specified by:
        getValueAt in interface javax.swing.table.TableModel
      • isCellEditable

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

        public void setValueAt​(java.lang.Object value,
                               int row,
                               int column)
        Specified by:
        setValueAt in interface javax.swing.table.TableModel
        Overrides:
        setValueAt in class javax.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 -