Author: spadkins
Date: Wed Feb 17 09:54:36 2010
New Revision: 13828

Modified:
   p5ee/trunk/App-Widget/lib/App/Widget/TabbedAppFrame.pm
   p5ee/trunk/App-Widget/lib/App/Widget/TabbedSelector.pm

Log:
add support for deep-linking to a particular tab within the AppFrame with the 
'screen=foo' URL parameter

Modified: p5ee/trunk/App-Widget/lib/App/Widget/TabbedAppFrame.pm
==============================================================================
--- p5ee/trunk/App-Widget/lib/App/Widget/TabbedAppFrame.pm      (original)
+++ p5ee/trunk/App-Widget/lib/App/Widget/TabbedAppFrame.pm      Wed Feb 17 
09:54:36 2010
@@ -66,6 +66,7 @@
 ######################################################################
 
 sub handle_event {
+    &App::sub_entry if ($App::trace);
     my ($self, $wname, $event, @args) = @_;
     my ($context, $name, $node);
     my ($selector_widget, $screen_wname, $screen_widget, $screen_settings);
@@ -118,6 +119,7 @@
     else {
         return $self->SUPER::handle_event($wname, $event, @args);
     }
+    &App::sub_exit() if ($App::trace);
 }
 
 
@@ -126,6 +128,7 @@
 ######################################################################
 
 sub html {
+    &App::sub_entry if ($App::trace);
     my $self = shift;
     my ($context, $name, $html);
     $name = $self->{name};
@@ -270,6 +273,7 @@
 </table>
 EOF
     }
+    &App::sub_exit($html) if ($App::trace);
     $html;
 }
 

Modified: p5ee/trunk/App-Widget/lib/App/Widget/TabbedSelector.pm
==============================================================================
--- p5ee/trunk/App-Widget/lib/App/Widget/TabbedSelector.pm      (original)
+++ p5ee/trunk/App-Widget/lib/App/Widget/TabbedSelector.pm      Wed Feb 17 
09:54:36 2010
@@ -38,11 +38,20 @@
 ######################################################################
 
 sub _init {
+    &App::sub_entry if ($App::trace);
     my $self = shift;
     $self->SUPER::_init(@_);
     if (! $self->{selected}) {
-        $self->select_first();
+        my $context = $self->{context};
+        my $screen = $context->so_get("default","screen");
+        if ($screen) {
+            $self->select("wname", $screen);
+        }
+        else {
+            $self->select_first();
+        }
     }
+    &App::sub_exit() if ($App::trace);
 }
 
 sub select {

Reply via email to