App-Widget
view release on metacpan or search on metacpan
lib/App/Widget/RepositoryEditor.pm view on Meta::CPAN
bevel => 2,
)->html();
$save_button = $context->widget("$name-save_button",
class => "App::Widget::ImageButton",
image_script => 'app-button',
label => "Save",
height => 17,
width => 50,
bevel => 2,
)->html();
$delete_button = $context->widget("$name-delete_button",
class => "App::Widget::ImageButton",
image_script => 'app-button',
label => "Delete",
height => 17,
width => 50,
bevel => 2,
)->html();
$saveas_button = $context->widget("$name-saveas_button",
class => "App::Widget::ImageButton",
image_script => 'app-button',
label => "Save As",
height => 17,
width => 50,
bevel => 2,
)->html();
$view_button = $context->widget("$name-view_button",
class => "App::Widget::ImageButton",
image_script => 'app-button',
label => "View",
height => 17,
width => 50,
bevel => 2,
)->html();
$edit_button = $context->widget("$name-edit_button",
class => "App::Widget::ImageButton",
image_script => 'app-button',
label => 'Edit',
height => 17,
width => 50,
bevel => 2,
)->html();
$select_button = $context->widget("$name-select_button",
class => "App::Widget::ImageButton",
image_script => 'app-button',
label => "Select Table",
height => 17,
width => 100,
bevel => 2,
)->html();
$columns = $self->column_selection_html();
$params = $self->param_selection_html();
my ($fontbegin, $fontend);
$fontbegin = "<font face=\"verdana,geneva,arial,sans-serif\" size=-1>";
$fontend = "</font>";
$html = <<EOF;
<table border=0 cellspacing=0 cellpadding=3 width=100%>
<tr>
<td nowrap width="2%">${fontbegin}Select View: ${fontend}</td>
<td nowrap>${fontbegin}$view $open_button $save_button $delete_button
: $saveas_button $saveas_view
${fontend}</td>
</tr>
<tr>
<td nowrap width="2%">${fontbegin}Select Table: ${fontend}</td>
<td nowrap>${fontbegin}$new_table $select_button${fontend}</td>
</tr>
<tr>
<td colspan=2><hr size=1></td>
</tr>
<tr>
<td nowrap width="2%">${fontbegin}Table:${fontend}</td>
<td nowrap>${fontbegin}<b>$table_label</b>${fontend}</td>
</tr>
<tr>
<td nowrap width="2%">${fontbegin}Query: ${fontend}</td>
<td nowrap>${fontbegin}$view_button $edit_button Max Rows: $maxrows${fontend}</td>
</tr>
<tr>
<td nowrap valign="top" width="2%">${fontbegin}Columns: ${fontend}</td>
<td nowrap valign="top">${fontbegin}$columns${fontend}</td>
</tr>
<tr>
<td nowrap valign="top" width="2%">${fontbegin}Criteria: ${fontend}</td>
<td nowrap valign="top">${fontbegin}$params${fontend}</td>
</tr>
</table>
EOF
$html;
}
sub column_selection_html {
my $self = shift;
my ($context, $name, $repname, $rep, $table);
$context = $self->{context};
$name = $self->{name};
$repname = $self->get("repository");
$rep = $context->repository($repname);
$table = $self->get("table");
return "ERROR: No table specified" if (!$table);
my ($columns, $column_labels, $column_menu, $column_menu_html);
$columns = $rep->get_column_names($table);
$column_labels = $rep->get_column_labels($table);
$column_menu = $context->widget("$name-columns",
override => 1,
class => "App::Widget::Select",
values => $columns,
labels => $column_labels,
size => 8,
multiple => 1,
);
$column_menu_html = $column_menu->html();
my (@order_menu, @dir_menu, @summ_checkbox, @xtab_checkbox, $i);
for ($i = 0; $i < 5; $i++) {
$order_menu[$i] = $context->widget("$name\{ordercols\}[$i]",
class => "App::Widget::Select",
values => $columns,
labels => $column_labels,
size => 1,
nullable => 1,
)->html();
$dir_menu[$i] = $context->widget("$name\{directions\}[$i]",
class => "App::Widget::Select",
values => [ '', 'asc', 'desc', ],
labels => { '' => '', 'asc' => 'Up', 'desc' => 'Down', },
)->html();
$summ_checkbox[$i] = $context->widget("$name\{summarize\}[$i]",
class => "App::Widget::Checkbox",
)->html();
$xtab_checkbox[$i] = $context->widget("$name\{crosstabulate}[$i]",
class => "App::Widget::Checkbox",
)->html();
}
my ($fontbegin, $fontend);
$fontbegin = "<font face=\"verdana,geneva,arial,sans-serif\" size=-1>";
$fontend = "</font>";
my $html = <<EOF;
<table border=0 cellspacing=0 cellpadding=3>
<tr>
<td valign=top width=2%>$column_menu_html</td>
<td valign=top nowrap>
<table border=0 cellpadding=0 cellspacing=1>
<tr>
<td>${fontbegin}Sort Order:${fontend}</td>
<!-- <td align=center>${fontbegin} Summarize ${fontend}</td> -->
<!-- <td align=center nowrap>${fontbegin} Cross-tabulate ${fontend}</td> -->
</tr>
<tr>
<td nowrap>$order_menu[0] $dir_menu[0]</td>
<!-- <td align=center>$summ_checkbox[0]</td> -->
<!-- <td align=center>$xtab_checkbox[0]</td> -->
</tr>
<tr>
<td nowrap>$order_menu[1] $dir_menu[1]</td>
<!-- <td align=center>$summ_checkbox[1]</td> -->
<!-- <td align=center>$xtab_checkbox[1]</td> -->
</tr>
<tr>
<td nowrap>$order_menu[2] $dir_menu[2]</td>
<!-- <td align=center>$summ_checkbox[2]</td> -->
<!-- <td align=center>$xtab_checkbox[2]</td> -->
</tr>
<tr>
<td nowrap>$order_menu[3] $dir_menu[3]</td>
<!-- <td align=center>$summ_checkbox[3]</td> -->
<!-- <td align=center>$xtab_checkbox[3]</td> -->
</tr>
<tr>
<td nowrap>$order_menu[4] $dir_menu[4]</td>
<!-- <td align=center>$summ_checkbox[4]</td> -->
<!-- <td align=center>$xtab_checkbox[4]</td> -->
</tr>
</table>
</td>
</tr>
</table>
EOF
$html;
}
sub param_selection_html {
my $self = shift;
my ($context, $name, $repname, $rep, $table);
$context = $self->{context};
$name = $self->{name};
$repname = $self->get("repository");
$rep = $context->repository($repname);
$table = $self->get("table");
return "ERROR: No table specified" if (!$table);
my ($columns, $column_labels);
$columns = $rep->get_column_names($table);
$column_labels = $rep->get_column_labels($table);
my ($conjunction_menu);
my (@conjunction, %conjunction);
@conjunction = ("AND", "OR", "NOT_AND", "NOT_OR");
%conjunction = (
"AND" => "All of the following conditions",
"OR" => "Any of the following conditions",
"NOT_AND" => "Not all of the following conditions",
"NOT_OR" => "Not any of the following conditions",
);
$conjunction_menu = $context->widget("$name-conjunction",
class => "App::Widget::Select",
values => \@conjunction,
labels => \%conjunction,
)->html();
my (@param_menu, @param_min, @param_max, @param_contains, $i);
for ($i = 0; $i < 5; $i++) {
$param_menu[$i] = $context->widget("$name\{param}[$i]",
class => "App::Widget::Select",
values => $columns,
labels => $column_labels,
nullable => 1,
)->html();
$param_min[$i] = $context->widget("$name\{param_min}[$i]",
class => "App::Widget::TextField",
size => 8,
maxlength => 99,
)->html();
$param_max[$i] = $context->widget("$name\{param_max}[$i]",
class => "App::Widget::TextField",
size => 8,
maxlength => 99,
)->html();
$param_contains[$i]= $context->widget("$name\{param_contains}[$i]",
class => "App::Widget::TextField",
size => 8,
maxlength => 99,
)->html();
}
my ($fontbegin, $fontend);
$fontbegin = "<font face=\"verdana,geneva,arial,sans-serif\" size=-1>";
$fontend = "</font>";
my $html = <<EOF;
<table border=0 cellspacing=0 cellpadding=3>
<tr>
<td valign="top" nowrap>${fontbegin}
$conjunction_menu<br>
$param_menu[0] Min: $param_min[0] Max: $param_max[0] Contains: $param_contains[0]<br>
$param_menu[1] Min: $param_min[1] Max: $param_max[1] Contains: $param_contains[1]<br>
$param_menu[2] Min: $param_min[2] Max: $param_max[2] Contains: $param_contains[2]<br>
$param_menu[3] Min: $param_min[3] Max: $param_max[3] Contains: $param_contains[3]<br>
$param_menu[4] Min: $param_min[4] Max: $param_max[4] Contains: $param_contains[4]${fontend}</td>
</tr>
</table>
EOF
$html;
}
1;
( run in 0.623 second using v1.01-cache-2.11-cpan-5735350b133 )