ok.setDefaultCapable(true);
NotifyDescriptor d = new NotifyDescriptor(this,
NbBundle.getMessage(MasterPasswordPanel.class, "MasterPasswordPanel.enter_master_password"),
NotifyDescriptor.OK_CANCEL_OPTION, NotifyDescriptor.PLAIN_MESSAGE,
new Object[] {ok, NotifyDescriptor.CANCEL_OPTION}, ok);
final NotificationLineSupport notification = d.createNotificationLineSupport();
setNewBox.setEnabled(!fresh);
final Runnable update = new Runnable() {
public void run() {
if (masterPasswordField.getPassword().length == 0) {
notification.setInformationMessage(NbBundle.getMessage(MasterPasswordPanel.class, "MasterPasswordPanel.enter_password"));
ok.setEnabled(false);
return;
}
boolean changing = setNewBox.isSelected();
newLabel1.setEnabled(changing);
newField1.setEnabled(changing);
newLabel2.setEnabled(changing);
newField2.setEnabled(changing);
if (changing) {
if (newField1.getPassword().length == 0) {
notification.setInformationMessage(NbBundle.getMessage(MasterPasswordPanel.class, "MasterPasswordPanel.enter_new_password"));
ok.setEnabled(false);
return;
}
// XXX issue warning in case non-ASCII characters encountered
if (!Arrays.equals(newField1.getPassword(), newField2.getPassword())) {
notification.setInformationMessage(NbBundle.getMessage(MasterPasswordPanel.class, "MasterPasswordPanel.password_mismatch"));
ok.setEnabled(false);
return;
}
}
notification.clearMessages();
ok.setEnabled(true);
}
};
DocumentListener listener = new DocumentListener() {
public void insertUpdate(DocumentEvent e) {