cvsuser     02/02/08 12:46:04

  Modified:    P5EEx/Blue/P5EEx/Blue Context.pm
  Log:
  added add_message() method
  
  Revision  Changes    Path
  1.13      +106 -44   p5ee/P5EEx/Blue/P5EEx/Blue/Context.pm
  
  Index: Context.pm
  ===================================================================
  RCS file: /cvs/public/p5ee/P5EEx/Blue/P5EEx/Blue/Context.pm,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -w -r1.12 -r1.13
  --- Context.pm        5 Feb 2002 22:31:21 -0000       1.12
  +++ Context.pm        8 Feb 2002 20:46:04 -0000       1.13
  @@ -1,6 +1,6 @@
   
   #############################################################################
  -## $Id: Context.pm,v 1.12 2002/02/05 22:31:21 spadkins Exp $
  +## $Id: Context.pm,v 1.13 2002/02/08 20:46:04 spadkins Exp $
   #############################################################################
   
   package P5EEx::Blue::Context;
  @@ -271,7 +271,6 @@
   
       * Signature: $service = $context->service($type);
       * Signature: $service = $context->service($type,$name);
  -    * Signature: $service = $context->service($type,$name,$named);
       * Signature: $service = $context->service($type,$name,%named);
       * Param:  $type        string  [in]
       * Param:  $name        string  [in]
  @@ -357,7 +356,6 @@
   
   sub service {
       my ($self, $type, $name, %named) = @_;
  -
       $self->dbgprint("Context->service(" . join(", ",@_) . ")")
           if ($P5EEx::Blue::Context::DEBUG && $self->dbg(ref($self),"service",3));
   
  @@ -365,12 +363,13 @@
       my ($service, $config, $class, $session);
       my ($service_state, $service_config, $service_type, $service_type_config);
   
  -    if ($#_ < 1) {
  +    if (!defined $type) {
           P5EEx::Blue::Exception->throw(
  -            error => "service(): no args specified\n",
  +            error => "service(): no service type specified\n",
           );
       }
  -    elsif (%named) {
  +
  +    if (%named) {
           $args = \%named;
       }
       else {
  @@ -567,57 +566,35 @@
   =cut
   
   #############################################################################
  -# wset()
  +# iget()
   #############################################################################
   
  -=head2 wset()
  -
  -The wset() sets an attribute of a widget in the Session.
  +=head2 iget()
   
  -    * Signature: $context->wset($widgetname, $attribute, $value);
  -    * Param:  $widgetname      string
  +    * Signature: $value = $context->iget($var, $default);
  +    * Param:  $var             string
       * Param:  $attribute       string
  -    * Param:  $value           string,ref
  -    * Return: void
  +    * Return: $value           string
       * Throws: <none>
       * Since:  0.01
   
       Sample Usage: 
   
  -    $context->wset("global", "wname", "main_screen");
  -    $context->wset("main.app.toolbar.calc", "width", 50);
  +    $script_url_dir = $context->iget("scriptUrlDir", "/cgi-bin");
   
  -=cut
  +The iget() returns the value of an Initialization Config variable
  +(or the "default" value if not set).
   
  -# $self->wset("xyz", "{arr}[1][2]",        14);
  -# $self->wset("xyz", "{arr.totals}[1][2]", 14);
  -sub wset {
  -    my ($self, $name, $var, $value) = @_;
  -    my ($perl);
  +This is an alternative to 
  +getting the reference of the entire hash of Initialization Config
  +variables with $self->initconfig().
   
  -    $self->dbgprint("Session->wset($name,$var,$value)")
  -        if ($P5EEx::Blue::Context::DEBUG && $self->dbg(ref($self),"wset",3));
  -
  -    if ($var !~ /[\[\]\{\}]/) {         # no special chars, "foo.bar"
  -        $self->{session}{state}{Widget}{$name}{$var} = $value;
  -        $self->widget($name) if (!defined $self->{session}{cache}{Widget}{$name});
  -        $self->{session}{cache}{Widget}{$name}{$var} = $value;
  -        return;
  -    } # match {
  -    elsif ($var =~ /^\{([^\}]+)\}$/) {  # a simple "{foo.bar}"
  -        $var = $1;
  -        $self->{session}{state}{Widget}{$name}{$var} = $value;
  -        $self->widget($name) if (!defined $self->{cache}{Widget}{$name});
  -        $self->{session}{cache}{Widget}{$name}{$var} = $value;
  -        return;
  -    } # match {
  +=cut
   
  -    $self->widget($name) if (!defined $self->{session}{cache}{Widget}{$name});
  -    $var =~ s/\{([^\}]+)\}/\{"$1"\}/g;  # put quotes around hash keys
  -    $perl = "\$self->{session}{state}{Widget}{\$name}$var = \$value; 
\$self->{session}{cache}{Widget}{\$name}$var = \$value;";
  -    eval $perl;
  -    print STDERR "ERROR: Context->wset($name,$var,$value): eval ($perl): $@\n" if 
($@);
  -    return $value;
  +sub iget {
  +    my ($self, $var, $default) = @_;
  +    my $value = $self->{initconfig}{$var};
  +    return (defined $value) ? $value : $default;
   }
   
   #############################################################################
  @@ -688,12 +665,97 @@
   }
   
   #############################################################################
  +# wset()
  +#############################################################################
  +
  +=head2 wset()
  +
  +The wset() sets an attribute of a widget in the Session.
  +
  +    * Signature: $context->wset($widgetname, $attribute, $value);
  +    * Param:  $widgetname      string
  +    * Param:  $attribute       string
  +    * Param:  $value           string,ref
  +    * Return: void
  +    * Throws: <none>
  +    * Since:  0.01
  +
  +    Sample Usage: 
  +
  +    $context->wset("global", "wname", "main_screen");
  +    $context->wset("main.app.toolbar.calc", "width", 50);
  +
  +=cut
  +
  +# $self->wset("xyz", "{arr}[1][2]",        14);
  +# $self->wset("xyz", "{arr.totals}[1][2]", 14);
  +sub wset {
  +    my ($self, $name, $var, $value) = @_;
  +    my ($perl);
  +
  +    $self->dbgprint("Session->wset($name,$var,$value)")
  +        if ($P5EEx::Blue::Context::DEBUG && $self->dbg(ref($self),"wset",3));
  +
  +    if ($var !~ /[\[\]\{\}]/) {         # no special chars, "foo.bar"
  +        $self->{session}{state}{Widget}{$name}{$var} = $value;
  +        $self->widget($name) if (!defined $self->{session}{cache}{Widget}{$name});
  +        $self->{session}{cache}{Widget}{$name}{$var} = $value;
  +        return;
  +    } # match {
  +    elsif ($var =~ /^\{([^\}]+)\}$/) {  # a simple "{foo.bar}"
  +        $var = $1;
  +        $self->{session}{state}{Widget}{$name}{$var} = $value;
  +        $self->widget($name) if (!defined $self->{cache}{Widget}{$name});
  +        $self->{session}{cache}{Widget}{$name}{$var} = $value;
  +        return;
  +    } # match {
  +
  +    $self->widget($name) if (!defined $self->{session}{cache}{Widget}{$name});
  +    $var =~ s/\{([^\}]+)\}/\{"$1"\}/g;  # put quotes around hash keys
  +    $perl = "\$self->{session}{state}{Widget}{\$name}$var = \$value; 
\$self->{session}{cache}{Widget}{\$name}$var = \$value;";
  +    eval $perl;
  +    print STDERR "ERROR: Context->wset($name,$var,$value): eval ($perl): $@\n" if 
($@);
  +    return $value;
  +}
  +
  +#############################################################################
   # PUBLIC METHODS
   #############################################################################
   
   =head1 Public Methods: Miscellaneous
   
   =cut
  +
  +#############################################################################
  +# add_message()
  +#############################################################################
  +
  +=head2 add_message()
  +
  +The add_message() method writes a string (the concatenated list of @args) to
  +the default use channel.
  +
  +    * Signature: $context->add_message($msg);
  +    * Param:  $msg         string  [in]
  +    * Return: void
  +    * Throws: <none>
  +    * Since:  0.01
  +
  +    Sample Usage: 
  +
  +    $context->add_message("Data was not saved. Try again.");
  +
  +=cut
  +
  +sub add_message {
  +    my ($self, $msg) = @_;
  +    if (defined $self->{messages}) {
  +        $self->{messages} .= "<br>" . $msg;
  +    }
  +    else {
  +        $self->{messages} = $msg;
  +    }
  +}
   
   #############################################################################
   # use()
  
  
  


Reply via email to