KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openharmonise > him > authentication > gui > LoginDialog


1 /*
2  * The contents of this file are subject to the
3  * Mozilla Public License Version 1.1 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at http://www.mozilla.org/MPL/
6  *
7  * Software distributed under the License is distributed on an "AS IS"
8  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
9  * See the License for the specific language governing rights and
10  * limitations under the License.
11  *
12  * The Initial Developer of the Original Code is Simulacra Media Ltd.
13  * Portions created by Simulacra Media Ltd are Copyright (C) Simulacra Media Ltd, 2004.
14  *
15  * All Rights Reserved.
16  *
17  * Contributor(s):
18  */

19 package org.openharmonise.him.authentication.gui;
20
21 import java.awt.BorderLayout JavaDoc;
22 import java.awt.Color JavaDoc;
23 import java.awt.Component JavaDoc;
24 import java.awt.Container JavaDoc;
25 import java.awt.Dialog JavaDoc;
26 import java.awt.Dimension JavaDoc;
27 import java.awt.Font JavaDoc;
28 import java.awt.Frame JavaDoc;
29 import java.awt.GraphicsConfiguration JavaDoc;
30 import java.awt.HeadlessException JavaDoc;
31 import java.awt.LayoutManager JavaDoc;
32 import java.awt.event.ActionEvent JavaDoc;
33 import java.awt.event.ActionListener JavaDoc;
34 import java.awt.event.KeyEvent JavaDoc;
35 import java.awt.event.KeyListener JavaDoc;
36
37 import javax.swing.BorderFactory JavaDoc;
38 import javax.swing.ImageIcon JavaDoc;
39 import javax.swing.JButton JavaDoc;
40 import javax.swing.JDialog JavaDoc;
41 import javax.swing.JFrame JavaDoc;
42 import javax.swing.JLabel JavaDoc;
43 import javax.swing.JPanel JavaDoc;
44 import javax.swing.border.LineBorder JavaDoc;
45 import javax.swing.border.TitledBorder JavaDoc;
46
47 import org.openharmonise.vfs.gui.*;
48
49
50 /**
51  * Dialog to collect login information from the user.
52  *
53  * @author Matthew Large
54  * @version $Revision: 1.1 $
55  *
56  */

