KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > mail > gui > util > PGPPassphraseDialog


1 //The contents of this file are subject to the Mozilla Public License Version 1.1
2
//(the "License"); you may not use this file except in compliance with the
3
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
4
//
5
//Software distributed under the License is distributed on an "AS IS" basis,
6
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
7
//for the specific language governing rights and
8
//limitations under the License.
9
//
10
//The Original Code is "The Columba Project"
11
//
12
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14
//
15
//All Rights Reserved.
16
package org.columba.mail.gui.util;
17
18 import java.awt.BorderLayout JavaDoc;
19 import java.awt.GridBagConstraints JavaDoc;
20 import java.awt.GridBagLayout JavaDoc;
21 import java.awt.GridLayout JavaDoc;
22 import java.awt.Insets JavaDoc;
23 import java.awt.event.ActionEvent JavaDoc;
24 import java.awt.event.ActionListener JavaDoc;
25 import java.awt.event.KeyEvent JavaDoc;
26 import java.text.MessageFormat JavaDoc;
27
28 import javax.swing.BorderFactory JavaDoc;
29 import javax.swing.JButton JavaDoc;
30 import javax.swing.JCheckBox JavaDoc;
31 import javax.swing.JComponent JavaDoc;
32 import javax.swing.JDialog JavaDoc;
33 import javax.swing.JLabel JavaDoc;
34 import javax.swing.JPanel JavaDoc;
35 import javax.swing.JPasswordField JavaDoc;
36 import javax.swing.KeyStroke JavaDoc;
37
38 import org.columba.core.gui.base.ButtonWithMnemonic;
39 import org.columba.core.gui.frame.FrameManager;
40 import org.columba.core.resourceloader.ImageLoader;
41 import org.columba.mail.util.MailResourceLoader;
42
43 public class PGPPassphraseDialog implements ActionListener JavaDoc {
44     private char[] password;
45
46     // private JFrame frame;
47
private JDialog JavaDoc dialog;
48
49     private boolean bool = false;
50
51     private JPasswordField JavaDoc passwordField;
52
53     // private JTextField loginTextField;
54
private JCheckBox JavaDoc checkbox;
55
56     private boolean save;
57
58     private JButton JavaDoc okButton;
59
60     private JButton JavaDoc cancelButton;
61
62     private JButton JavaDoc helpButton;
63
64     // private JComboBox loginMethodComboBox;
65
// String loginMethod;
66
public PGPPassphraseDialog() {
67     }
68
69     protected JPanel JavaDoc createButtonPanel() {
70         JPanel JavaDoc bottom = new JPanel JavaDoc();
71         bottom.setLayout(new BorderLayout JavaDoc());
72
73         // bottom.setLayout( new BoxLayout( bottom, BoxLayout.X_AXIS ) );
74
bottom.setBorder(BorderFactory.createEmptyBorder(17, 12, 11, 11));
75
76         // bottom.add( Box.createHorizontalStrut());
77
cancelButton = new ButtonWithMnemonic(MailResourceLoader.getString(
78                 "global", "cancel"));
79
80         //$NON-NLS-1$ //$NON-NLS-2$
81
cancelButton.addActionListener(this);
82         cancelButton.setActionCommand("CANCEL"); //$NON-NLS-1$
83

84         okButton = new ButtonWithMnemonic(MailResourceLoader.getString(
85                 "global", "ok"));
86
87         //$NON-NLS-1$ //$NON-NLS-2$
88
okButton.addActionListener(this);
89         okButton.setActionCommand("OK"); //$NON-NLS-1$
90
okButton.setDefaultCapable(true);
91         dialog.getRootPane().setDefaultButton(okButton);
92
93         helpButton = new ButtonWithMnemonic(MailResourceLoader.getString(
94                 "global", "help"));
95
96         //$NON-NLS-1$ //$NON-NLS-2$
97
JPanel JavaDoc buttonPanel = new JPanel JavaDoc();
98         buttonPanel.setLayout(new GridLayout JavaDoc(1, 3, 5, 0));
99         buttonPanel.add(okButton);
100         buttonPanel.add(cancelButton);
101         buttonPanel.add(helpButton);
102
103         // bottom.add( Box.createHorizontalGlue() );
104
bottom.add(buttonPanel, BorderLayout.EAST);
105
106         return bottom;
107     }
108
109     public void showDialog(String JavaDoc userID, String JavaDoc password, boolean save) {
110
111         // JButton[] buttons = new JButton[2];
112
JLabel JavaDoc hostLabel = new JLabel JavaDoc(MessageFormat.format(MailResourceLoader
113                 .getString("dialog", "password", "enter_passphrase"),
114                 new Object JavaDoc[] { userID }));
115
116         passwordField = new JPasswordField JavaDoc(password, 40);
117
118         checkbox = new JCheckBox JavaDoc(MailResourceLoader.getString("dialog",
119                 "password", "save_passphrase"));
120         checkbox.setSelected(save);
121
122         dialog = new JDialog JavaDoc(FrameManager.getInstance().getActiveFrame(), true);
123         dialog.setTitle(MailResourceLoader.getString("dialog", "password",
124                 "dialog_title_passphrase"));
125
126         JPanel JavaDoc centerPanel = new JPanel JavaDoc();
127         centerPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
128
129         dialog.getContentPane().add(centerPanel, BorderLayout.CENTER);
130
131         GridBagLayout JavaDoc mainLayout = new GridBagLayout JavaDoc();
132         centerPanel.setLayout(mainLayout);
133
134         GridBagConstraints JavaDoc mainConstraints = new GridBagConstraints JavaDoc();
135
136         JLabel JavaDoc iconLabel = new JLabel JavaDoc(ImageLoader
137                 .getMiscIcon("signature-nokey.png"));
138         mainConstraints.anchor = GridBagConstraints.NORTHWEST;
139         mainConstraints.weightx = 1.0;
140         mainConstraints.gridwidth = GridBagConstraints.RELATIVE;
141         mainConstraints.fill = GridBagConstraints.HORIZONTAL;
142         mainLayout.setConstraints(iconLabel, mainConstraints);
143         centerPanel.add(iconLabel);
144
145         mainConstraints.gridwidth = GridBagConstraints.REMAINDER;
146         mainConstraints.anchor = GridBagConstraints.WEST;
147         mainConstraints.insets = new Insets JavaDoc(0, 5, 0, 0);
148         mainLayout.setConstraints(hostLabel, mainConstraints);
149         centerPanel.add(hostLabel);
150
151         mainConstraints.insets = new Insets JavaDoc(5, 5, 0, 0);
152         mainLayout.setConstraints(passwordField, mainConstraints);
153         centerPanel.add(passwordField);
154
155         mainConstraints.insets = new Insets JavaDoc(5, 5, 0, 0);
156         mainLayout.setConstraints(checkbox, mainConstraints);
157         centerPanel.add(checkbox);
158
159         JPanel JavaDoc bottomPanel = new JPanel JavaDoc();
160         bottomPanel.setLayout(new BorderLayout JavaDoc());
161
162         JPanel JavaDoc buttonPanel = createButtonPanel();
163         bottomPanel.add(buttonPanel, BorderLayout.CENTER);
164
165         dialog.getContentPane().add(bottomPanel, BorderLayout.SOUTH);
166         dialog.getRootPane().setDefaultButton(okButton);
167         dialog.getRootPane().registerKeyboardAction(this, "CANCEL",
168                 KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
169                 JComponent.WHEN_IN_FOCUSED_WINDOW);
170         dialog.pack();
171         dialog.setLocationRelativeTo(null);
172         dialog.setVisible(true);
173         dialog.requestFocus();
174         passwordField.requestFocus();
175     }
176
177     public char[] getPassword() {
178         return password;
179     }
180
181     public boolean success() {
182         return bool;
183     }
184
185     public boolean getSave() {
186         return save;
187     }
188
189     public void actionPerformed(ActionEvent JavaDoc e) {
190         String JavaDoc action = e.getActionCommand();
191
192         if (action.equals("OK")) {
193             password = passwordField.getPassword();
194
195             // user = loginTextField.getText();
196
save = checkbox.isSelected();
197
198             // loginMethod = (String) loginMethodComboBox.getSelectedItem();
199
bool = true;
200             dialog.dispose();
201         } else if (action.equals("CANCEL")) {
202             bool = false;
203             dialog.dispose();
204         }
205     }
206 }
207
Popular Tags