cvsuser 02/04/19 07:34:21
Modified: P5EEx/Blue/P5EEx/Blue/Widget/HTML DataTable.pm
Log:
added editing for entire columns or rows without having to specify the other axis
Revision Changes Path
1.9 +33 -8 p5ee/P5EEx/Blue/P5EEx/Blue/Widget/HTML/DataTable.pm
Index: DataTable.pm
===================================================================
RCS file: /cvs/public/p5ee/P5EEx/Blue/P5EEx/Blue/Widget/HTML/DataTable.pm,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -w -r1.8 -r1.9
--- DataTable.pm 5 Apr 2002 23:03:16 -0000 1.8
+++ DataTable.pm 19 Apr 2002 14:34:20 -0000 1.9
@@ -1,10 +1,10 @@
######################################################################
-## $Id: DataTable.pm,v 1.8 2002/04/05 23:03:16 spadkins Exp $
+## $Id: DataTable.pm,v 1.9 2002/04/19 14:34:20 spadkins Exp $
######################################################################
package P5EEx::Blue::Widget::HTML::DataTable;
-$VERSION = do { my @r=(q$Revision: 1.8 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
+$VERSION = do { my @r=(q$Revision: 1.9 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
use P5EEx::Blue::P5EE;
use P5EEx::Blue::Widget::HTML;
@@ -635,7 +635,20 @@
width => 85,
bevel => 2,
)->display();
- $html .= "</td></tr></table>\n";
+ $html .= "</td>\n";
+ #$html .= "<td>\n";
+ #$html .= $wc->widget("$name.confirm",
+ # widgetClass =>
"P5EEx::Blue::Widget::HTML::RadioButtonSet",
+ # #lightweight => 1,
+ # values => [ "no_confirm", "confirm", "auto_confirm" ],
+ # labels => {
+ # "no_confirm" => "Changes Not Confirmed",
+ # "confirm" => "Confirm Changes",
+ # "auto_confirm" => "Auto-Confirm",
+ # },
+ # )->display();
+ #$html .= "</td>\n";
+ $html .= "</tr></table>\n";
}
$html .= $table_begin;
@@ -661,16 +674,25 @@
$html .= "</tr>\n";
}
if ($filterable) {
+ my ($w);
$html .= "<tr>\n";
$html .= " <td> </td>\n" if ($mode eq "edit" &&
$rowSelectable);
$html .= " <td> </td>\n" if ($numbered);
for ($col = 0; $col < $numcols; $col++) {
$column = $columns->[$col];
- $elem = $wc->widget("$name\{filter}{$column}",
+$self->{context}->dbgprint("DataTable->widget($name\{filter}{$column})\n");
+ #$elem = $wc->widget("$name\{filter}{$column}",
+ # widgetClass =>
"P5EEx::Blue::Widget::HTML::TextField",
+ # size => 5,
+ # maxwidth => 99,
+ # )->display();
+ $w = $wc->widget("$name\{filter}{$column}",
widgetClass =>
"P5EEx::Blue::Widget::HTML::TextField",
size => 5,
maxwidth => 99,
- )->display();
+ );
+$self->{context}->dbgprint("DataTable->widget() $w name=$w->{name}\n");
+ $elem = $w->display();
$html .= " <td>$elem_begin$elem$elem_end</td>\n";
}
$html .= "</tr>\n";
@@ -757,7 +779,8 @@
$column = $columns->[$col];
}
- if ($column ne "" && $self->{columnSelected}{$column}) {
+ if (($column ne "" && $self->{columnSelected}{$column}) ||
+ ($self->{rowSelected} && %{$self->{rowSelected}})) {
for ($row = 0; $row <= $#$data; $row++) {
$elem = $data->[$row][$col];
if (defined $elem && length($elem) > $column_length[$col]) {
@@ -803,7 +826,9 @@
}
$elemSelected = 0;
- if ($self->{columnSelected}{$column} && $self->{rowSelected}{$key}) {
+ if (($self->{columnSelected}{$column} && $self->{rowSelected}{$key}) ||
+ ($self->{columnSelected}{$column} && (!defined $self->{rowSelected}
|| !%{$self->{rowSelected}})) ||
+ ((!defined $self->{columnSelected} || !%{$self->{columnSelected}})
&& $self->{rowSelected}{$key})) {
$elemSelected = 1;
}
@@ -824,7 +849,7 @@
$html .= " <td $td_row_attrib$td_col_attrib>${elem_begin}";
$html .= $wc->widget("$name\{editdata}{$key}{$column}",
widgetClass => "P5EEx::Blue::Widget::HTML::TextField",
- size => $column_length[$col]+1, # add 1 just to give
some visual space
+ size => $column_length[$col]+2, # add 2 just to give
some visual space
maxlength => 99,
backgroundColor => "#ffaaaa",
borderStyle => "solid",