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 ex
pandable.
tag => 'detailDataTag' Tag name that will be applied
to the detail data.
(optional)
$detailData 2D Array of detail-data to
be displayed when
the row is expanded.
e.g. [ [ r1c1, r1c2, r1c3 ],
[ r2c1, r2c2, r2,c3]
]
$spans 1D array of span information
(optional) to be
used for display of the de
tail 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
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout