KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > calipso > reportgenerator > userinterface > LoginFrame


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 JavaDoc;
9 import java.awt.event.ActionEvent JavaDoc;
10
11 /**
12  * Diálogo para validar el usuario
13  */

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   /**
31    * Inicializa el
32    * @param defaultUserName
33    * @param validator
34    */

35   public LoginFrame(String JavaDoc defaultUserName, LoginValidator validator) {
36     setModal(true);
37     createControls();
38     setSize(240, 110);
39     java.awt.Dimension JavaDoc 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 JavaDoc() {
80       public void actionPerformed(ActionEvent JavaDoc e) {
81         try{
82           validateLogin();
83         } catch (Exception JavaDoc er) {
84           ShowExceptionMessageDialog.initExceptionDialogMessage(com.calipso.reportgenerator.common.LanguageTraslator.traslate("295"), er);
85         }
86         setVisible(false);
87       }
88     });
89
90     cancelButton.addActionListener(new ActionListener JavaDoc() {
91       public void actionPerformed(ActionEvent JavaDoc 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 JavaDoc getPassword() {
112     return new String JavaDoc(passwordText.getPassword());
113   }
114
115   private String JavaDoc 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 JavaDoc 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