1 29 30 package echo2example.email; 31 32 import nextapp.echo2.app.Button; 33 import nextapp.echo2.app.Column; 34 import nextapp.echo2.app.ContentPane; 35 import nextapp.echo2.app.Extent; 36 import nextapp.echo2.app.Grid; 37 import nextapp.echo2.app.Label; 38 import nextapp.echo2.app.PasswordField; 39 import nextapp.echo2.app.Row; 40 import nextapp.echo2.app.SplitPane; 41 import nextapp.echo2.app.TextField; 42 import nextapp.echo2.app.WindowPane; 43 import nextapp.echo2.app.event.ActionEvent; 44 import nextapp.echo2.app.event.ActionListener; 45 46 49 public class LoginScreen extends ContentPane { 50 51 private static final Extent PX_300 = new Extent(300, Extent.PX); 52 53 private TextField emailAddressField; 54 private PasswordField passwordField; 55 56 59 public LoginScreen() { 60 super(); 61 setStyleName("LoginScreen.ContentPane"); 62 63 Label label; 64 65 Column column = new Column(); 66 column.setStyleName("LoginScreen.Column"); 67 add(column); 68 69 label = new Label(Styles.NEXTAPP_LOG_IMAGE); 70 column.add(label); 71 72 label = new Label(Styles.ECHO2_IMAGE); 73 column.add(label); 74 75 label = new Label(Styles.WEBMAIL_EXAMPLE_IMAGE); 76 column.add(label); 77 78 WindowPane loginWindow = new WindowPane(); 79 loginWindow.setTitle(Messages.getString("LoginScreen.LoginWindowTitle")); 80 loginWindow.setStyleName("LoginScreen.LoginWindow"); 81 loginWindow.setDefaultCloseOperation(WindowPane.DO_NOTHING_ON_CLOSE); 82 add(loginWindow); 83 84 SplitPane splitPane = new SplitPane(SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent(32)); 85 loginWindow.add(splitPane); 86 87 Row controlRow = new Row(); 88 controlRow.setStyleName("ControlPane"); 89 splitPane.add(controlRow); 90 91 Button button = new Button(Messages.getString("LoginScreen.Continue"), Styles.ICON_24_YES); 92 button.setStyleName("ControlPane.Button"); 93 button.addActionListener(new ActionListener() { 94 public void actionPerformed(ActionEvent e) { 95 processLogin(); 96 } 97 }); 98 controlRow.add(button); 99 100 Grid layoutGrid = new Grid(); 101 layoutGrid.setStyleName("LoginScreen.LayoutGrid"); 102 splitPane.add(layoutGrid); 103 104 label = new Label(Messages.getString("LoginScreen.PromptEmailAddress")); 105 label.setStyleName("LoginScreen.Prompt"); 106 layoutGrid.add(label); 107 108 emailAddressField = new TextField(); 109 emailAddressField.setWidth(PX_300); 110 emailAddressField.setStyleName("Default"); 111 emailAddressField.addActionListener(new ActionListener() { 112 public void actionPerformed(ActionEvent e) { 113 EmailApp.getActive().setFocusedComponent(passwordField); 114 } 115 }); 116 layoutGrid.add(emailAddressField); 117 118 label = new Label(Messages.getString("LoginScreen.PromptPassword")); 119 label.setStyleName("LoginScreen.Prompt"); 120 layoutGrid.add(label); 121 122 passwordField = new PasswordField(); 123 passwordField.setWidth(PX_300); 124 passwordField.setStyleName("Default"); 125 layoutGrid.add(passwordField); 126 passwordField.addActionListener(new ActionListener() { 127 public void actionPerformed(ActionEvent e) { 128 processLogin(); 129 } 130 }); 131 132 if (EmailApp.FAUX_MODE) { 133 emailAddressField.setText("joe.smith@test.nextapp.com"); 134 passwordField.setText("Joshua"); 135 } 136 137 EmailApp.getActive().setFocusedComponent(emailAddressField); 138 } 139 140 143 private void processLogin() { 144 if (!EmailApp.getApp().connect(emailAddressField.getText(), passwordField.getText())) { 145 MessageDialog messageDialog = new MessageDialog(Messages.getString("LoginScreen.InvalidLogin.Title"), 146 Messages.getString("LoginScreen.InvalidLogin.Message"), MessageDialog.TYPE_ERROR, MessageDialog.CONTROLS_OK); 147 getApplicationInstance().getDefaultWindow().getContent().add(messageDialog); 148 } 149 } 150 } | Popular Tags |