cvsuser     05/10/20 13:56:48

  Added:       App-Widget/lib/App/Widget DataAnalysis.pm
  Log:
  new
  
  Revision  Changes    Path
  1.1                  p5ee/App-Widget/lib/App/Widget/DataAnalysis.pm
  
  Index: DataAnalysis.pm
  ===================================================================
  
  ######################################################################
  ## $Id: DataAnalysis.pm,v 1.1 2005/10/20 20:56:47 spadkins Exp $
  ######################################################################
  
  package App::Widget::DataAnalysis;
  $VERSION = do { my @r=(q$Revision: 1.1 $=~/\d+/g); sprintf 
"%d."."%02d"x$#r,@r};
  
  use App;
  use App::Widget;
  @ISA = ( "App::Widget" );
  
  use strict;
  
  =head1 NAME
  
  App::Widget::DataAnalysis - A set of data grids and graphs
  
  =head1 SYNOPSIS
  
     $name = "label";
  
     # official way
     use App;
     $context = App->context();
     $w = $context->widget($name);
  
     # internal way
     use App::Widget::DataAnalysis;
     $w = App::Widget::DataAnalysis->new($name);
  
  =cut
  
  ######################################################################
  # CONSTANTS
  ######################################################################
  
  ######################################################################
  # ATTRIBUTES
  ######################################################################
  
  # INPUTS FROM THE ENVIRONMENT
  
  =head1 DESCRIPTION
  
  A set of data grids and graphs.
  
  =cut
  
  ######################################################################
  # INITIALIZATION
  ######################################################################
  
  sub _init {
      &App::sub_entry if ($App::trace);
      my $self = shift;
      $self->SUPER::_init(@_);
      my $context = $self->{context};
      my $widget = $self->{widget} || {};
      my $widget_names = $self->{widgets};
      $widget_names = [ sort keys %$widget ] if (!$widget_names);
      my ($args, $columns_widget, @columns, $columns);
      foreach my $wname (@$widget_names) {
          $args = $widget->{$wname} || {};
          $context->widget($wname, %$args);
          $columns = $args->{columns};
          if ($columns && !ref($columns)) {
              @columns = ();
              foreach $columns_widget (split(/,/, $columns)) {  # it's really a 
list of widget names
                  $columns = $context->so_get($columns_widget);  # get list of 
columns (comma-sep-list)
                  $columns = [ split(/,/, $columns) ] if (!ref($columns));  # 
split into array
                  push(@columns, @$columns);
              }
              $context->so_set($wname, "columns", [EMAIL PROTECTED]);
              $context->so_set($wname, "numcols", $#columns + 1);
          }
      }
      &App::sub_exit() if ($App::trace);
  }
  
  ######################################################################
  # EVENTS
  ######################################################################
  
  # no events
  
  ######################################################################
  # OUTPUT METHODS
  ######################################################################
  
  sub html {
      &App::sub_entry if ($App::trace);
      my $self = shift;
      my $context = $self->{context};
      my $widget = $self->{widget} || {};
      my $widget_names = $self->{widgets};
      $widget_names = [ sort keys %$widget ] if (!$widget_names);
      my ($args, $columns, $w);
      my $html = "<table border=0 cellspacing=2 cellpadding=2>\n";
      foreach my $wname (@$widget_names) {
          $html .= "<tr><td>\n";
          $args = $widget->{$wname} || {};
          $w = $context->widget($wname);
          #$columns = $args->{columns};
          #if ($columns && !ref($columns)) {
          #    $columns = $context->so_get($columns);
          #    $columns = [ split(/,/, $columns) ] if (!ref($columns));
          #    $context->so_set($wname, "columns", $columns);
          #}
          $html .= $w->html();
          $html .= "</td></tr>\n";
      }
      $html .= "</table>\n";
      &App::sub_exit($html) if ($App::trace);
      $html;
  }
  
  1;
  
  
  
  

Reply via email to