/*FreeMind - A Program for creating and viewing Mindmaps *Copyright (C) 2000-2001 Joerg Mueller <joergmueller@bigfoot.com> *See COPYING for Details * *This program is free software; you can redistribute it and/or *modify it under the terms of the GNU General Public License *as published by the Free Software Foundation; either version 2 *of the License, or (at your option) any later version. * *This program is distributed in the hope that it will be useful, *but WITHOUT ANY WARRANTY; without even the implied warranty of *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *GNU General Public License for more details. * *You should have received a copy of the GNU General Public License *along with this program; if not, write to the Free Software *Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package freemind.modes.common.dialogs; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import freemind.common.TextTranslator; import freemind.main.Tools; /** */ public class EnterPasswordDialog extends JDialog { public static final int CANCEL = -1; public static final int OK = 1; private int result = CANCEL; private javax.swing.JPanel jContentPane = null; private JLabel jLabel = null; private JLabel jLabel1 = null; private JPasswordField jPasswordField = null; private JPasswordField jPasswordField1 = null; private JLabel jLabel2 = null; private JButton jOKButton = null; private JButton jCancelButton = null; private StringBuffer password = null; private boolean enterTwoPasswords = true; private TextTranslator mTranslator; /** * @deprecated do not use. This is for visual editor only. */ public EnterPasswordDialog() { } /** * This is the default constructor */ public EnterPasswordDialog(JFrame caller, TextTranslator pTranslator, boolean enterTwoPasswords) { super(caller, "", true /* =modal */); this.mTranslator = pTranslator; this.enterTwoPasswords = enterTwoPasswords; initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setTitle(mTranslator .getText("accessories/plugins/EncryptNode.properties_0")); //$NON-NLS-1$ this.setSize(300, 200); this.setContentPane(getJContentPane()); setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { cancelPressed(); } }); Tools.addEscapeActionToDialog(this, new AbstractAction() { public void actionPerformed(ActionEvent pE) { cancelPressed(); } }); } private void close() { this.dispose(); } private void okPressed() { // check if equal: if (!checkEqualAndMinimumSize()) { JOptionPane.showMessageDialog(this, mTranslator .getText("accessories/plugins/EncryptNode.properties_1")); //$NON-NLS-1$ return; } password = new StringBuffer(); password.append(jPasswordField.getPassword()); result = OK; close(); } /** */ private boolean checkEqualAndMinimumSize() { char[] a1 = jPasswordField.getPassword(); if (a1.length < 2) { return false; } if (enterTwoPasswords) { char[] a2 = jPasswordField1.getPassword(); if (a1.length != a2.length) { return false; } for (int i = 0; i < a1.length; i++) { if (a1[i] != a2[i]) { return false; } } } return true; } private void cancelPressed() { password = null; result = CANCEL; close(); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private javax.swing.JPanel getJContentPane() { if (jContentPane == null) { jLabel2 = new JLabel(); jLabel1 = new JLabel(); jLabel = new JLabel(); GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); GridBagConstraints gridBagConstraints6 = new GridBagConstraints(); GridBagConstraints gridBagConstraints7 = new GridBagConstraints(); jContentPane = new javax.swing.JPanel(); jContentPane.setLayout(new GridBagLayout()); gridBagConstraints1.gridx = 0; gridBagConstraints1.gridy = 1; gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints1.insets = new java.awt.Insets(0, 5, 0, 0); jLabel.setText(mTranslator .getText("accessories/plugins/EncryptNode.properties_2")); //$NON-NLS-1$ gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 2; gridBagConstraints2.insets = new java.awt.Insets(0, 5, 0, 0); gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; jLabel1.setText(mTranslator .getText("accessories/plugins/EncryptNode.properties_3")); //$NON-NLS-1$ gridBagConstraints3.gridx = 1; gridBagConstraints3.gridy = 1; gridBagConstraints3.weightx = 1.0; gridBagConstraints3.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints4.gridx = 1; gridBagConstraints4.gridy = 2; gridBagConstraints4.weightx = 1.0; gridBagConstraints4.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints5.gridx = 0; gridBagConstraints5.gridy = 0; gridBagConstraints5.gridwidth = 2; gridBagConstraints5.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints5.anchor = java.awt.GridBagConstraints.CENTER; gridBagConstraints5.insets = new java.awt.Insets(0, 5, 20, 0); jLabel2.setText(mTranslator .getText("accessories/plugins/EncryptNode.properties_4")); //$NON-NLS-1$ jLabel2.setToolTipText(mTranslator .getText("accessories/plugins/EncryptNode.properties_5")); //$NON-NLS-1$ gridBagConstraints6.gridx = 0; gridBagConstraints6.gridy = 3; gridBagConstraints6.insets = new java.awt.Insets(20, 0, 0, 0); gridBagConstraints7.gridx = 1; gridBagConstraints7.gridy = 3; gridBagConstraints7.insets = new java.awt.Insets(20, 0, 0, 0); jContentPane.add(jLabel, gridBagConstraints1); jContentPane.add(getJPasswordField(), gridBagConstraints3); jContentPane.add(jLabel2, gridBagConstraints5); if (enterTwoPasswords) { jContentPane.add(getJPasswordField1(), gridBagConstraints4); jContentPane.add(jLabel1, gridBagConstraints2); } jContentPane.add(getJOKButton(), gridBagConstraints6); jContentPane.add(getJCancelButton(), gridBagConstraints7); getRootPane().setDefaultButton(getJOKButton()); } return jContentPane; } /** * This method initializes jPasswordField * * @return javax.swing.JPasswordField */ private JPasswordField getJPasswordField() { if (jPasswordField == null) { jPasswordField = new JPasswordField(); } return jPasswordField; } /** * This method initializes jPasswordField1 * * @return javax.swing.JPasswordField */ private JPasswordField getJPasswordField1() { if (jPasswordField1 == null) { jPasswordField1 = new JPasswordField(); } return jPasswordField1; } /** * This method initializes jButton * * @return javax.swing.JButton */ private JButton getJOKButton() { if (jOKButton == null) { jOKButton = new JButton(); jOKButton.setAction(new AbstractAction() { public void actionPerformed(ActionEvent e) { okPressed(); } }); jOKButton.setText(mTranslator .getText("accessories/plugins/EncryptNode.properties_6")); //$NON-NLS-1$ } return jOKButton; } /** * This method initializes jButton1 * * @return javax.swing.JButton */ private JButton getJCancelButton() { if (jCancelButton == null) { jCancelButton = new JButton(); jCancelButton.setAction(new AbstractAction() { public void actionPerformed(ActionEvent e) { cancelPressed(); } }); jCancelButton.setText(mTranslator .getText("accessories/plugins/EncryptNode.properties_7")); //$NON-NLS-1$ } return jCancelButton; } /** * @return Returns the result. */ public int getResult() { return result; } /** * @return Returns the password. */ public StringBuffer getPassword() { return password; } }