cvsuser 02/05/09 15:18:47
Added: P5EEx/Blue/P5EEx/Blue/Widget/HTML DualListSelect.pm
Log:
new file
Revision Changes Path
1.1 p5ee/P5EEx/Blue/P5EEx/Blue/Widget/HTML/DualListSelect.pm
Index: DualListSelect.pm
===================================================================
######################################################################
## $Id: DualListSelect.pm,v 1.1 2002/05/09 22:18:47 spadkins Exp $
######################################################################
package P5EEx::Blue::Widget::HTML::DualListSelect;
$VERSION = do { my @r=(q$Revision: 1.1 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
use P5EEx::Blue::Widget::HTML::StylizableContainer;
@ISA = ( "P5EEx::Blue::Widget::HTML::StylizableContainer" );
use strict;
=head1 NAME
P5EEx::Blue::Widget::HTML::DualListSelect - Generic HTML element can be anything
with proper configuration
=head1 SYNOPSIS
use P5EEx::Blue::Widget::HTML::DualListSelect;
$name = "gobutton";
$config = { };
$state = CGI->new({});
$w = P5EEx::Blue::Widget::HTML::DualListSelect->new($config,$state,"gobutton",
$config, $state);
=cut
######################################################################
# CONSTANTS
######################################################################
######################################################################
# ATTRIBUTES
######################################################################
# INPUTS FROM THE ENVIRONMENT
=head1 DESCRIPTION
This class is a <select> HTML element.
=cut
######################################################################
# CONSTRUCTOR
######################################################################
# uncomment this when I need to do more than just call SUPER::init()
#sub init {
# my $self = shift;
# $self->SUPER::init(@_);
#}
######################################################################
# METHODS
######################################################################
######################################################################
# OUTPUT METHODS
######################################################################
sub html {
my $self = shift;
my ($context, $name, @currvalues, $values, @values, $labels);
my ($size, $tabindex, @select_attribs);
$context = $self->{context};
$name = $self->{name};
$size = $self->get("size",5);
$tabindex = $self->get("tabindex");
@select_attribs = ("multiple", 1, "size", 5);
push(@select_attribs, "tabindex", $tabindex) if (defined $tabindex);
($values, $labels) = $self->values_labels();
my ($value, $v, %value_exists, $value_exists, @sel_list, @unsel_list);
@currvalues = $self->get_values();
@sel_list = ();
@unsel_list = ();
foreach $value (@currvalues) {
if (defined $value) {
$value_exists{$value} = 1;
$value_exists = 1;
}
}
for ($v = 0; $v <= $#$values; $v++) {
$value = $values->[$v];
if ($value_exists{$value}) {
push(@sel_list, $value);
}
else {
push(@unsel_list, $value);
}
}
my ($html, $sel_list, $unsel_list, $var_hidden);
my ($sel_button, $unsel_button, $up_button, $dn_button);
$unsel_list = $context->widget("${name}_unsel",
widgetClass => "P5EEx::Blue::Widget::HTML::Select",
values => \@unsel_list,
labels => $labels,
@select_attribs
)->html();
$sel_list = $context->widget("${name}_sel",
widgetClass => "P5EEx::Blue::Widget::HTML::Select",
values => \@sel_list,
labels => $labels,
@select_attribs
)->html();
#if ($self->{noimagebuttons}) {
$sel_button = $context->widget("${name}_sel_button",
widgetClass => "P5EEx::Blue::Widget::HTML::Button",
label => " >> ",
)->html();
$unsel_button = $context->widget("${name}_unsel_button",
widgetClass => "P5EEx::Blue::Widget::HTML::Button",
label => " << ",
)->html();
$up_button = $context->widget("${name}_up_button",
widgetClass => "P5EEx::Blue::Widget::HTML::Button",
label => " Up ",
)->html();
$dn_button = $context->widget("${name}_dn_button",
widgetClass => "P5EEx::Blue::Widget::HTML::Button",
label => " Dn ",
)->html();
#}
#else {
# $sel_button = $context->widget("${name}_sel_button",
# widgetClass => "P5EEx::Blue::Widget::HTML::ImageButton",
# image => "images/DualListSelect/rtarrow.gif",
# height => "19",
# width => "19",
# label => "Select",
# event => "select",
# eventTarget => $name,
# )->display();
#
# $unsel_button = $context->widget("${name}_unsel_button",
# widgetClass => "P5EEx::Blue::Widget::HTML::ImageButton",
# image => "images/DualListSelect/lfarrow.gif",
# height => "19",
# width => "19",
# label => "Select",
# event => "select",
# eventTarget => $name,
# )->display();
#
# $up_button = $context->widget("${name}_up_button",
# widgetClass => "P5EEx::Blue::Widget::HTML::ImageButton",
# image => "images/DualListSelect/uparrow.gif",
# height => "19",
# width => "19",
# label => "Select",
# event => "select",
# eventTarget => $name,
# )->display();
#
# $dn_button = $context->widget("${name}_dn_button",
# widgetClass => "P5EEx::Blue::Widget::HTML::ImageButton",
# image => "images/DualListSelect/dnarrow.gif",
# height => "19",
# width => "19",
# label => "Select",
# event => "select",
# eventTarget => $name,
# )->display();
#
#}
$var_hidden = $self->callback_event_tag("restore");
$html = <<EOF;
<table border=0 cellspacing=3>
<tr>
<td align=center valign=middle rowspan=2>$unsel_list</td>
<td align=center valign=bottom>$sel_button</td>
<td align=center valign=middle rowspan=2>$sel_list</td>
<td align=center valign=bottom>$up_button</td>
</tr>
<tr>
<td align=center valign=top>$unsel_button</td>
<td align=center valign=top>$dn_button</td>
</tr>
<tr>
<td align=center valign=top>Not Selected</td>
<td align=center valign=top> </td>
<td align=center valign=top>Selected</td>
</tr>
</table>
$var_hidden
EOF
$html;
}
1;