Author: spadkins
Date: Wed Apr 25 07:56:42 2007
New Revision: 9449
Modified:
p5ee/trunk/App-Widget/lib/App/Widget/HierSelector.pm
p5ee/trunk/App-Widget/lib/App/Widget/ImageBarSelector.pm
Log:
add tracing. fix bug where internal state was not being maintained when
selector manipulated by select() (i.e. node_list(1)=writeable
Modified: p5ee/trunk/App-Widget/lib/App/Widget/HierSelector.pm
==============================================================================
--- p5ee/trunk/App-Widget/lib/App/Widget/HierSelector.pm (original)
+++ p5ee/trunk/App-Widget/lib/App/Widget/HierSelector.pm Wed Apr 25
07:56:42 2007
@@ -58,8 +58,10 @@
# uncomment this when I need to do more than just call SUPER::_init()
sub _init {
+ &App::sub_entry if ($App::trace);
my $self = shift;
$self->SUPER::_init(@_);
+ &App::sub_exit() if ($App::trace);
}
######################################################################
@@ -68,6 +70,7 @@
# Usage: $widget->handle_event($wname, $event, @args);
sub handle_event {
+ &App::sub_entry if ($App::trace);
my ($self, $wname, $event, @args) = @_;
my ($nodenumber, $x, $y);
@@ -98,10 +101,12 @@
else {
return $self->SUPER::handle_event($wname, $event, @args);
}
+ &App::sub_exit() if ($App::trace);
return 1;
}
sub select_first {
+ &App::sub_entry if ($App::trace);
my $self = shift;
my $node = $self->node_list();
@@ -144,9 +149,11 @@
else {
$self->open_exclusively("1");
}
+ &App::sub_exit() if ($App::trace);
}
sub select {
+ &App::sub_entry if ($App::trace);
my ($self, $nodeattrib, $value) = @_;
my $node = $self->node_list();
my $success = 0;
@@ -157,12 +164,15 @@
last;
}
}
+ &App::sub_exit($success) if ($App::trace);
return($success);
}
sub open_selected_exclusively {
+ &App::sub_entry if ($App::trace);
my ($self) = @_;
$self->open_exclusively($self->{selected});
+ &App::sub_exit() if ($App::trace);
}
# i.e. $self->open_exclusively("2.2");
@@ -171,9 +181,10 @@
# if "2.2.1" exists, it should set the first open to the "selected"
# else it should set itself "2.2" as the "selected"
sub open_exclusively {
+ &App::sub_entry if ($App::trace);
my ($self, $opennodenumber) = @_;
my ($nodebase, $nodeidx, $nodenumber);
- my $node = $self->node_list();
+ my $node = $self->node_list(1);
# set after get to ensure a deep data structure is stored in the session
$self->set("node", $node);
@@ -201,9 +212,11 @@
if (!defined $node->{"$opennodenumber.1"}) {
$self->set("selected", $opennodenumber);
}
+ &App::sub_exit() if ($App::trace);
}
sub node_list {
+ &App::sub_entry if ($App::trace);
my ($self, $writeable) = @_;
my ($node);
my $auth_node = $self->{auth_node};
@@ -230,6 +243,7 @@
$node = $self->{node};
$self->set("node", $node) if ($writeable);
}
+ &App::sub_exit($node) if ($App::trace);
return($node);
}
@@ -239,9 +253,10 @@
# if "2.2.1" exists, it should set the first open to the "selected"
# else it should set itself "2.2" as the "selected"
sub select_first_open_leaf {
+ &App::sub_entry if ($App::trace);
my ($self, $selected_nodenumber) = @_;
- my $node = $self->node_list();
+ my $node = $self->node_list(1);
my $nodebase = $selected_nodenumber;
my $nodeidx = 1;
my ($nodenumber);
@@ -276,6 +291,7 @@
$nodeidx++;
}
}
+ &App::sub_exit() if ($App::trace);
#$self->{debug} .= "select_first_open_leaf($selected_nodenumber):
[$nodenumber]<br>";
}
@@ -284,6 +300,7 @@
######################################################################
sub get_selected {
+ &App::sub_entry if ($App::trace);
my ($self, $nodeattrib) = @_;
my ($nodenumber);
@@ -295,10 +312,12 @@
my $node = $self->node_list();
$nodenumber = $self->get_tag_nodenumber($nodenumber);
+ &App::sub_exit($node->{$nodenumber}{$nodeattrib}) if ($App::trace);
return $node->{$nodenumber}{$nodeattrib};
}
sub get_tag_nodenumber {
+ &App::sub_entry if ($App::trace);
my ($self, $tag) = @_;
my $node = $self->node_list();
@@ -315,6 +334,8 @@
else {
$nodenumber = $tag;
}
+
+ &App::sub_exit($nodenumber) if ($App::trace);
return $nodenumber;
}
@@ -323,6 +344,7 @@
######################################################################
sub html {
+ &App::sub_entry if ($App::trace);
my $self = shift;
my ($html, $label);
@@ -360,7 +382,8 @@
}
}
- $html;
+ &App::sub_exit() if ($App::trace);
+ $html;
}
1;
Modified: p5ee/trunk/App-Widget/lib/App/Widget/ImageBarSelector.pm
==============================================================================
--- p5ee/trunk/App-Widget/lib/App/Widget/ImageBarSelector.pm (original)
+++ p5ee/trunk/App-Widget/lib/App/Widget/ImageBarSelector.pm Wed Apr 25
07:56:42 2007
@@ -39,25 +39,32 @@
######################################################################
sub _init {
+ &App::sub_entry if ($App::trace);
my $self = shift;
$self->SUPER::_init(@_);
+ my $node = $self->{context}{"hotel-selector"}{auth_node}[1];
if (! $self->get("selected")) {
$self->select_first();
}
+ &App::sub_exit() if ($App::trace);
}
sub select {
+ &App::sub_entry if ($App::trace);
my ($self, $nodeattrib, $value) = @_;
my $success = $self->SUPER::select($nodeattrib, $value);
$self->open_selected_exclusively();
+ &App::sub_exit($success) if ($App::trace);
return($success);
}
sub open_exclusively {
+ &App::sub_entry if ($App::trace);
my ($self, $opennodenumber) = @_;
#$self->{debug} .= "open_exclusively($opennodenumber)<br>";
$self->SUPER::open_exclusively($opennodenumber);
$self->select_first_open_leaf($opennodenumber);
+ &App::sub_exit() if ($App::trace);
}
######################################################################
@@ -65,6 +72,7 @@
######################################################################
sub html {
+ &App::sub_entry if ($App::trace);
my $self = shift;
my $context = $self->{context};
@@ -178,6 +186,7 @@
$html .= "<!-- ImageBarSelector (END) -->\n";
}
+ &App::sub_exit() if ($App::trace);
$html;
}