Author: spadkins
Date: Wed May  9 08:36:00 2007
New Revision: 9535

Added:
   p5ee/trunk/App-Widget/lib/App/Widget/TablessSelector.pm   (contents, props 
changed)

Log:
Initial revision.



Added: p5ee/trunk/App-Widget/lib/App/Widget/TablessSelector.pm
==============================================================================
--- (empty file)
+++ p5ee/trunk/App-Widget/lib/App/Widget/TablessSelector.pm     Wed May  9 
08:36:00 2007
@@ -0,0 +1,137 @@
+

+######################################################################

+## $Id: TablessSelector.pm 7953 2006-10-16 19:16:56Z spadkins $

+######################################################################

+

+package App::Widget::TablessSelector;

+$VERSION = (q$Revision: 7953 $ =~ /(\d[\d\.]*)/)[0];  # VERSION numbers 
generated by svn

+

+use App;

+use App::Widget::HierSelector;

[EMAIL PROTECTED] = ( "App::Widget::HierSelector" );

+

+use strict;

+

+=head1 NAME

+

+App::Widget::TablessSelector - A screen selector widget

+

+=head1 SYNOPSIS

+

+   use App::Widget::TablessSelector;

+

+   $name = "get_data";

+   $w = App::Widget::TablessSelector->new($name);

+   print $w->html();

+

+=cut

+

+=head1 DESCRIPTION

+

+This class implements a screen selector.

+

+=cut

+

+######################################################################

+# INITIALIZATION

+######################################################################

+

+sub _init {

+    my $self = shift;

+    $self->SUPER::_init(@_);

+    if (! $self->{selected}) {

+        $self->select_first();

+    }

+}

+

+sub select {

+    my ($self, $nodeattrib, $value) = @_;

+    my $success = $self->SUPER::select($nodeattrib, $value);

+    $self->open_selected_exclusively();

+    return($success);

+}

+

+sub open_exclusively {

+    my ($self, $opennodenumber) = @_;

+    #$self->{debug} .= "open_exclusively($opennodenumber)<br>";

+    $self->SUPER::open_exclusively($opennodenumber);

+    $self->select_first_open_leaf($opennodenumber);

+}

+

+######################################################################

+# OUTPUT METHODS

+######################################################################

+

+sub html {

+    my $self = shift;

+    my ($html, $label, $icon);

+    my $context = $self->{context};

+    my $name    = $self->{name};

+    my $node    = $self->node_list();

+

+    my ($bgcolor, $width, $fontface, $fontsize, $fontcolor, $fontbegin, 
$fontend);

+    my ($html_url_dir, $xgif);

+

+    $bgcolor   = $self->{bgcolor}   || "#cccccc";

+    $width     = $self->{width}     || "100%";

+    $fontface  = $self->{fontface}  || "verdana,geneva,arial,sans-serif";

+    $fontsize  = $self->{fontsize}  || "-2";

+    $fontcolor = $self->{fontcolor} || "#ffffff";

+

+    $bgcolor = "";

+

+    my ($nodebase, $nodeidx, $nodenumber, $nodelabel, $parentnodenumber, 
$nodelevel, $opennodenumber);

+    my (@nodeidx, $selected_nodenumber, $w);

+

+    $selected_nodenumber = $self->{selected};

+    @nodeidx = split(/\./,$selected_nodenumber);

+

+    $html_url_dir = $context->get_option("html_url_dir");

+    $xgif = "$html_url_dir/images/Widget/dot_clear.gif";

+

+    $html = $self->{debug} || "";

+

+    $nodelevel = 0;

+    $nodebase = "";

+    if (defined $node->{1} && !defined $node->{2}) {

+        $nodelevel = 1;

+        $nodebase = "1.";

+    }

+    my $auth = $context->authorization();

+    my ($auth_name);

+    for (; $nodelevel <= $#nodeidx; $nodelevel++) {

+        $html .= '<table border="0" cellpadding="0" cellspacing="0" 
width="100%">' . "\n";

+        $html .= "  <tr><td rowspan=\"3\" width=\"1%\" height=\"19\" nowrap>";

+

+        $nodeidx = 1;

+        $nodenumber = "$nodebase$nodeidx"; # create its node number

+        while (defined $node->{$nodenumber}) {

+

+            $auth_name = $node->{$nodenumber}{auth_name};

+            if (!$auth_name || 
$auth->is_authorized("/App/SessionObject/$name/$auth_name")) {

+                $label = $node->{$nodenumber}{label};

+                $label = $node->{$nodenumber}{value} if (!defined $label);

+                $label = "" if (!defined $label);

+            }

+

+            $nodeidx++;

+            $nodenumber = "$nodebase$nodeidx"; # create its node number

+        }

+        $nodebase .= "$nodeidx[$nodelevel].";

+        $html .= "</td>\n";

+        $html .= "    <td height=16 width=\"99%\"$bgcolor><img src=transp.gif 
height=16 width=1></td>\n";

+        $html .= "    <td height=\"16\" width=\"99%\"></td>\n";

+        $html .= "  </tr>\n";

+        $html .= "  <tr>\n";

+        $html .= "    <td height=\"1\" width=\"99%\" bgcolor=\"#000000\"><img 
src=\"$xgif\" height=\"1\" width=\"1\"></td>\n";

+        $html .= "  </tr>\n";

+        $html .= "  <tr>\n";

+        $html .= "    <td height=\"2\" width=\"99%\" bgcolor=\"#ffffff\"><img 
src=\"$xgif\" height=\"2\" width=\"1\"></td>\n";

+        $html .= "  </tr>\n";

+        $html .= "</table>\n";

+    }

+

+    $html;

+}

+1;

+

Reply via email to