1 package com.calipso.reportgenerator.userinterface; 2 3 import com.calipso.reportgenerator.common.InfoException; 4 import com.calipso.reportgenerator.common.ShowExceptionMessageDialog; 5 6 import javax.swing.*; 7 import java.awt.*; 8 import java.awt.event.ActionListener ; 9 import java.awt.event.ActionEvent ; 10 11 14 public class LoginFrame extends JDialog { 15 16 private JPanel mainPanel; 17 private JPanel southPanel; 18 private JPanel centerPanel; 19 private JLabel userNameLabel; 20 private JTextField userNameText; 21 private JLabel passwordLabel; 22 private JPasswordField passwordText; 23 private JButton okButton; 24 private JButton cancelButton; 25 26 private LoginValidator validator; 27 private int loginResult; 28 private boolean cancelled; 29 30 35 public LoginFrame(String defaultUserName, LoginValidator validator) { 36 setModal(true); 37 createControls(); 38 setSize(240, 110); 39 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); 40 setLocation((screenSize.width - 240) / 2, (screenSize.height - 110) / 2); 41 setTitle(com.calipso.reportgenerator.common.LanguageTraslator.traslate("296")); 42 this.validator = validator; 43 loginResult = -1; 44 getUserNameText().setText(defaultUserName); 45 } 46 47 public LoginValidator getValidator() { 48 return validator; 49 } 50 51 public void setValidator(LoginValidator validator) { 52 this.validator = validator; 53 } 54 55 public int getLoginResult() { 56 return loginResult; 57 } 58 59 public void setLoginResult(int loginResult) { 60 this.loginResult = loginResult; 61 } 62 63 private void createControls() { 64 getContentPane().add(createMainPanel()); 65 } 66 67 private Component createMainPanel() { 68 mainPanel = new JPanel(new BorderLayout()); 69 mainPanel.add(createCenterPanel(), BorderLayout.CENTER); 70 mainPanel.add(createSouthPanel(), BorderLayout.SOUTH); 71 return mainPanel; 72 } 73 74 private Component createSouthPanel() { 75 FlowLayout layout = new FlowLayout(FlowLayout.RIGHT); 76 southPanel = new JPanel(layout); 77 okButton = new JButton(com.calipso.reportgenerator.common.LanguageTraslator.traslate("112")); 78 cancelButton = new JButton(com.calipso.reportgenerator.common.LanguageTraslator.traslate("113")); 79 okButton.addActionListener(new ActionListener () { 80 public void actionPerformed(ActionEvent e) { 81 try{ 82 validateLogin(); 83 } catch (Exception er) { 84 ShowExceptionMessageDialog.initExceptionDialogMessage(com.calipso.reportgenerator.common.LanguageTraslator.traslate("295"), er); 85 } 86 setVisible(false); 87 } 88 }); 89 90 cancelButton.addActionListener(new ActionListener () { 91 public void actionPerformed(ActionEvent e) { 92 cancelLogin(); 93 } 94 }); 95 96 southPanel.add(okButton); 97 southPanel.add(cancelButton); 98 return southPanel; 99 } 100 101 private void cancelLogin() { 102 loginResult = -1; 103 cancelled = true; 104 setVisible(false); 105 } 106 107 private void validateLogin() throws InfoException { 108 loginResult = getValidator().validate(getUserName(), getPassword()); 109 } 110 111 private String getPassword() { 112 return new String (passwordText.getPassword()); 113 } 114 115 private String getUserName() { 116 return userNameText.getText(); 117 } 118 119 private Component createCenterPanel() { 120 centerPanel = new JPanel(new GridLayout(2, 2)); 121 userNameLabel = new JLabel(com.calipso.reportgenerator.common.LanguageTraslator.traslate("297")); 122 userNameText = new JTextField(); 123 passwordLabel = new JLabel(com.calipso.reportgenerator.common.LanguageTraslator.traslate("298")); 124 passwordText = new JPasswordField(); 125 126 centerPanel.add(userNameLabel); 127 centerPanel.add(userNameText); 128 centerPanel.add(passwordLabel); 129 centerPanel.add(passwordText); 130 131 return centerPanel; 132 } 133 134 public JTextField getUserNameText() { 135 return userNameText; 136 } 137 138 public boolean login() { 139 setVisible(true); 140 return connected(); 141 } 142 143 private boolean connected() { 144 return getValidator().getConnected(); 145 } 146 147 private boolean cancelled() { 148 return cancelled; 149 } 150 151 public static void login(ReportLoginValidator validator) throws InfoException { 152 login("", validator); 153 } 154 155 public static void login(String defaultUserName, LoginValidator validator) throws InfoException { 156 LoginFrame loginFrame = new LoginFrame(defaultUserName, validator); 157 if (!loginFrame.login()) { 158 if (loginFrame.cancelled()) { 159 throw new InfoException(com.calipso.reportgenerator.common.LanguageTraslator.traslate("299")); 160 } 161 else { 162 throw new InfoException(com.calipso.reportgenerator.common.LanguageTraslator.traslate("300")); 163 } 164 } 165 } 166 } 167 | Popular Tags |