Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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 }