package org.ripple.power.ui;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import org.ripple.power.i18n.LangConfig;
import org.ripple.power.ui.view.ABaseDialog;
import org.ripple.power.ui.view.RPLabel;
import org.ripple.power.ui.view.RPTextBox;
import org.ripple.power.utils.StringUtils;
import org.ripple.power.utils.SwingUtils;
public class RPPasswordDialog extends ABaseDialog {
private static final long serialVersionUID = 1L;
private RPCButton _cancelButton;
private RPCButton _okButton;
private RPTextBox _password1Text;
private RPTextBox _password2Text;
private RPLabel _oneLabel;
private RPLabel _twoLabel;
private boolean passwordEntered = false;
public RPPasswordDialog(JFrame owner) {
super(owner, "Please enter the wallet file password", true);
setLayout(new FlowLayout());
setIconImage(UIRes.getIcon());
Dimension dim = new Dimension(390, 180);
setPreferredSize(dim);
setSize(dim);
setResizable(false);
setLocationRelativeTo(null);
initComponents();
}
private void initComponents() {
_oneLabel = new RPLabel();
_twoLabel = new RPLabel();
_password1Text = new RPTextBox();
_password2Text = new RPTextBox();
_cancelButton = new RPCButton();
_okButton = new RPCButton();
getContentPane().setLayout(null);
Font font = UIRes.getFont();
_oneLabel.setFont(font);
_oneLabel.setText(LangConfig.get(this, "wpassword", "Wallet Password"));
getContentPane().add(_oneLabel);
_oneLabel.setBounds(10, 21, 116, 16);
_twoLabel.setFont(font);
_twoLabel.setText(LangConfig.get(this, "rpassword", "Repeat Password"));
getContentPane().add(_twoLabel);
_twoLabel.setBounds(10, 61, 116, 16);
_password1Text.setFont(font); // NOI18N
getContentPane().add(_password1Text);
_password1Text.setBounds(127, 18, 244, 22);
_password2Text.setFont(font); // NOI18N
getContentPane().add(_password2Text);
_password2Text.setBounds(127, 58, 244, 22);
_cancelButton.setText(LangConfig.get(this, "cancel", "Cancel"));
_cancelButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
SwingUtils.close(RPPasswordDialog.this);
}
});
_cancelButton.setFont(font);
getContentPane().add(_cancelButton);
_cancelButton.setBounds(270, 100, 100, 34);
_okButton.setText(LangConfig.get(this, "ok", "OK"));
_okButton.setFont(font);
getContentPane().add(_okButton);
_okButton.setBounds(160, 100, 100, 34);
_okButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
char[] chars = _password1Text.getText().toCharArray();
String pass = new String(chars);
if (chars.length < 8) {
UIRes.showErrorMessage(RPPasswordDialog.this, UIMessage.error,
"Not be less than 8 characters !");
return;
}
if (StringUtils.isAlphabet(pass)) {
UIRes.showErrorMessage(RPPasswordDialog.this,
"Full English is not allowed !", UIMessage.error);
return;
}
if (StringUtils.isNumber(pass)) {
UIRes.showErrorMessage(RPPasswordDialog.this,UIMessage.error,
"Full Numeric is not allowed !");
return;
}
if (!_password1Text.getText().equals(_password2Text.getText())) {
UIRes.showErrorMessage(RPPasswordDialog.this,UIMessage.error,
"Two passwords are not the same !"
);
return;
}
passwordEntered = true;
SwingUtils.close(RPPasswordDialog.this);
}
});
getContentPane().setBackground(UIConfig.dialogbackground);
pack();
}
public boolean wasPasswordEntered() {
return passwordEntered;
}
public char[] getPassword() {
return _password1Text.getText().toCharArray();
}
}