Author: spadkins
Date: Mon Oct 16 11:29:19 2006
New Revision: 7949
Modified:
p5ee/trunk/App-Widget/lib/App/Widget/DataTable2.pm
Log:
add view_widget capability
Modified: p5ee/trunk/App-Widget/lib/App/Widget/DataTable2.pm
==============================================================================
--- p5ee/trunk/App-Widget/lib/App/Widget/DataTable2.pm (original)
+++ p5ee/trunk/App-Widget/lib/App/Widget/DataTable2.pm Mon Oct 16 11:29:19 2006
@@ -266,10 +266,10 @@
$self->{context}->dbgprint("DataTable2->get_headings()")
if ($App::DEBUG && $self->{context}->dbg(1));
my ($table, $headings, $heading, $columns, $column, $lang);
- $table = $self->get("table");
- $columns = $self->get_columns();
- $headings = $self->get("headings");
- $lang = $self->{lang};
+ $table = $self->{table};
+ $columns = $self->get_columns();
+ $headings = $self->{headings};
+ $lang = $self->{lang};
my $column_attribs = $self->{column} || {};
if (!defined $headings) {
$headings = [];
@@ -299,7 +299,6 @@
if ($App::DEBUG && $self->{context}->dbg(1));
my ($data);
$data = $self->{data};
- $data = $self->get("data") if (! defined $data);
if (!defined $data) {
$self->load();
$data = $self->{data};
@@ -318,16 +317,16 @@
my ($startrow, $maxrows, $endrow, $keycolidx);
my (%paramvalues, $filter, $column);
- $repname = $self->get("repository");
+ $repname = $self->{repository};
$context = $self->{context};
$rep = $context->repository($repname);
return if (! defined $rep);
- $sql = $self->get("sql");
- $data = $self->get("data");
+ $sql = $self->{sql};
+ $data = $self->{data};
if ($sql) {
- $paramvalues = $self->substitute($self->get("paramvalues"));
+ $paramvalues = $self->substitute($self->{paramvalues});
$sql = $self->substitute($sql, $paramvalues);
$startrow = $self->get("startrow", 1, 1);
$maxrows = $self->get("maxrows", 20, 1);
@@ -342,7 +341,7 @@
$rows = $data;
}
else {
- $table = $self->get("table");
+ $table = $self->{table};
$columns = $self->get_columns();
if (! defined $columns || $#$columns == -1) {
@@ -356,7 +355,7 @@
$columns = [ @$columns ];
}
- $params = $self->get("params");
+ $params = $self->{params};
$paramvalues = $self->substitute($self->get("paramvalues",{}));
%paramvalues = %$paramvalues;
$filter = $self->get("filter",{});
@@ -416,9 +415,9 @@
}
}
- my $order_by = $self->get("order_by") || $self->get("ordercols"); # ordercols is deprecated in favor of order_by
- my $group_by = $self->get("group_by");
- my $direction = $self->{direction} || $self->{directions} || {};
+ my $order_by = $self->{order_by} || $self->{ordercols}; # ordercols is deprecated in favor of order_by
+ my $group_by = $self->{group_by};
+ my $direction = $self->{direction} || $self->{directions} || {}; # directions is deprecated in favor of direction
$startrow = $self->get("startrow", 1, 1);
$maxrows = $self->get("maxrows", 20, 1);
$endrow = ($maxrows != 0) ? ($startrow + $maxrows - 1) : 0;
@@ -1164,6 +1163,8 @@
@edit_style = ();
@column_length = ();
+ my ($view_widget_args, $view_widget, $view_width);
+
if ($mode eq "edit") {
# prepare the style attribute arrays
push(@edit_style, "font_family", $font_face) if ($font_face);
@@ -1191,7 +1192,7 @@
# Removed because when a row is added without a selected row
# the inputs would be set to the minimum length
#if (($column ne "" && $self->{column_selected}{$column}) ||
- # ($self->{row_selected} && %{$self->{row_selected}})) {
+ # ($self->{row_selected} && %{$self->{row_selected}})) { }
if ($column ne "") {
for ($row = 0; $row <= $#$data; $row++) {
@@ -1386,21 +1387,55 @@
$html .= "$elem_end</td>\n";
}
else {
- $elem = $self->html_escape($elem);
- if (!defined $elem || $elem eq "") {
- $elem = " ";
+ if ($self->{view_widget}{$column}) {
+ $view_widget_args = $self->{view_widget}{$column};
+ $view_widget = $context->widget("$name-temp_$column",
+ lightweight => 1,
+ override => 1,
+ %$view_widget_args,
+ style_class => "App-DataTable-view",
+ );
+ $context->so_set($name, "temp_$column", $data->[$row][$col]);
+ if ($view_widget_args->{needs_row_columns}) {
+ $view_width = "width=\"400\""; # For IE
+ $view_widget->{row} = $data->[$row];
+ $view_widget->{columns} = $columns;
+ }
+ if ($view_widget_args->{wrap}) {
+ my $data = $view_widget->html();
+ if ($data ne "") {
+ $view_width = "width=\"400\""; # For IE
+ $data =~ s/\s+/ /g; $data =~ s/, /, /g;
+ $elem = "<span style=\"white-space: normal\">".$data."</span>";
+ }
+ }
+ elsif ($view_widget_args->{nowrap}) {
+ my $data = $view_widget->html();
+ if ($data ne "") {
+ $elem = "<span style=\"white-space: nowrap\">".$data."</span>";
+ }
+ }
+ else {
+ $elem = $view_widget->html();
+ }
}
else {
- $elem = $elem * $scale_factor if ($scale_factor);
- $elem = sprintf($format, $elem) if ($format);
- if ($align) {
- $td_col_attrib = " align=\"$align\"";
- }
- elsif ($elem =~ /^[-0-9.,%]+$/) {
- $td_col_attrib = " align=\"right\"";
+ $elem = $self->html_escape($elem);
+ if (!defined $elem || $elem eq "") {
+ $elem = " ";
}
else {
- $td_col_attrib = " align=\"left\"";
+ $elem = $elem * $scale_factor if ($scale_factor);
+ $elem = sprintf($format, $elem) if ($format);
+ if ($align) {
+ $td_col_attrib = " align=\"$align\"";
+ }
+ elsif ($elem =~ /^[-0-9.,%]+$/) {
+ $td_col_attrib = " align=\"right\"";
+ }
+ else {
+ $td_col_attrib = " align=\"left\"";
+ }
}
}
$html .= " <td$td_row_attrib$td_col_attrib>$elem_begin$elem$elem_end</td>\n";
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.