- 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 class
TreeTableSorter.ExampleApplet
An 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 void
fireTreeNodesChanged(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
protected void
fireTreeNodesInserted(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
protected void
fireTreeNodesRemoved(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
protected void
fireTreeStructureChanged(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
Object
getChild(Object pParent, int pIdx)
int
getChildCount(Object pParent)
Class<?>
getColumnClass(int pCol)
Returns the type for column numbercolumn
.int
getColumnCount()
Returns the number of available columns.String
getColumnName(int pCol)
Returns the name for column numbercolumn
.protected Comparator
getComparator(int pCol)
org.apache.commons.collections4.BidiMap<Integer,Integer>
getOldToNewIndexMap(Object pNode)
Map from underlying model index to view index.Object
getRoot()
Map<Integer,Boolean>
getSortDirectives()
Map from column index to sort directive.Object
getValueAt(Object pNode, int pCol)
Returns the value to be displayed for nodenode
, at column numbercolumn
.boolean
isCellEditable(Object pNode, int pCol)
By default, make the column with the Tree in it the only editable one.static void
main(String[] pArgs)
Opens a window with sample tree and rearrangement buttons.void
setColumnComparator(Class<?> pType, Comparator<?> pComparator)
void
setTableHeader(JTableHeader pTableHeader)
void
setValueAt(Object pVal, Object pNode, int pCol)
Sets the value for nodenode
, at column numbercolumn
.int
viewIndex(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:
getRoot
in interfaceTreeModel
- Overrides:
getRoot
in classAbstractTreeTableModel
-
getColumnClass
public Class<?> getColumnClass(int pCol)
Description copied from interface:TreeTableModel
Returns the type for column numbercolumn
.- Specified by:
getColumnClass
in interfaceTreeTableModel
- Overrides:
getColumnClass
in classAbstractTreeTableModel
-
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 numbercolumn
.
-
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 nodenode
, at column numbercolumn
.
-
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 interfaceTreeTableModel
- Overrides:
isCellEditable
in classAbstractTreeTableModel
-
setValueAt
public void setValueAt(Object pVal, Object pNode, int pCol)
Description copied from interface:TreeTableModel
Sets the value for nodenode
, at column numbercolumn
.- Specified by:
setValueAt
in interfaceTreeTableModel
- Overrides:
setValueAt
in 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:
fireTreeNodesChanged
in classAbstractTreeTableModel
-
fireTreeNodesInserted
protected void fireTreeNodesInserted(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
- Overrides:
fireTreeNodesInserted
in classAbstractTreeTableModel
-
fireTreeNodesRemoved
protected void fireTreeNodesRemoved(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
- Overrides:
fireTreeNodesRemoved
in classAbstractTreeTableModel
-
fireTreeStructureChanged
protected void fireTreeStructureChanged(Object pSrc, Object[] pPath, int[] pChildIndices, Object[] pChildren)
- Overrides:
fireTreeStructureChanged
in 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.
-
-