diff browser_side/register.py @ 222:759fd7386e1e

browser_side: set the focus to the first field when a tab is selected from the register panel
author souliane <souliane@mailoo.org>
date Sun, 22 Sep 2013 20:52:59 +0200
parents 9827cda1a6b0
children 531b8809d1ab
line wrap: on
line diff
--- a/browser_side/register.py	Sat Sep 21 20:24:36 2013 +0200
+++ b/browser_side/register.py	Sun Sep 22 20:52:59 2013 +0200
@@ -134,6 +134,7 @@
 
         self.right_side.add(login_tab, 'Login')
         self.right_side.add(register_tab, 'Register')
+        self.right_side.addTabListener(self)
         self.right_side.selectTab(0)
         login_tab.setWidth(None)
         register_tab.setWidth(None)
@@ -142,6 +143,15 @@
         self.addFormHandler(self)
         self.setAction('register_api/login')
 
+    def onBeforeTabSelected(self, sender, tabIndex):
+        return True
+
+    def onTabSelected(self, sender, tabIndex):
+        if tabIndex == 0:
+            self.login_box.setFocus(True)
+        elif tabIndex == 1:
+            self.register_login_box.setFocus(True)
+
     def onKeyPress(self, sender, keycode, modifiers):
         if keycode == KEY_ENTER:
             if sender == self.login_box:
@@ -210,13 +220,14 @@
         else:
             Window.alert('Submit error: %s' % result)
 
+
 class RegisterBox(PopupPanel):
 
-    def __init__(self, callback, *args,**kwargs):
-        PopupPanel.__init__(self,*args,**kwargs)
-        _form = RegisterPanel(callback)
-        self.setWidget(_form)
-    
+    def __init__(self, callback, *args, **kwargs):
+        PopupPanel.__init__(self, *args, **kwargs)
+        self._form = RegisterPanel(callback)
+        self.setWidget(self._form)
+
     def onWindowResized(self, width, height):
         super(RegisterBox, self).onWindowResized(width, height)
         self.centerBox()
@@ -224,4 +235,4 @@
     def show(self):
         super(RegisterBox, self).show()
         self.centerBox()
-
+        self._form.login_box.setFocus(True)