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()