tablematrix::spreadsheethiderows(3)
NAME
Tk::TableMatrix::SpreadsheetHideRows - Table Display with
selectable hide/un-hide of rows
SYNOPSIS
use Tk;
use Tk::TableMatrix::SpreadsheetHideRows
my $t = $top->Scrolled('SpreadsheetHideRows',
-selectorCol => 3,
-expandData => $hashRef,
-rows => 21, -cols => 11,
-width => 6, -height => 6,
-titlerows => 1, -titlecols
=> 1,
-variable => $arrayVar,
-selectmode => 'extended',
-resizeborders => 'both',
-titlerows => 1,
-titlecols => 1,
-bg => 'white',
);
DESCRIPTION
Tk::TableMatrix::SpreadsheetHideRows is a Tk::TableMa
trix::Spreadsheet-derived widget that implements a Spread
sheet-like display of tabular information, where some of
the rows in the table can be expanded/hidden by clicking a
'+/-' selector in the row. This can be used to display
top-level information in a table, while allowing the user
to expand certain table rows to view detail-level informa
tion.
See demos/SpreadsheetHideRows in the source distribution
for a simple example of this widget
Widget-specific Options
In addition the standard Tk::TableMatrix widget options.
The following options are implemented:
- -selectorCol
- Column number where the +/- selector will appear. Click
ing on the +/- selector will expand/hide the detail
information in the table for a particular row. - -selectorColWidth
- Width of the column used to display the +/- selector.
Defaults to 2 - -expandData
- Hash ref defining the detail-level data displayed when a
row is expanded (by clicking the +/- selector). This hash
ref should have the following structure:
$expandData = {row1 => { tag => 'detailDataTag',data => $detailData,
spans=> $spanData,
expandData => $subLevelData},row2 => {.
.}Where:row1, row2, ... Row numbers that will be expandable.
tag => 'detailDataTag' Tag name that will be appliedto the detail data.(optional)$detailData 2D Array of detail-data tobe displayed whenthe row is expanded.
e.g. [ [ r1c1, r1c2, r1c3 ],[ r2c1, r2c2, r2,c3]]$spans 1D array of span information(optional) to beused for display of the detail information.
e.g. [ col2 =>"rows,cols", col4 => "rows,cols", ... ] - $subLevelData Optional Recursive expandDa
- ta used to hold detail-data of detail-data.
MEMBER DATA
The following items are stored as member data
- defaultCursor
- Name of the mouse cursor pointer that is used for normal
(i.e. non-title, non-indicator) cells in the widget.
This is set to the value of the $widget->cget(-cursor)
option when the widget is created. - indRowCols
- Hash ref of Row/Cols indexes where there are indicators
stores. This is a quick lookup hash built from _expand_ Data. - _expandData
- Internal version of the expandData hash. Any sub-detail
data (i.e. expand data that is at lower levels of expand_
Data) that is visible is placed at the top level of this
hash, for keeping track of the visible expandData.
Widget Methods
In addition the standard Tk::TableMatrix widget method.
The following methods are implemented:
showDetail
Shows (i.e. expands the table) the detail data for a given
row. This method is called when a user clicks on an indi
cator that is not already expanded.
- Usage:
- $widget->showDetail($row);
- # Shows the detail data for row number $row
- hideDetail
- Hides the detail data for a given row. This method is
called when a user clicks on an indicator that is already
expanded. - Usage:
$widget->hideDetail($row);- # Hides the detail data for row number $row