The ListStore is the gtk Model used for constructing Lists and tables to be
displayed within
TreeView
widgets. For full details of what objects
are needed to construct lists and tables, please see the
TreeView
description.
The list store has a number of
DataColumn
s, or data 'columns'
associated with it. These do
not correspond to the organisation of
the output into columns. The data store can in fact be used with any number
of treeView widgets, each displaying a different part of the data. In these
Java bindings, we will try to use the term dataBlock for the data in the
ListStore and Column to refer to the columns to be displayed. The data to be
displayed is set in the
TreeViewColumn
objects, by associating
properties of
CellRenderer
's with the data block used in this
object.
addRow
public void addRow(DataRow aRow)
Adds a row to the list. This method can be used to easily add data to the
list. Each item in the DataRow must match the
DataColumn
type
specified in the constructor of ListStore. 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,
int aPosition)
Adds a row to the list, at the specified position. This method can be
used to easily add data to the list. Each item in the DataRow must match
the
DataColumn
type specified in the constructor of ListStore.
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
appendRow
public TreeIter appendRow()
Appends a new row to the store
clear
public void clear()
Removes all rows from the list store.
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
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(int position)
Creates a new row at position
. If position is larger than
the number of rows on the list, then the new row will be appended to the
list.
position
- The position to place the new row, starting at 0.
insertRowAfter
public TreeIter insertRowAfter(TreeIter sibling)
Inserts a new row after sibling. If sibling is NULL, then the row will be
prepended to the beginning of the list. iter will be changed to point to
this new row.
- Iterator for the new row.
insertRowBefore
public TreeIter insertRowBefore(TreeIter sibling)
Inserts a new row before sibling. If sibling is NULL, then the row will
be appended to the end of the list. iter will be changed to point to this
new row.
isIterValid
public boolean isIterValid(TreeIter iter)
moveRowAfter
public void moveRowAfter(TreeIter iter,
TreeIter position)
Moves iter in this store to the position after position. The
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 store to the position before position. The 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()
Prepends a new row to list_store. The iter will be changed to
point to this new row. The row will be empty after this function is
called.
removeRow
public boolean removeRow(TreeIter iter)
Removes the given row from the list store. After being removed,
iter
is set to be the next valid row, or invalidated if it
pointed to the last row in this store.
iter
- iterator for the row to be removed.
- TRUE if iter is valid, FALSE if not.
reorder
public void reorder(int[] newOrder)
setColumnTypes
public void setColumnTypes(DataColumn[] dataColumns)
This function is meant primarily for GObjects that inherit from
ListStore, and should only be used when constructing a new ListStore. It
will not function after a row has been added, or a method on the
TreeModel interface is called.
dataColumns
- the data columns to be set
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)
Sets a value in the data store. To display the data in the widget, you
need to associate the datablock with the renderer, using methods of the
TreeViewColumn
.
iter
- A valid iterator which specifies the row in which the data
should be set. Iterators can be gained by using methods such
as appendRow()
.dataBlock
- The data block to store the value in.value
- The value to store. This must be of the same type
for the column as that set in the constructor to the
ListStore.
setValue
public void setValue(TreeIter iter,
DataColumnDouble dataBlock,
double value)
Sets a value in the data store. To display the data in the widget, you
need to associate the datablock with the renderer, using methods of the
TreeViewColumn
.
iter
- A valid iterator which specifies the row in which the data
should be set. Iterators can be gained by using methods such
as appendRow()
.dataBlock
- The data block to store the value in.value
- The value to store.
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()
.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)
Sets a value in the data store. To display the data in the widget, you
need to associate the datablock with the renderer, using methods of the
TreeViewColumn
.
iter
- A valid iterator which specifies the row in which the data
should be set. Iterators can be gained by using methods such
as appendRow()
.dataBlock
- The data block to store the value in.value
- The value to store. This must be of the same type
for the column as that set in the constructor to the
ListStore.
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)
Sets a value in the dataStore. The type of the value must
match the type set for that dataBlock in the constructor.
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow()
.dataBlock
- The datablock in which the data should be stored.value
- The value to be set.
setValue
public void setValue(TreeIter iter,
DataColumnPixbuf dataBlock,
Pixbuf value)
Sets a value in the dataStore. The type of the value
must
match the type set for that dataBlock in the constructor.
This does not make the data visible in any of the widgets which use the
class
iter
- Valid iterator for the data row in which the value is to be
set. These can be gotten using methods such as
appendRow()
.dataBlock
- The datablock in which the data should be stored.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,
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()
.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)
Sets a value in the data store. To display the data in the widget, you
need to associate the datablock with the renderer, using methods of the
TreeViewColumn
.
iter
- A valid iterator which specifies the row in which the data
should be set. Iterators can be gained by using methods such
as appendRow()
.dataBlock
- The data block to store the value in.value
- The value to store. This must be of the same type
for the column as that set in the constructor to the
ListStore.
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.