LoginDemo: added initial keyboard focus, edit fields respond to return key
authorMatthias Mann
Fri Feb 03 06:35:38 2012 +0100 (3 months ago)
changeset 26042064e048ff4
parent 259 c4b53700f296
child 261 6b3fcd74dffb
LoginDemo: added initial keyboard focus, edit fields respond to return key
src/login/LoginDemo.java
     1.1 --- a/src/login/LoginDemo.java	Sun Jan 22 15:07:37 2012 +0100
     1.2 +++ b/src/login/LoginDemo.java	Fri Feb 03 06:35:38 2012 +0100
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2008-2011, Matthias Mann
     1.6 + * Copyright (c) 2008-2012, Matthias Mann
     1.7   *
     1.8   * All rights reserved.
     1.9   *
    1.10 @@ -32,6 +32,8 @@
    1.11  import de.matthiasmann.twl.Button;
    1.12  import de.matthiasmann.twl.DialogLayout;
    1.13  import de.matthiasmann.twl.EditField;
    1.14 +import de.matthiasmann.twl.EditField.Callback;
    1.15 +import de.matthiasmann.twl.Event;
    1.16  import de.matthiasmann.twl.FPSCounter;
    1.17  import de.matthiasmann.twl.GUI;
    1.18  import de.matthiasmann.twl.Label;
    1.19 @@ -63,6 +65,8 @@
    1.20              LWJGLRenderer renderer = new LWJGLRenderer();
    1.21              GUI gui = new GUI(demo, renderer);
    1.22  
    1.23 +            demo.efName.requestKeyboardFocus();
    1.24 +            
    1.25              ThemeManager theme = ThemeManager.createThemeManager(
    1.26                      LoginDemo.class.getResource("login.xml"), renderer);
    1.27              gui.applyTheme(theme);
    1.28 @@ -97,9 +101,23 @@
    1.29          loginPanel.setTheme("login-panel");
    1.30          
    1.31          efName = new EditField();
    1.32 +        efName.addCallback(new Callback() {
    1.33 +            public void callback(int key) {
    1.34 +                if(key == Event.KEY_RETURN) {
    1.35 +                    efPassword.requestKeyboardFocus();
    1.36 +                }
    1.37 +            }
    1.38 +        });
    1.39          
    1.40          efPassword = new EditField();
    1.41          efPassword.setPasswordMasking(true);
    1.42 +        efPassword.addCallback(new Callback() {
    1.43 +            public void callback(int key) {
    1.44 +                if(key == Event.KEY_RETURN) {
    1.45 +                    emulateLogin();
    1.46 +                }
    1.47 +            }
    1.48 +        });
    1.49          
    1.50          Label lName = new Label("Name");
    1.51          lName.setLabelFor(efName);
    1.52 @@ -155,7 +173,12 @@
    1.53              efPassword.setEnabled(false);
    1.54              btnLogin.setEnabled(false);
    1.55              
    1.56 -            // step 2: start a timer to simulate the process of talking to a remote server
    1.57 +            // step 2: get name & password from UI
    1.58 +            String name = efName.getText();
    1.59 +            String pasword = efPassword.getText();
    1.60 +            System.out.println("Name: " + name + " with a " + pasword.length() + " character password");
    1.61 +            
    1.62 +            // step 3: start a timer to simulate the process of talking to a remote server
    1.63              Timer timer = gui.createTimer();
    1.64              timer.setCallback(new Runnable() {
    1.65                  public void run() {
    1.66 @@ -163,6 +186,7 @@
    1.67                      efName.setEnabled(true);
    1.68                      efPassword.setEnabled(true);
    1.69                      efPassword.setText("");
    1.70 +                    efPassword.requestKeyboardFocus();
    1.71                      btnLogin.setEnabled(true);
    1.72                  }
    1.73              });