Prima::DetailedList - a multi-column list viewer with controlling header widget. |
Prima::DetailedList - a multi-column list viewer with controlling header widget.
Prima::DetailedList is a descendant of Prima::ListViewer, and as such provides a certain level of abstraction. It overloads format of items in order to support multi-column ( 2D ) cell span. It also inserts the Prima::Header manpage widget on top of the list, so the user can interactively move, resize and sort the content of the list. The sorting mechanism is realized inside the package; it is activated by the mouse click on a header tab.
Since the class inherits Prima::ListViewer, some functionality, like 'item search by
key', or get_item_text
method can not operate on 2D lists. Therefore, mainColumn
property is introduced, that selects the column representing all the data.
use Prima::DetailedList;
my $l = $w-> insert( 'Prima::DetailedList', columns => 2, headers => [ 'Column 1', 'Column 2' ], items => [ ['Row 1, Col 1', 'Row 1, Col 2'], ['Row 2, Col 1', 'Row 2, Col 2'] ], ); $l-> sort(1);
clear_event
, to signal the event flow stop. The DIRECTION is a boolean
flag, specifying whether the sorting must be performed is ascending ( 1 ) or
descending ( 0 ) order.
The callback procedure must operate on the internal storage of {items}
,
which is an array of arrays of scalars.
The default action is the literal sorting algorithm, where precedence is
arbitrated by cmp
operator ( see Equality Operators in the perlop manpage ) .
Default value: 0
Create-only property.
Default value: Prima::Header
Create-only property.
Create-only property.
mainColumn
is automatically
changed to the corresponding column.
Default value: 0
sort
invocation.
If COLUMN was specified, and the last specified column equals to COLUMN, the sort direction is reversed.
The method does not perform sorting itself, but invokes the Sort manpage notification, so the sorting algorithms can be overloaded, or be applied differently to the columns.
Dmitry Karasik, <dmitry@karasik.eu.org>.
Prima, the Prima::Lists manpage, the Prima::Header manpage, examples/sheet.pl
Prima::DetailedList - a multi-column list viewer with controlling header widget. |