/* Copyright 2004-2014 Jim Voris * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.qumasoft.guitools.qwin.dialog; import javax.swing.JOptionPane; /** * Change user password dialog. * @author Jim Voris */ public final class ChangeUserPasswordDialog extends AbstractQWinCommandDialog { private static final long serialVersionUID = -7952040217903722058L; private boolean isOKFlag; private final String serverName; private final String userName; /** * Create a change user password dialog. * @param parent the parent frame. * @param modal is this modal. * @param server the server name. * @param user the user name. */ public ChangeUserPasswordDialog(java.awt.Frame parent, boolean modal, String server, String user) { super(parent, modal); serverName = server; userName = user; initComponents(); populateComponents(); setFont(); center(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { selectServerLabel = new javax.swing.JLabel(); userNameLabel = new javax.swing.JLabel(); userNameTextField = new javax.swing.JTextField(); oldPasswordLabel = new javax.swing.JLabel(); passwordField = new javax.swing.JPasswordField(); newPasswordLabel = new javax.swing.JLabel(); newPasswordField = new javax.swing.JPasswordField(); confirmNewPasswordLabel = new javax.swing.JLabel(); confirmPasswordField = new javax.swing.JPasswordField(); okButton = new javax.swing.JButton(); cancelButton = new javax.swing.JButton(); serverNameTextField = new javax.swing.JTextField(); setTitle("Change user password"); setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N setResizable(false); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { closeDialog(evt); } }); selectServerLabel.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N selectServerLabel.setText("Server:"); selectServerLabel.setToolTipText(""); userNameLabel.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N userNameLabel.setText("User Name:"); userNameTextField.setEditable(false); userNameTextField.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N userNameTextField.setToolTipText("User name on the server"); oldPasswordLabel.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N oldPasswordLabel.setText("Old Password:"); passwordField.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N passwordField.setToolTipText("Enter your current password"); newPasswordLabel.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N newPasswordLabel.setText("New Password:"); newPasswordField.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N newPasswordField.setToolTipText("Enter your new password"); confirmNewPasswordLabel.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N confirmNewPasswordLabel.setText("Confirm New Password:"); confirmPasswordField.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N confirmPasswordField.setToolTipText("Confirm your new password"); confirmPasswordField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { m_ConfirmKeyReleased(evt); } }); okButton.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N okButton.setText(" OK "); okButton.setEnabled(false); okButton.setMaximumSize(new java.awt.Dimension(80, 25)); okButton.setMinimumSize(new java.awt.Dimension(80, 25)); okButton.setPreferredSize(new java.awt.Dimension(80, 25)); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okButtonActionPerformed(evt); } }); cancelButton.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N cancelButton.setText("Cancel"); cancelButton.setMaximumSize(new java.awt.Dimension(80, 25)); cancelButton.setMinimumSize(new java.awt.Dimension(80, 25)); cancelButton.setPreferredSize(new java.awt.Dimension(80, 25)); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); serverNameTextField.setEditable(false); serverNameTextField.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N serverNameTextField.setToolTipText("Name of server"); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() .add(12, 12, 12) .add(selectServerLabel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() .add(10, 10, 10) .add(serverNameTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 230, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) .add(layout.createSequentialGroup() .add(20, 20, 20) .add(okButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .add(cancelButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 100, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() .add(12, 12, 12) .add(confirmPasswordField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 230, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))) .add(layout.createSequentialGroup() .add(12, 12, 12) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(userNameLabel) .add(userNameTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 230, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(oldPasswordLabel) .add(passwordField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 230, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(newPasswordLabel) .add(newPasswordField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 230, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(confirmNewPasswordLabel)))) .addContainerGap(14, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .add(12, 12, 12) .add(selectServerLabel) .add(4, 4, 4) .add(serverNameTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(4, 4, 4) .add(userNameLabel) .add(6, 6, 6) .add(userNameTextField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(4, 4, 4) .add(oldPasswordLabel) .add(6, 6, 6) .add(passwordField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(4, 4, 4) .add(newPasswordLabel) .add(6, 6, 6) .add(newPasswordField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(4, 4, 4) .add(confirmNewPasswordLabel) .add(6, 6, 6) .add(confirmPasswordField, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(14, 14, 14) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(okButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(cancelButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) .add(39, 39, 39)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void m_ConfirmKeyReleased(java.awt.event.KeyEvent evt)//GEN-FIRST:event_m_ConfirmKeyReleased {//GEN-HEADEREND:event_m_ConfirmKeyReleased String newPassword = getNewPassword(); String confirmNewPassword = getConfirmNewPassword(); if (newPassword.equals(confirmNewPassword)) { okButton.setEnabled(true); } else { okButton.setEnabled(false); } }//GEN-LAST:event_m_ConfirmKeyReleased private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_cancelButtonActionPerformed {//GEN-HEADEREND:event_cancelButtonActionPerformed isOKFlag = false; closeDialog(null); }//GEN-LAST:event_cancelButtonActionPerformed private void okButtonActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_okButtonActionPerformed {//GEN-HEADEREND:event_okButtonActionPerformed String newPassword = getNewPassword(); String confirmNewPassword = getConfirmNewPassword(); String oldPassword = getOldPassword(); if (oldPassword.length() == 0) { JOptionPane.showMessageDialog(this, "Please enter your current password", "No current password defined", JOptionPane.ERROR_MESSAGE); } else if (newPassword.length() == 0) { JOptionPane.showMessageDialog(this, "Please enter a new password", "No new password defined", JOptionPane.ERROR_MESSAGE); } else if (newPassword.equals(confirmNewPassword)) { isOKFlag = true; closeDialog(null); } else { JOptionPane.showMessageDialog(this, "Please make sure that you typed your new password correctly", "New Password Mismatch", JOptionPane.ERROR_MESSAGE); } }//GEN-LAST:event_okButtonActionPerformed /** Closes the dialog */ private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog setVisible(false); dispose(); }//GEN-LAST:event_closeDialog @Override public void dismissDialog() { cancelButtonActionPerformed(null); } /** * Get the old password. * @return the old password. */ public final String getOldPassword() { return new String(passwordField.getPassword()); } /** * Get the new password. * @return the new password. */ public final String getNewPassword() { return new String(newPasswordField.getPassword()); } private String getConfirmNewPassword() { return new String(confirmPasswordField.getPassword()); } /** * Get the isOK flag. * @return the isOK flag. */ public boolean getIsOK() { return isOKFlag; } /** * Get the server name. * @return the server name. */ public String getServerName() { return serverName; } private void populateComponents() { serverNameTextField.setText(serverName); userNameTextField.setText(userName); } /** * Get the user name. * @return the user name. */ public String getUserName() { return userName; } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton cancelButton; private javax.swing.JLabel confirmNewPasswordLabel; private javax.swing.JPasswordField confirmPasswordField; private javax.swing.JPasswordField newPasswordField; private javax.swing.JLabel newPasswordLabel; private javax.swing.JButton okButton; private javax.swing.JLabel oldPasswordLabel; private javax.swing.JPasswordField passwordField; private javax.swing.JLabel selectServerLabel; private javax.swing.JTextField serverNameTextField; private javax.swing.JLabel userNameLabel; private javax.swing.JTextField userNameTextField; // End of variables declaration//GEN-END:variables }