57 public class LoginDialog extends JDialog JavaDoc implements KeyListener JavaDoc, LayoutManager JavaDoc, ActionListener JavaDoc {
58
59     /**
60      * Simulacra logo.
61      */

62     private JLabel JavaDoc m_logo = null;
63     
64     /**
65      * Simulacra buildings coporate image.
66      */

67     private JLabel JavaDoc m_logoBuildings = null;
68     
69     /**
70      * Simulacra people coporate image.
71      */

72     private JLabel JavaDoc m_logoPeople = null;
73     
74     /**
75      * Simulacra files coporate image.
76      */

77     private JLabel JavaDoc m_logoFiles = null;
78     
79     /**
80      * Username/password entry panel.
81      */

82     private LoginUsernamePasswordPanel m_entryPanel = null;
83     
84     /**
85      * OK button.
86      */

87     private JButton JavaDoc m_okButton = null;
88     
89     /**
90      * Cancel button.
91      */

92     private JButton JavaDoc m_cancelButton = null;
93     
94     /**
95      * Change password button.
96      */

97     private JButton JavaDoc m_passwordButton = null;
98     
99     /**
100      * true if the change password button was pressed.
101      */

102     private boolean m_bChangePassword = false;
103     
104     /**
105      * Label for message to appear on the dialog.
106      */

107     private JLabel JavaDoc m_Message = null;
108     
109     /**
110      * Main panel.
111      */

112     private JPanel JavaDoc m_mainPanel = null;
113
114     /**
115      * Constructs a new login dialog.
116      *
117      * @param frame Owning frame
118      * @throws HeadlessException
119      */

120     public LoginDialog(Frame JavaDoc frame) throws HeadlessException JavaDoc {
121         super(frame, true);
122         this.setup();
123     }
124     
125     /**
126      * Configures this login dialog.
127      *
128      */

129     private void setup() {
130             
131         this.setResizable(false);
132         
133         m_mainPanel = new JPanel JavaDoc();
134         m_mainPanel.setLayout(this);
135         this.getContentPane().setLayout(new BorderLayout JavaDoc());
136         this.getContentPane().add(m_mainPanel);
137         
138         this.setTitle("Harmonise Information Manager");
139         this.setSize(500,300);
140         m_mainPanel.setBackground(new Color JavaDoc(224,224,224));
141         
142         int x = this.getGraphicsConfiguration().getBounds().width/2-this.getSize().width/2;
143         int y = this.getGraphicsConfiguration().getBounds().height/2-this.getSize().height/2;
144         
145         this.setLocation(x, y);
146         
147         m_logo = new JLabel JavaDoc();
148         m_logo.setToolTipText("Connecting people and information to create knowledge");
149         m_logo.setIcon( IconManager.getInstance().getIcon("login-sim-logo.png") );
150         m_mainPanel.add(m_logo);
151         
152         m_logoBuildings = new JLabel JavaDoc();
153         m_logoBuildings.setToolTipText("Conecting organisations");
154         m_logoBuildings.setIcon( IconManager.getInstance().getIcon("login-sim-buildings.png") );
155         m_mainPanel.add(m_logoBuildings);
156         
157         m_logoPeople = new JLabel JavaDoc();
158         m_logoPeople.setToolTipText("Conecting people");
159         m_logoPeople.setIcon( IconManager.getInstance().getIcon("login-sim-people.png") );
160         m_mainPanel.add(m_logoPeople);
161         
162         m_logoFiles = new JLabel JavaDoc();
163         m_logoFiles.setToolTipText("Conecting information");
164         m_logoFiles.setIcon( IconManager.getInstance().getIcon("login-sim-files.png") );
165         m_mainPanel.add(m_logoFiles);
166         
167         m_entryPanel = new LoginUsernamePasswordPanel(this);
168         String JavaDoc fontName = "Dialog";
169         int fontSize = 11;
170         Font JavaDoc font = new Font JavaDoc(fontName, Font.PLAIN, fontSize);
171         m_entryPanel.setBackground(new Color JavaDoc(224,224,224));
172
173         LineBorder JavaDoc lineBorder = (LineBorder JavaDoc) BorderFactory.createLineBorder(Color.BLACK);
174         TitledBorder JavaDoc border = BorderFactory.createTitledBorder(lineBorder,
175                                     "Enter your log in details",
176                                     TitledBorder.DEFAULT_JUSTIFICATION,
177                                     TitledBorder.DEFAULT_POSITION,
178                                     font,
179                                     Color.BLACK);
180
181         m_entryPanel.setBorder( border );
182         m_mainPanel.add(m_entryPanel);
183         
184         m_okButton = new JButton JavaDoc("OK");
185         m_okButton.setActionCommand("OK");
186         m_okButton.setFont(font);
187         m_okButton.addActionListener(this);
188         m_mainPanel.add(m_okButton);
189         
190         m_cancelButton = new JButton JavaDoc("Cancel");
191         m_cancelButton.setActionCommand("CANCEL");
192         m_cancelButton.setFont(font);
193         m_cancelButton.addActionListener(this);
194         m_mainPanel.add(m_cancelButton);
195         
196         m_passwordButton = new JButton JavaDoc("Change Password...");
197         m_passwordButton.setActionCommand("PASSWORD");
198         m_passwordButton.setFont(font);
199         m_passwordButton.addActionListener(this);
200         m_mainPanel.add(m_passwordButton);
201     }
202     
203     public static void main(String JavaDoc[] args) {
204         JFrame JavaDoc tempFrame = new JFrame JavaDoc();
205         tempFrame.setIconImage( ((ImageIcon JavaDoc)IconManager.getInstance().getIcon("32-sim-logo.gif")).getImage() );
206         LoginDialog login = new LoginDialog(tempFrame);
207         login.show();
208     }
209     
210     /**
211      * Sets the message text to appear on this dialog.
212      *
213      * @param sMessage Message text
214      */

215     public void setMessage(String JavaDoc sMessage) {
216         this.m_Message = new JLabel JavaDoc(sMessage);
217         this.m_mainPanel.add(m_Message);
218         this.setSize( this.getSize().width, this.getSize().height+20 );
219     }
220     
221
222     /**
223      * @param arg0
224      * @throws java.awt.HeadlessException
225      */

226     private LoginDialog(Dialog JavaDoc arg0) throws HeadlessException JavaDoc {
227         super(arg0);
228     }
229
230     /**
231      * @param arg0
232      * @param arg1
233      * @throws java.awt.HeadlessException
234      */

235     private LoginDialog(Dialog JavaDoc arg0, boolean arg1) throws HeadlessException JavaDoc {
236         super(arg0, arg1);
237     }
238
239     /**
240      * @param arg0
241      * @throws java.awt.HeadlessException
242      */

243     private LoginDialog() throws HeadlessException JavaDoc {
244         super();
245     }
246
247     /**
248      * @param arg0
249      * @param arg1
250      * @throws java.awt.HeadlessException
251      */

252     private LoginDialog(Frame JavaDoc arg0, boolean arg1) throws HeadlessException JavaDoc {
253         super(arg0, arg1);
254     }
255
256     /**
257      * @param arg0
258      * @param arg1
259      * @throws java.awt.HeadlessException
260      */

261     private LoginDialog(Dialog JavaDoc arg0, String JavaDoc arg1) throws HeadlessException JavaDoc {
262         super(arg0, arg1);
263     }
264
265     /**
266      * @param arg0
267      * @param arg1
268      * @param arg2
269      * @throws java.awt.HeadlessException
270      */

271     private LoginDialog(Dialog JavaDoc arg0, String JavaDoc arg1, boolean arg2)
272         throws HeadlessException JavaDoc {
273         super(arg0, arg1, arg2);
274     }
275
276     /**
277      * @param arg0
278      * @param arg1
279      * @throws java.awt.HeadlessException
280      */

281     private LoginDialog(Frame JavaDoc arg0, String JavaDoc arg1) throws HeadlessException JavaDoc {
282         super(arg0, arg1);
283     }
284
285     /**
286      * @param arg0
287      * @param arg1
288      * @param arg2
289      * @throws java.awt.HeadlessException
290      */

291     private LoginDialog(Frame JavaDoc arg0, String JavaDoc arg1, boolean arg2)
292         throws HeadlessException JavaDoc {
293         super(arg0, arg1, arg2);
294     }
295
296     /**
297      * @param arg0
298      * @param arg1
299      * @param arg2
300      * @param arg3
301      * @throws java.awt.HeadlessException
302      */

303     private LoginDialog(
304         Dialog JavaDoc arg0,
305         String JavaDoc arg1,
306         boolean arg2,
307         GraphicsConfiguration JavaDoc arg3)
308         throws HeadlessException JavaDoc {
309         super(arg0, arg1, arg2, arg3);
310     }
311
312     /**
313      * @param arg0
314      * @param arg1
315      * @param arg2
316      * @param arg3
317      */

318     private LoginDialog(
319         Frame JavaDoc arg0,
320         String JavaDoc arg1,
321         boolean arg2,
322         GraphicsConfiguration JavaDoc arg3) {
323         super(arg0, arg1, arg2, arg3);
324     }
325
326     /* (non-Javadoc)
327      * @see java.awt.LayoutManager#removeLayoutComponent(java.awt.Component)
328      */

329     public void removeLayoutComponent(Component JavaDoc arg0) {
330
331     }
332
333     /* (non-Javadoc)
334      * @see java.awt.LayoutManager#layoutContainer(java.awt.Container)
335      */

336     public void layoutContainer(Container JavaDoc arg0) {
337         int nHeight = 10;
338         
339         m_logo.setLocation(10,nHeight);
340         m_logo.setSize(new Dimension JavaDoc(200,50));
341
342         m_logoBuildings.setLocation(320,nHeight);
343         m_logoBuildings.setSize(new Dimension JavaDoc(50,50));
344
345         m_logoPeople.setLocation(375,nHeight);
346         m_logoPeople.setSize(new Dimension JavaDoc(50,50));
347
348         m_logoFiles.setLocation(430,nHeight);
349         m_logoFiles.setSize(new Dimension JavaDoc(50,50));
350         
351         nHeight = nHeight + 60;
352         
353         if(this.m_Message!=null) {
354             this.m_Message.setLocation(10, nHeight);
355             this.m_Message.setSize(this.m_Message.getPreferredSize());
356             nHeight = nHeight + 20;
357         }
358         
359         m_entryPanel.setLocation(10, nHeight);
360         m_entryPanel.setSize(new Dimension JavaDoc(470, 150));
361         
362         nHeight = nHeight + 170;
363         
364         m_okButton.setLocation(180, nHeight);
365         m_okButton.setSize(70,20);
366         
367         m_cancelButton.setLocation(260, nHeight);
368         m_cancelButton.setSize(70,20);
369         
370         m_passwordButton.setLocation(340, nHeight);
371         m_passwordButton.setSize(140,20);
372     }
373     
374     /**
375      * Returns the username.
376      *
377      * @return Username
378      */

379     public String JavaDoc getUsername() {
380         return this.m_entryPanel.getUsername();
381     }
382     
383     /**
384      * Sets the username, pre-populates username field.
385      *
386      * @param sUsername Username
387      */

388     public void setUsername(String JavaDoc sUsername) {
389         this.m_entryPanel.setUsername(sUsername);
390     }
391     
392     /**
393      * Returns the password.
394      *
395      * @return Password
396      */

397     public String JavaDoc getPassword() {
398         return this.m_entryPanel.getPassword();
399     }
400     
401     /**
402      * Sets the password, pre-populates the password field.
403      *
404      * @param sPassword Password
405      */

406     public void setPassword(String JavaDoc sPassword) {
407         this.m_entryPanel.setPassword(sPassword);
408     }
409
410     /* (non-Javadoc)
411      * @see java.awt.LayoutManager#addLayoutComponent(java.lang.String, java.awt.Component)
412      */

413     public void addLayoutComponent(String JavaDoc arg0, Component JavaDoc arg1) {
414
415     }
416
417     /* (non-Javadoc)
418      * @see java.awt.LayoutManager#minimumLayoutSize(java.awt.Container)
419      */

420     public Dimension JavaDoc minimumLayoutSize(Container JavaDoc arg0) {
421         return new Dimension JavaDoc(500,250);
422     }
423
424     /* (non-Javadoc)
425      * @see java.awt.LayoutManager#preferredLayoutSize(java.awt.Container)
426      */

427     public Dimension JavaDoc preferredLayoutSize(Container JavaDoc arg0) {
428         return new Dimension JavaDoc(500,250);
429     }
430
431     public boolean changePassword() {
432         return this.m_bChangePassword;
433     }
434
435     /* (non-Javadoc)
436      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
437      */

438     public void actionPerformed(ActionEvent JavaDoc ae) {
439         if(ae.getActionCommand().equals("OK")) {
440             // hide frame
441
this.getOwner().setVisible(false);
442         } else if(ae.getActionCommand().equals("PASSWORD")) {
443             this.getOwner().setVisible(false);
444             this.m_bChangePassword = true;
445
446         } else if(ae.getActionCommand().equals("CANCEL")) {
447             this.setUsername("");
448             this.setPassword("");
449         }
450         this.hide();
451     }
452
453     /* (non-Javadoc)
454      * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
455      */

456     public void keyPressed(KeyEvent JavaDoc ke) {
457         if(ke.getKeyCode()==KeyEvent.VK_ENTER) {
458 // hide frame
459
this.getOwner().setVisible(false);
460             this.hide();
461         }
462     }
463
464     /* (non-Javadoc)
465      * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
466      */

467     public void keyReleased(KeyEvent JavaDoc arg0) {
468     }
469
470     /* (non-Javadoc)
471      * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
472      */

473     public void keyTyped(KeyEvent JavaDoc arg0) {
474     }
475
476 }
477
Popular Tags