/* * Freeplane - mind map editor * Copyright (C) 2008 Joerg Mueller, Daniel Polansky, Christian Foltin, Dimitry Polivaev * * This file is modified by Dimitry Polivaev in 2008. * * 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, see <http://www.gnu.org/licenses/>. */ package org.freeplane.core.ui.components; import java.awt.Frame; 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.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.WindowConstants; import org.freeplane.core.util.TextUtils; /** */ public class EnterPasswordDialog extends JDialog { public static final int CANCEL = -1; public static final int OK = 1; /** * */ private static final long serialVersionUID = 1L; private boolean enterTwoPasswords = true; private JButton jCancelButton = null; private javax.swing.JPanel jContentPane = null; private JLabel jLabel = null; private JLabel jLabel1 = null; private JLabel jLabel2 = null; private JButton jOKButton = null; private JPasswordField jPasswordField = null; private JPasswordField jPasswordField1 = null; private StringBuilder password = null; private int result = EnterPasswordDialog.CANCEL; /** * @deprecated do not use. This is for visual editor only. */ @Deprecated public EnterPasswordDialog() { } /** * This is the default constructor */ public EnterPasswordDialog(final Frame frame, final boolean enterTwoPasswords) { super(frame, "", true /* =modal */); this.enterTwoPasswords = enterTwoPasswords; initialize(); } private void cancelPressed() { password = null; result = EnterPasswordDialog.CANCEL; close(); } /** */ private boolean checkEqualAndMinimumSize() { final char[] a1 = jPasswordField.getPassword(); if (a1.length < 2) { return false; } if (enterTwoPasswords) { final 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 close() { this.dispose(); } /** * This method initializes jButton1 * * @return javax.swing.JButton */ private JButton getJCancelButton() { if (jCancelButton == null) { jCancelButton = new JButton(); jCancelButton.setAction(new AbstractAction() { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(final ActionEvent e) { cancelPressed(); } }); jCancelButton.setText(TextUtils.getText("accessories/plugins/EncryptNode.properties_7")); } return jCancelButton; } /** * 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(); final GridBagConstraints gridBagConstraints1 = new GridBagConstraints(); final GridBagConstraints gridBagConstraints2 = new GridBagConstraints(); final GridBagConstraints gridBagConstraints3 = new GridBagConstraints(); final GridBagConstraints gridBagConstraints4 = new GridBagConstraints(); final GridBagConstraints gridBagConstraints5 = new GridBagConstraints(); final GridBagConstraints gridBagConstraints6 = new GridBagConstraints(); final 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; jLabel.setText(TextUtils.getText("accessories/plugins/EncryptNode.properties_2")); gridBagConstraints2.gridx = 0; gridBagConstraints2.gridy = 2; gridBagConstraints2.fill = java.awt.GridBagConstraints.HORIZONTAL; jLabel1.setText(TextUtils.getText("accessories/plugins/EncryptNode.properties_3")); 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, 0, 20, 0); jLabel2.setText(TextUtils.getText("accessories/plugins/EncryptNode.properties_4")); jLabel2.setToolTipText(TextUtils.getText("accessories/plugins/EncryptNode.properties_5")); 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 jButton * * @return javax.swing.JButton */ private JButton getJOKButton() { if (jOKButton == null) { jOKButton = new JButton(); jOKButton.setAction(new AbstractAction() { /** * */ private static final long serialVersionUID = 1L; public void actionPerformed(final ActionEvent e) { okPressed(); } }); jOKButton.setText(TextUtils.getText("accessories/plugins/EncryptNode.properties_6")); } return jOKButton; } /** * 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; } /** * @return Returns the password. */ public StringBuilder getPassword() { return password; } /** * @return Returns the result. */ public int getResult() { return result; } /** * This method initializes this * * @return void */ private void initialize() { this.setTitle(TextUtils.getText("accessories/plugins/EncryptNode.properties_0")); this.setSize(300, 200); this.setContentPane(getJContentPane()); setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { @Override public void windowClosing(final WindowEvent we) { cancelPressed(); } }); } private void okPressed() { if (!checkEqualAndMinimumSize()) { JOptionPane.showMessageDialog(this, TextUtils.getText("accessories/plugins/EncryptNode.properties_1")); return; } password = new StringBuilder(); password.append(jPasswordField.getPassword()); result = EnterPasswordDialog.OK; close(); } }