public class SortableTreeTableModel extends DefaultTreeTableModel implements TreeExpansionListener
It controls the sorting of the children of each node.
Note that this does not support sorting the underlying table, as that is
meaningless for a TreeTable.
All nodes wiil have their immediate children sorted seperately, and the
process will continue down through each generation, starting from the
specified node.
If any of the sort options are set or changed, sorting will start from the
root node. If a node has a child added or removed, sorting will start from
that node. The sorts may also be called manually, e.g if sort parameters are
loaded before the model is attached to the TreeTable
This class does not handle changes to the values of fields being sorted. This must be done manually by calling sort.
sort(TreeTableNode)
,
sort()
Modifier and Type | Field and Description |
---|---|
private int |
columnIndex |
private List<TreePath> |
expanded |
(package private) boolean |
expanding |
private JTableHeader |
header |
private String |
sortColumn |
private SortOrder |
sortOrder |
private SortableTreeTable |
treeTable |
columnIdentifiers
modelSupport, root
Constructor and Description |
---|
SortableTreeTableModel() |
SortableTreeTableModel(TreeTableNode root) |
SortableTreeTableModel(TreeTableNode root,
List<?> columnNames) |
Modifier and Type | Method and Description |
---|---|
private void |
doFullSort(boolean reset) |
private void |
doSort(TreeTableNode parent,
boolean reset) |
int |
getSortColumnIndex() |
SortOrder |
getSortOrder() |
void |
insertNodeInto(MutableTreeTableNode newChild,
MutableTreeTableNode parent) |
void |
insertNodeInto(MutableTreeTableNode newChild,
MutableTreeTableNode parent,
int index)
Invoked this to insert newChild at location index in parents children.
|
private void |
reExpand() |
void |
removeNodeFromParent(MutableTreeTableNode node)
Message this to remove node from its parent.
|
private void |
reset() |
private void |
setKeys(String column,
SortOrder order) |
void |
setRoot(TreeTableNode root)
Sets the root for this table model.
|
void |
setSortable(MutableTreeTableNode node,
boolean sortable) |
void |
setSortColumn(int column)
Set column to sort by column index.
|
void |
setSortColumn(String column)
Set name of column to sort.
|
void |
setSortOptions(String column,
SortOrder order)
Set sort options.
|
void |
setSortOrder(SortOrder order)
Set Sort Order.
|
(package private) void |
setTreeTable(SortableTreeTable treeTable)
this is a hack to enable expanded nodes to be re-expanded after
structure change.
|
void |
sort()
Sorts complete TreeTable.
|
void |
sort(TreeTableNode parent)
Sorts children of node, and all their children.
|
void |
toggleSortOrder()
Toggle sort order.
|
void |
treeCollapsed(TreeExpansionEvent arg0) |
void |
treeExpanded(TreeExpansionEvent arg0) |
getChild, getChildCount, getColumnCount, getColumnName, getIndexOfChild, getPathToRoot, getRoot, getValueAt, isCellEditable, isLeaf, setColumnIdentifiers, setUserObject, setValueAt, valueForPathChanged
addTreeModelListener, getColumnClass, getHierarchicalColumn, getTreeModelListeners, removeTreeModelListener
private String sortColumn
private int columnIndex
private SortableTreeTable treeTable
private JTableHeader header
boolean expanding
public SortableTreeTableModel()
public SortableTreeTableModel(TreeTableNode root)
public SortableTreeTableModel(TreeTableNode root, List<?> columnNames)
public void setSortColumn(String column)
column
- - name of column to sort onpublic void setSortColumn(int column)
column
- - index of column name in columnNames Listpublic void setSortOrder(SortOrder order)
order
- public void toggleSortOrder()
public void setSortOptions(String column, SortOrder order)
column
- - name of column to sort. Must be a column in column names
list.order
- - see Swingx org.jdesktop.swingx.decorator.SortOrderpublic void sort()
public void sort(TreeTableNode parent)
parent
- - first node to be sorted.public int getSortColumnIndex()
public SortOrder getSortOrder()
public void insertNodeInto(MutableTreeTableNode newChild, MutableTreeTableNode parent)
public void setSortable(MutableTreeTableNode node, boolean sortable)
public void insertNodeInto(MutableTreeTableNode newChild, MutableTreeTableNode parent, int index)
DefaultTreeTableModel
insertNodeInto
in class DefaultTreeTableModel
public void removeNodeFromParent(MutableTreeTableNode node)
DefaultTreeTableModel
removeNodeFromParent
in class DefaultTreeTableModel
public void setRoot(TreeTableNode root)
DefaultTreeTableModel
root
as
an examplar of the table.setRoot
in class DefaultTreeTableModel
root
- the node to set as rootvoid setTreeTable(SortableTreeTable treeTable)
It means model can only be used in one treetable.
private void reset()
private void doFullSort(boolean reset)
private void doSort(TreeTableNode parent, boolean reset)
private void reExpand()
public void treeCollapsed(TreeExpansionEvent arg0)
treeCollapsed
in interface TreeExpansionListener
public void treeExpanded(TreeExpansionEvent arg0)
treeExpanded
in interface TreeExpansionListener
WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses