/* 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
}