Class TreeTableSorter

java.lang.Object
com.iamsoft.util.ui.swing.AbstractTreeTableModel
com.iamsoft.util.ui.swing.TreeTableSorter
All Implemented Interfaces:
TreeTableModel, TreeModel

public class TreeTableSorter extends AbstractTreeTableModel
Allow users to sort TreeTables. Sibling nodes are sorted with respect to one another. Sibling nodes must always be displayed next to one another. It would be nice to allow different sorting directives based on tree depth but this is not currently possible. Requires commons-colletions.

See Also:
  • Constructor Details

  • Method Details

    • getSortDirectives

      public Map<Integer,Boolean> getSortDirectives()
      Map from column index to sort directive. Updating this map will likely cause TreeTableModel events to be fired due to resorting. If performance is a concern, it is better to call bulk modification methods ('addAll', 'clear', 'removeAll') rather than making repeated calls to 'add' and 'remove'. This map is backed by a LinkedHashMap so order is maintained during additions. null not permitted.
    • getRoot

      public Object getRoot()
      Specified by:
      getRoot in interface TreeModel
      Overrides:
      getRoot in class AbstractTreeTableModel
    • getColumnClass

      public Class<?> getColumnClass(int pCol)
      Description copied from interface: TreeTableModel
      Returns the type for column number column.
      Specified by:
      getColumnClass in interface TreeTableModel
      Overrides:
      getColumnClass in class AbstractTreeTableModel
    • getColumnCount

      public int getColumnCount()
      Description copied from interface: TreeTableModel
      Returns the number of available columns.
    • getColumnName

      public String getColumnName(int pCol)
      Description copied from interface: TreeTableModel
      Returns the name for column number column.
    • getChildCount

      public int getChildCount(Object pParent)
    • getValueAt

      public Object getValueAt(Object pNode, int pCol)
      Description copied from interface: TreeTableModel
      Returns the value to be displayed for node node, at column number column.
    • isCellEditable

      public boolean isCellEditable(Object pNode, int pCol)
      Description copied from class: AbstractTreeTableModel
      By default, make the column with the Tree in it the only editable one. Making this column editable causes the JTable to forward mouse and keyboard events in the Tree column to the underlying JTree.
      Specified by:
      isCellEditable in interface TreeTableModel
      Overrides:
      isCellEditable in class AbstractTreeTableModel
    • setValueAt

      public void setValueAt(Object pVal, Object pNode, int pCol)
      Description copied from interface: TreeTableModel
      Sets the value for node node, at column number column.
      Specified by:
      setValueAt in interface TreeTableModel
      Overrides:
      setValueAt in class AbstractTreeTableModel
    • getChild

      public Object getChild(Object pParent, int pIdx)
    • viewIndex

      public int viewIndex(Object pParent, int pModelIdx)
      Get index from underlying model.
    • fireTreeNodesChanged

      protected void fireTreeNodesChanged(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
      Overrides:
      fireTreeNodesChanged in class AbstractTreeTableModel
    • fireTreeNodesInserted

      protected void fireTreeNodesInserted(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
      Overrides:
      fireTreeNodesInserted in class AbstractTreeTableModel
    • fireTreeNodesRemoved

      protected void fireTreeNodesRemoved(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
      Overrides:
      fireTreeNodesRemoved in class AbstractTreeTableModel
    • fireTreeStructureChanged

      protected void fireTreeStructureChanged(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
      Overrides:
      fireTreeStructureChanged in class AbstractTreeTableModel
    • getOldToNewIndexMap

      public org.apache.commons.collections4.BidiMap<Integer,Integer> getOldToNewIndexMap(Object pNode)
      Map from underlying model index to view index.
    • setTableHeader

      public void setTableHeader(JTableHeader pTableHeader)
    • setColumnComparator

      public void setColumnComparator(Class<?> pType, Comparator<?> pComparator)
    • getComparator

      protected Comparator getComparator(int pCol)
    • main

      public static void main(String[] pArgs)
      Opens a window with sample tree and rearrangement buttons.