Source code: edu/emory/mathcs/util/swing/UserPasswdPanel.java
1 /* ***** BEGIN LICENSE BLOCK *****
2 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3 *
4 * The contents of this file are subject to the Mozilla Public License Version
5 * 1.1 (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
7 * http://www.mozilla.org/MPL/
8 *
9 * Software distributed under the License is distributed on an "AS IS" basis,
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 * for the specific language governing rights and limitations under the
12 * License.
13 *
14 * The Original Code is the Emory Utilities.
15 *
16 * The Initial Developer of the Original Code is
17 * The Distributed Computing Laboratory, Emory University.
18 * Portions created by the Initial Developer are Copyright (C) 2002
19 * the Initial Developer. All Rights Reserved.
20 *
21 * Alternatively, the contents of this file may be used under the terms of
22 * either the GNU General Public License Version 2 or later (the "GPL"), or
23 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
24 * in which case the provisions of the GPL or the LGPL are applicable instead
25 * of those above. If you wish to allow use of your version of this file only
26 * under the terms of either the GPL or the LGPL, and not to allow others to
27 * use your version of this file under the terms of the MPL, indicate your
28 * decision by deleting the provisions above and replace them with the notice
29 * and other provisions required by the GPL or the LGPL. If you do not delete
30 * the provisions above, a recipient may use your version of this file under
31 * the terms of any one of the MPL, the GPL or the LGPL.
32 *
33 * ***** END LICENSE BLOCK ***** */
34
35
36 package edu.emory.mathcs.util.swing;
37
38 import java.awt.*;
39 import javax.swing.*;
40
41 /**
42 * The small dialog allowing the user to enter the username and password.
43 *
44 * @author Dawid Kurzyniec
45 * @version 1.0
46 */
47 public class UserPasswdPanel extends JPanel {
48 GridBagLayout gridBagLayout1 = new GridBagLayout();
49 JTextField usernameTF = new JTextField();
50 JLabel jLabel1 = new JLabel();
51 JLabel jLabel2 = new JLabel();
52 JPanel jPanel1 = new JPanel();
53 JPasswordField passwdTF = new JPasswordField();
54
55 public UserPasswdPanel() {
56 try {
57 jbInit();
58 }
59 catch (Exception e) {
60 e.printStackTrace();
61 }
62 }
63
64 private void jbInit() throws Exception {
65 this.setLayout(gridBagLayout1);
66 jLabel1.setText("Username:");
67 jLabel2.setText("Password:");
68 usernameTF.setText("");
69 this.setBorder(null);
70 passwdTF.setText("");
71 this.add(usernameTF, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0
72 ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(2, 5, 3, 6), 0, 0));
73 this.add(jLabel1, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0
74 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2, 5, 3, 6), 0, 0));
75 this.add(jLabel2, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0
76 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2, 5, 3, 6), 0, 0));
77 this.add(jPanel1, new GridBagConstraints(0, 3, 2, 1, 1.0, 1.0
78 ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
79 this.add(passwdTF, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0
80 ,GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(2, 5, 3, 6), 0, 0));
81 }
82
83 public void initUserLogin(JComponent label, JComponent prompt, String username,
84 boolean mayChangeUsername) {
85 this.add(label, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
86 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2, 5, 8, 6), 0, 0));
87 this.add(prompt, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0
88 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2, 5, 8, 6), 0, 0));
89 usernameTF.setText(username);
90 usernameTF.setEnabled(mayChangeUsername);
91 passwdTF.setText("");
92 }
93
94
95 public String getUsername() {
96 return usernameTF.getText();
97 }
98
99 public char[] getPassword() {
100 return passwdTF.getPassword();
101 }
102
103 public static Object[] askUserAndPassword(Component parent, String title, Object label, Object prompt,
104 String user, boolean mayChangeUsername) {
105 UserPasswdPanel panel = new UserPasswdPanel();
106 if (!(label instanceof JComponent)) {
107 label = new JLabel(label.toString());
108 }
109 if (!(prompt instanceof JComponent)) {
110 prompt = new JLabel(prompt.toString());
111 }
112 panel.initUserLogin((JComponent)label, (JComponent)prompt, user, mayChangeUsername);
113 return askPassword(parent,title, panel);
114 }
115
116
117 private static Object[] askPassword(Component parent, String title, UserPasswdPanel panel) {
118 int option = JOptionPane.showConfirmDialog(parent, panel, title,
119 JOptionPane.OK_CANCEL_OPTION , JOptionPane.QUESTION_MESSAGE);
120 if (option != JOptionPane.OK_OPTION) return null;
121 return new Object[] { panel.getUsername(), panel.getPassword() };
122 }
123 }