package comeon.ui.preferences.wikis;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import comeon.ui.UI;
import comeon.ui.preferences.SubPanel;
import org.netbeans.validation.api.builtin.stringvalidation.StringValidators;
import org.netbeans.validation.api.ui.ValidationGroup;
import javax.swing.*;
@Singleton
public final class WikiSubPanel extends SubPanel<WikiModel> {
private static final long serialVersionUID = 1L;
private final JTextField nameField;
private final JTextField urlField;
private final JTextField displayNameField;
private final JTextField loginField;
private final JPasswordField passwordField;
@Inject
public WikiSubPanel(final WikiSubController subController) {
this.nameField = new JTextField(COLUMNS);
this.nameField.setName(UI.BUNDLE.getString("prefs.wikis.name"));
this.nameField.requestFocusInWindow();
this.urlField = new JTextField(COLUMNS);
this.urlField.setName(UI.BUNDLE.getString("prefs.wikis.url"));
this.displayNameField = new JTextField(COLUMNS);
this.displayNameField.setName(UI.BUNDLE.getString("prefs.wikis.displayName"));
this.loginField = new JTextField(COLUMNS);
this.loginField.setName(UI.BUNDLE.getString("prefs.wikis.login"));
this.passwordField = new JPasswordField(COLUMNS);
this.passwordField.setName(UI.BUNDLE.getString("prefs.wikis.password"));
this.layoutComponents();
subController.setView(this);
}
JTextField getNameField() {
return nameField;
}
JTextField getUrlField() {
return urlField;
}
JTextField getDisplayNameField() {
return displayNameField;
}
JTextField getLoginField() {
return loginField;
}
JPasswordField getPasswordField() {
return passwordField;
}
@Override
protected void doLayoutComponents(final GroupLayout layout) {
final JLabel[] labels = new JLabel[]{
new AssociatedLabel("prefs.wikis.name", nameField),
new AssociatedLabel("prefs.wikis.url", urlField),
new AssociatedLabel("prefs.wikis.displayName", displayNameField),
new AssociatedLabel("prefs.wikis.login", loginField),
new AssociatedLabel("prefs.wikis.password", passwordField)
};
layout.setVerticalGroup(
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup().addComponent(labels[0]).addComponent(nameField))
.addGroup(layout.createParallelGroup().addComponent(labels[1]).addComponent(urlField))
.addGroup(layout.createParallelGroup().addComponent(labels[2]).addComponent(displayNameField))
.addGroup(layout.createParallelGroup().addComponent(labels[3]).addComponent(loginField))
.addGroup(layout.createParallelGroup().addComponent(labels[4]).addComponent(passwordField))
);
layout.setHorizontalGroup(
layout.createSequentialGroup()
.addGroup(layout.createParallelGroup().addComponent(labels[0]).addComponent(labels[1]).addComponent(labels[2]).addComponent(labels[3]).addComponent(labels[4]))
.addGroup(layout.createParallelGroup().addComponent(nameField).addComponent(urlField).addComponent(displayNameField).addComponent(loginField).addComponent(passwordField))
);
}
@Override
protected void doAttach(final ValidationGroup validationGroup) {
validationGroup.add(nameField, StringValidators.REQUIRE_NON_EMPTY_STRING);
validationGroup.add(urlField, StringValidators.URL_MUST_BE_VALID);
validationGroup.add(displayNameField, StringValidators.REQUIRE_NON_EMPTY_STRING);
validationGroup.add(loginField, StringValidators.REQUIRE_NON_EMPTY_STRING);
validationGroup.add(passwordField, StringValidators.REQUIRE_NON_EMPTY_STRING);
}
}