Tk-TableMatrix
view release on metacpan or search on metacpan
TableMatrix/SpreadsheetHideRows.pm view on Meta::CPAN
.
.
}
Where:
row1, row2, ... Row numbers that will be expandable.
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 detail information.
e.g. [ col2 => "rows,cols", col4 => "rows,cols", ... ]
$subLevelData Optional Recursive expandData used to hold detail-data of detail-data.
=back
=head1 MEMBER DATA
The following items are stored as member data
=over 1
=item 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.
=item indRowCols
Hash ref of Row/Cols indexes where there are indicators stores. This is a quick
lookup hash built from I<_expandData>.
=item _expandData
Internal version of the I<expandData> hash. Any sub-detail data (i.e. expand data
that is at lower levels of I<expandData>) that is visible is placed at the top level of this hash, for
keeping track of the visible I<expandData>.
=back
=head1 Widget Methods
In addition the standard L<Tk::TableMatrix> widget method. The following methods are implemented:
=cut
package Tk::TableMatrix::SpreadsheetHideRows;
use Carp;
use Tk;
use Tk::TableMatrix::Spreadsheet;
use Tk::Derived;
use base qw/ Tk::Derived Tk::TableMatrix::Spreadsheet/;
$VERSION = '1.29';
Tk::Widget->Construct("SpreadsheetHideRows");
sub ClassInit{
my ($class,$mw) = @_;
$class->SUPER::ClassInit($mw);
};
sub Populate {
my ($self, $args) = @_;
$self->ConfigSpecs(
-selectorCol => [qw/METHOD selectorCol SelectorCol/, undef],
-selectorColWidth=> [qw/PASSIVE selectorColWidth SelectorColWidth/, 2],
-expandData => [qw/METHOD expandData ExpandData/, {}],
);
$self->SUPER::Populate($args);
$self->tagConfigure('plus', -image => $self->Getimage("plus"), -showtext => 0, -anchor => 'center');
$self->tagConfigure('minus', -image => $self->Getimage("minus"), -showtext => 0, -anchor => 'center');
$self->{normalCursor} = $self->cget('-cursor'); # get the default cursor
}
=head2 showDetail
Shows (i.e. expands the table) the detail data for a given row. This method is called
when a user clicks on an indicator that is not already expanded.
B<Usage:>
$widget->showDetail($row);
# Shows the detail data for row number $row
=cut
sub showDetail{
my $self = shift;
my $row = shift;
my $selectorCol = $self->cget(-selectorCol);
my $index = "$row,$selectorCol"; # make index for the cell to be expanded
( run in 0.298 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )