package ilarkesto.ui.swing; import ilarkesto.auth.LoginData; import ilarkesto.swing.PanelBuilder; import java.awt.event.ActionListener; import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.JPasswordField; import javax.swing.JTextField; public class LoginComponent extends AComponent { private JTextField loginField; private JPasswordField passwordField; private JCheckBox savePasswordCheckbox; // --- dependencies --- private ActionListener loginActionListener; private LoginData loginData; public void setLoginActionListener(ActionListener loginActionListener) { this.loginActionListener = loginActionListener; } public void setInitialLoginData(LoginData loginData) { this.loginData = loginData; } // --- --- @Override protected void initializeControls() { loginField = new JTextField(15); if (loginActionListener != null) loginField.addActionListener(loginActionListener); passwordField = new JPasswordField(15); if (loginActionListener != null) passwordField.addActionListener(loginActionListener); savePasswordCheckbox = new JCheckBox(); savePasswordCheckbox.setSelected(false); savePasswordCheckbox.setText(string("savePasswordCheckbox.text")); } @Override protected JComponent createComponent() { PanelBuilder fields = new PanelBuilder(); fields.setDefaultPadding(2, 2, 5, 5); fields.addEmpty().setWeightY(1000); fields.nl(); fields.add(string("loginField.label")).setAnchorToEast(); fields.add(loginField).setFillToBoth(); fields.nl(); fields.add(string("passwordField.label")).setAnchorToEast().setWeightY(20); fields.add(passwordField).setFillToBoth(); fields.nl(); fields.add(""); fields.add(savePasswordCheckbox).setAnchorToWest(); fields.nl(); fields.addEmpty().setWeightY(1000); return fields.toPanel(); } @Override protected void updateControls() { if (loginData != null) { loginField.setText(loginData.getLogin()); passwordField.setText(loginData.getPassword()); savePasswordCheckbox.setSelected(loginData.isSavePassword()); } } public LoginData getLoginData() { return new LoginData(loginField.getText(), new String(passwordField.getPassword()), savePasswordCheckbox .isSelected()); } }