- 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:
JTreeTable,ResultSet
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTreeTableSorter.ExampleAppletAn applet that demonstrates how to use rearrangeable models.
-
Field Summary
-
Fields inherited from class com.iamsoft.util.ui.swing.AbstractTreeTableModel
listenerList, root
-
-
Constructor Summary
Constructors Constructor Description TreeTableSorter(TreeTableModel pModel)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidfireTreeNodesChanged(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)protected voidfireTreeNodesInserted(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)protected voidfireTreeNodesRemoved(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)protected voidfireTreeStructureChanged(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)ObjectgetChild(Object pParent, int pIdx)intgetChildCount(Object pParent)Class<?>getColumnClass(int pCol)Returns the type for column numbercolumn.intgetColumnCount()Returns the number of available columns.StringgetColumnName(int pCol)Returns the name for column numbercolumn.protected ComparatorgetComparator(int pCol)org.apache.commons.collections4.BidiMap<Integer,Integer>getOldToNewIndexMap(Object pNode)Map from underlying model index to view index.ObjectgetRoot()Map<Integer,Boolean>getSortDirectives()Map from column index to sort directive.ObjectgetValueAt(Object pNode, int pCol)Returns the value to be displayed for nodenode, at column numbercolumn.booleanisCellEditable(Object pNode, int pCol)By default, make the column with the Tree in it the only editable one.static voidmain(String[] pArgs)Opens a window with sample tree and rearrangement buttons.voidsetColumnComparator(Class<?> pType, Comparator<?> pComparator)voidsetTableHeader(JTableHeader pTableHeader)voidsetValueAt(Object pVal, Object pNode, int pCol)Sets the value for nodenode, at column numbercolumn.intviewIndex(Object pParent, int pModelIdx)Get index from underlying model.-
Methods inherited from class com.iamsoft.util.ui.swing.AbstractTreeTableModel
addTreeModelListener, getIndexOfChild, isLeaf, removeTreeModelListener, valueForPathChanged
-
-
-
-
Constructor Detail
-
TreeTableSorter
public TreeTableSorter(TreeTableModel pModel)
-
-
Method Detail
-
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:
getRootin interfaceTreeModel- Overrides:
getRootin classAbstractTreeTableModel
-
getColumnClass
public Class<?> getColumnClass(int pCol)
Description copied from interface:TreeTableModelReturns the type for column numbercolumn.- Specified by:
getColumnClassin interfaceTreeTableModel- Overrides:
getColumnClassin classAbstractTreeTableModel
-
getColumnCount
public int getColumnCount()
Description copied from interface:TreeTableModelReturns the number of available columns.
-
getColumnName
public String getColumnName(int pCol)
Description copied from interface:TreeTableModelReturns the name for column numbercolumn.
-
getChildCount
public int getChildCount(Object pParent)
-
getValueAt
public Object getValueAt(Object pNode, int pCol)
Description copied from interface:TreeTableModelReturns the value to be displayed for nodenode, at column numbercolumn.
-
isCellEditable
public boolean isCellEditable(Object pNode, int pCol)
Description copied from class:AbstractTreeTableModelBy 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:
isCellEditablein interfaceTreeTableModel- Overrides:
isCellEditablein classAbstractTreeTableModel
-
setValueAt
public void setValueAt(Object pVal, Object pNode, int pCol)
Description copied from interface:TreeTableModelSets the value for nodenode, at column numbercolumn.- Specified by:
setValueAtin interfaceTreeTableModel- Overrides:
setValueAtin classAbstractTreeTableModel
-
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:
fireTreeNodesChangedin classAbstractTreeTableModel
-
fireTreeNodesInserted
protected void fireTreeNodesInserted(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
- Overrides:
fireTreeNodesInsertedin classAbstractTreeTableModel
-
fireTreeNodesRemoved
protected void fireTreeNodesRemoved(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
- Overrides:
fireTreeNodesRemovedin classAbstractTreeTableModel
-
fireTreeStructureChanged
protected void fireTreeStructureChanged(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
- Overrides:
fireTreeStructureChangedin classAbstractTreeTableModel
-
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.
-
-