package de.onyxbits.dummydroid;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
public class CredentialsForm extends AbstractForm implements CaretListener {
/**
*
*/
private static final long serialVersionUID = 1L;
private JTextField username;
private JPasswordField password;
public CredentialsForm(NavigateAction forwardAction, NavigateAction backwardAction) {
super(forwardAction, backwardAction);
username = new JTextField(20);
password = new JPasswordField(20);
JPanel content = new JPanel();
GridBagConstraints gbc = new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.NORTHWEST,
GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 5, 5);
content.setLayout(new GridBagLayout());
content.add(new JLabel(Messages.getString("CredentialsForm.username")), gbc);
gbc.gridx++;
content.add(username, gbc);
gbc.gridx = 0;
gbc.gridy = 1;
content.add(new JLabel(Messages.getString("CredentialsForm.password")), gbc);
gbc.gridx++;
gbc.weightx = 1;
gbc.weighty = 1;
content.add(password, gbc);
content
.setBorder(BorderFactory.createTitledBorder(Messages.getString("CredentialsForm.title")));
// setLayout(new BorderLayout());
add(content);
}
@Override
public void edit(FormData formData) {
super.edit(formData);
username.setText(formData.getUsername());
password.setText(formData.getPassword());
username.removeCaretListener(this);
username.addCaretListener(this);
password.removeCaretListener(this);
password.addCaretListener(this);
stopIfEmpty();
}
@Override
public void commitForm() throws RuntimeException {
formData.setPassword(new String(password.getPassword()));
formData.setUsername(username.getText());
}
private void stopIfEmpty() {
forwardAction
.setEnabled(username.getText().length() > 0 && password.getPassword().length > 0);
}
public void caretUpdate(CaretEvent arg0) {
stopIfEmpty();
}
}