import java.net.InetAddress;
import java.net.UnknownHostException;
-import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
-import javax.swing.JComponent;
import javax.swing.JDialog;
-import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EtchedBorder;
import net.pterodactylus.jsite.i18n.I18n;
+import net.pterodactylus.jsite.i18n.I18nable;
+import net.pterodactylus.jsite.i18n.gui.I18nAction;
+import net.pterodactylus.jsite.i18n.gui.I18nLabel;
import net.pterodactylus.jsite.main.Version;
import net.pterodactylus.util.swing.SwingUtils;
* @author David ‘Bombe’ Roden <bombe@freenetproject.org>
* @version $Id$
*/
-public class EditNodeDialog extends JDialog {
+public class EditNodeDialog extends JDialog implements I18nable {
/** The user-given name of the node. */
private String name;
private boolean sameMachine;
/** Action of the okay button. */
- private Action okayAction;
+ private I18nAction okayAction;
/** Action of the cancel button. */
- private Action cancelAction;
+ private I18nAction cancelAction;
+
+ /** The name label. */
+ private I18nLabel nameLabel;
/** The name textfield. */
private JTextField nameTextField;
+ /** The hostname label. */
+ private I18nLabel hostnameLabel;
+
/** The hostname textfield. */
private JTextField hostnameTextField;
+ /** The port label. */
+ private I18nLabel portLabel;
+
/** The port textfield. */
private JTextField portTextField;
initActions();
initComponents();
pack();
+ I18n.registerI18nable(this);
SwingUtils.center(this);
}
contentPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), BorderFactory.createEmptyBorder(12, 12, 12, 12)));
nameTextField = new JTextField();
- contentPanel.add(createLabel(I18n.get("editNodeDialog.label.name"), nameTextField), new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
+ contentPanel.add(nameLabel = new I18nLabel("editNodeDialog.label.name", nameTextField), new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
contentPanel.add(nameTextField, new GridBagConstraints(1, 0, 1, 1, 1, 0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(0, 12, 0, 0), 0, 0));
hostnameTextField = new JTextField();
- contentPanel.add(createLabel(I18n.get("editNodeDialog.label.hostname"), hostnameTextField), new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(12, 0, 0, 0), 0, 0));
+ contentPanel.add(hostnameLabel = new I18nLabel("editNodeDialog.label.hostname", hostnameTextField), new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(12, 0, 0, 0), 0, 0));
contentPanel.add(hostnameTextField, new GridBagConstraints(1, 1, 1, 1, 1, 0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(12, 12, 0, 0), 0, 0));
portTextField = new JTextField();
- contentPanel.add(createLabel(I18n.get("editNodeDialog.label.port"), portTextField), new GridBagConstraints(0, 2, 1, 1, 0, 0, GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(12, 0, 0, 0), 0, 0));
+ contentPanel.add(portLabel = new I18nLabel("editNodeDialog.label.port", portTextField), new GridBagConstraints(0, 2, 1, 1, 0, 0, GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(12, 0, 0, 0), 0, 0));
contentPanel.add(portTextField, new GridBagConstraints(1, 2, 1, 1, 1, 0, GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL, new Insets(12, 12, 0, 0), 0, 0));
sameMachineCheckBox = new JCheckBox(new I18nAction("editNodeDialog.checkbox.sameMachine") {
contentPanel.add(sameMachineCheckBox, new GridBagConstraints(0, 3, 2, 1, 1, 1, GridBagConstraints.LINE_START, GridBagConstraints.NONE, new Insets(12, 0, 0, 0), 0, 0));
}
- /**
- * Creates a label whose name and mnemonic are initialized from the given
- * i18n property.
- *
- * @param i18nBasename
- * The i18n property basename of the label
- * @param labelFor
- * The component this label describes
- * @return The created label
- */
- private JLabel createLabel(String i18nBasename, JComponent labelFor) {
- JLabel label = new JLabel(I18n.get(i18nBasename + ".name"));
- label.setDisplayedMnemonic(I18n.getKey(i18nBasename + ".mnemonic"));
- label.setLabelFor(labelFor);
- return label;
- }
-
//
// PRIVATE ACTIONS
//
setVisible(false);
}
+ //
+ // INTERFACE I18nable
+ //
+
+ /**
+ * {@inheritDoc}
+ */
+ public void updateI18n() {
+ okayAction.updateI18n();
+ cancelAction.updateI18n();
+ nameLabel.updateI18n();
+ hostnameLabel.updateI18n();
+ portLabel.updateI18n();
+ setTitle(I18n.get("editNodeDialog.title") + " – jSite " + Version.getVersion());
+ SwingUtils.repackCentered(this);
+ }
+
}