The TreeStore is a Model used for storing data which will be displayed in any
number of
TreeView
widgets. For an overview of how the tree and list
objects fit together, see the
TreeView
description.
Data is stored within this object in
DataColumn
s. This data is
displayed in the widgets via
CellRenderer
's; the mapping between
this data and the cell renderers of each treeview column is done in the
TreeViewColumn
class.
addRow
public void addRow(DataRow aRow)
Adds a row to the tree. This method can be used to easily add data to the
tree. Each item in the DataRow must match the
DataColumn
type
specified in the constructor of TreeStore. For example, if it was passed
{new DataColumnBoolean(), new DataColumnString()}
to the
constructor, then the DataRow must contain a Boolean and a String object,
respectively.
aRow
- a row to be added to the list
addRow
public void addRow(DataRow aRow,
TreeIter aParent)
Adds a row to the tree. This method can be used to easily add data to the
tree. Each item in the DataRow must match the
DataColumn
type
specified in the constructor of TreeStore. For example, if it was passed
{new DataColumnBoolean(), new DataColumnString()}
to the
constructor, then the DataRow must contain a Boolean and a String object,
respectively.
aRow
- a row to be added to the listaParent
- a TreeIter
pointing to a parent row.
addRowAt
public void addRowAt(DataRow aRow,
int aPosition)
Adds a row to the tree, at the specified position. This method can be
used to easily add data to the tree. Each item in the DataRow must match
the
DataColumn
type specified in the constructor of TreeStore.
For example, if it was passed
{new DataColumnBoolean(), new DataColumnString()}
to the
constructor, then the DataRow must contain a Boolean and a String object,
respectively.
aRow
- a row to be added to the list
addRowAt
public void addRowAt(DataRow aRow,
TreeIter aParent,
int aPosition)
Adds a row to the tree, at the specified position. This method can be
used to easily add data to the tree. Each item in the DataRow must match
the
DataColumn
type specified in the constructor of TreeStore.
For example, if it was passed
{new DataColumnBoolean(), new DataColumnString()}
to the
constructor, then the DataRow must contain a Boolean and a String object,
respectively.
aRow
- a row to be added to the listaParent
- a TreeIter
pointing to a parent row.
appendRow
public TreeIter appendRow(TreeIter parent)
Appends a new row to tree_store. If parent is non-NULL, then it will
append the new row after the last child of parent, otherwise it will
append a row to the top level.
parent
- A valid TreeIter, or NULL
- Iterator for the new row.
clear
public void clear()
Removes all items from the treestore.
getAllDataColumns
public List getAllDataColumns()
Returns a List
with the types for every column as a
DataColumn
object.
getDataColumn
public DataColumn getDataColumn(int aCol)
Returns the type of the column aCol
as a
DataColumn
. This is similar to calling
getType(int)
; the difference is that this method returns
the type as a DataColumn, which is a more high-level structure.
- the corresponding DataColumn
getIteratorDepth
public int getIteratorDepth(TreeIter iter)
Returns the depth of the iterator. This will be 0 for anything on the
root level, 1 for anything down a level, etc.
iter
- The iterator to test the depth of
getRowAt
public DataRow getRowAt(TreeIter aIter)
Gets all the values in the row indicated by aIter
. There
are several ways you can get a TreeIter
to pass; for
example: using methods like getIter
and
getFirstIter()
, or from a TreeSelection
.
aIter
- the iter pointing to the row
- a
DataRow
filled with the values of the row.
getSortColumn
public DataColumn getSortColumn()
Get a DataColumn object representing the currently sorted column. This is
not the same DataColumn used to create the store. It is only of type
DataColumn (not DataColumnString, etc). It can be compared with another
DataColumn object using the
DataColumn.equals(DataColumn)
method.
- getSortColumn in interface TreeSortable
- A DataColumn object representing the currently sorted column or
null if there is no column currently sorted.
getSortOrder
public SortType getSortOrder()
Get the current sorting order of the store.
- getSortOrder in interface TreeSortable
- A SortType object defining the current sorting order of the store
or null if there is no current sort order.
getType
public static Type getType()
Retrieve the runtime type used by the GLib library.
handleCompareFunc
public int handleCompareFunc(Handle model,
Handle aIter,
Handle bIter,
int col)
Call-back method invoked by the JNI code when sorting is required. This
is for internal use only.
- handleCompareFunc in interface TreeSortable
insertRow
public TreeIter insertRow(TreeIter parent,
int position)
Creates a new row at position. If parent is non-NULL, then the row will
be made a child of parent. Otherwise, the row will be created at the
toplevel. If position is larger than the number of rows at that level,
then the new row will be inserted to the end of the list.
parent
- A valid TreeIter, or NULLposition
- Position to insert the new row
insertRowAfter
public TreeIter insertRowAfter(TreeIter sibling,
TreeIter parent)
Inserts a new row after sibling. If sibling is NULL, then the row will be
prepended to the beginning of the parent 's children. If parent and
sibling are NULL, then the row will be prepended to the toplevel. If both
sibling and parent are set, then parent must be the parent of sibling.
When sibling is set, parent is optional.
sibling
- A valid GtkTreeIter, or NULLparent
- A valid TreeIter, or NULL
- Iterator for the new row.
insertRowBefore
public TreeIter insertRowBefore(TreeIter sibling,
TreeIter parent)
Inserts a new row before sibling. If sibling is NULL, then the row will
be appended to parent 's children. If parent and sibling are NULL, then
the row will be appended to the toplevel. If both sibling and parent are
set, then parent must be the parent of sibling. When sibling is set,
parent is optional
sibling
- A valid TreeIter, or NULLparent
- A valid TreeIter, or NULL
- Iterator for the new row.
isAncestor
public boolean isAncestor(TreeIter iter,
TreeIter descendant)
Returns TRUE if iter is an ancestor of descendant. That is, iter is the
parent (or grandparent or great-grandparent) of descendant.
iter
- Row to be tested.descendant
- Descendant row for testing
- True of iter is an ancestor of descendant
isIterValid
public boolean isIterValid(TreeIter iter)
moveRowAfter
public void moveRowAfter(TreeIter iter,
TreeIter position)
Moves iter in this store to the position after position. iter
and position should be in the same level. Note that this
function only works with unsorted stores.
moveRowBefore
public void moveRowBefore(TreeIter iter,
TreeIter position)
Moves iter in tree_store to the position before position. iter
and position should be in the same level. Note that this
function only works with unsorted stores.
moveRowToEnd
public void moveRowToEnd(TreeIter iter)
Moves iter to the end of the model
moveRowToStart
public void moveRowToStart(TreeIter iter)
Moves iter in this store to the start of the store.
prependRow
public TreeIter prependRow(TreeIter parent)
Prepends a new row to the store. If parent is non-NULL, then it will
prepend the new row before the first child of parent, otherwise it will
prepend a row to the top level.
parent
- A valid TreeIter, or NULL
- Iterator for the new row.
removeRow
public void removeRow(TreeIter iter)
Removes a row from the tree store. After being removed, iter is set to
the next valid row at that level, or invalidated if it previously pointed
to the last one.
iter
- TreeIter representing the row.
reorder
public void reorder(TreeIter iter,
int[] newOrder)
setColumnTypes
public void setColumnTypes(DataColumn[] dataColumns)
setRowAt
public void setRowAt(DataRow aRow,
TreeIter aIter)
Sets all columns pointed by aIter
to the values stored in
aRow
.
aRow
- a row with itemsaIter
- a TreeIter
pointing to a row in the tree.
setValue
public void setValue(TreeIter iter,
DataColumnBoolean dataBlock,
boolean value)
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow(TreeIter)
.dataBlock
- The datablock in which the data should be stored.value
- The value to be set.
setValue
public void setValue(TreeIter iter,
DataColumnDouble dataBlock,
double value)
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow(TreeIter)
.dataBlock
- The datablock in which the data should be stored.value
- The value to be set.
setValue
public void setValue(TreeIter iter,
DataColumnIconSize dataBlock,
IconSize value)
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow(TreeIter)
.dataBlock
- The datablock in which the data should be stored.value
- The value to be set.
setValue
public void setValue(TreeIter iter,
DataColumnInt dataBlock,
int value)
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow(TreeIter)
.dataBlock
- The datablock in which the data should be stored.value
- The value to be set.
setValue
public void setValue(TreeIter iter,
DataColumnLong dataBlock,
long value)
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow(TreeIter)
.dataBlock
- The datablock in which the data should be stored.value
- The long
value to set into this row.
setValue
public void setValue(TreeIter iter,
DataColumnObject dataBlock,
Object value)
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow(TreeIter)
.dataBlock
- The data block in which to store the data, starting at 0.value
- The value to be set. This must match the type for
that dataBlock, as set in the constructor.
setValue
public void setValue(TreeIter iter,
DataColumnPixbuf dataBlock,
Pixbuf value)
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow(TreeIter)
.dataBlock
- The data block in which to store the data, starting at 0.value
- The value to be set.
setValue
public void setValue(TreeIter iter,
DataColumnStockItem dataBlock,
GtkStockItem value)
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow(TreeIter)
.dataBlock
- The datablock in which the data should be stored.value
- The value to be set.
setValue
public void setValue(TreeIter iter,
DataColumnString dataBlock,
String value)
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow(TreeIter)
.dataBlock
- The datablock in which the data should be stored.value
- The value to be set.
swapRows
public void swapRows(TreeIter a,
TreeIter b)
Swaps a and b in the same level of tree_store. Note that this function
only works with unsorted stores.