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>&nbsp;</td>
     <td align=center valign=top>Selected</td>
  </tr>
  </table>
  $var_hidden
  EOF
  
      $html;
  }
  
  1;
  
  
  
  


Reply via email to