X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fgui%2FConfigurationDialog.java;h=fc93c3b0c6a37351b6d9ab94481886889f848f22;hb=c7561c631f4bbb94ee0ac9047e953ce56f1df8bb;hp=4444868a1adef89b64ab6c611b1f75d464b14d97;hpb=08de64294b855fe7abab3b5520be1b151af7f135;p=jSite2.git
diff --git a/src/net/pterodactylus/jsite/gui/ConfigurationDialog.java b/src/net/pterodactylus/jsite/gui/ConfigurationDialog.java
index 4444868..fc93c3b 100644
--- a/src/net/pterodactylus/jsite/gui/ConfigurationDialog.java
+++ b/src/net/pterodactylus/jsite/gui/ConfigurationDialog.java
@@ -6,6 +6,7 @@ package net.pterodactylus.jsite.gui;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
+import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
@@ -17,12 +18,15 @@ import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JPanel;
+import javax.swing.JSpinner;
import javax.swing.JTabbedPane;
+import javax.swing.SpinnerNumberModel;
import javax.swing.SwingConstants;
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.util.swing.SwingUtils;
/**
@@ -40,7 +44,7 @@ public class ConfigurationDialog extends JDialog implements I18nable {
private I18nAction cancelAction;
/** The âbeautify GUIâ action. */
- private I18nAction beautifyAction;
+ private I18nAction antialiasAction;
/** The âuse custom control fontâ action. */
private I18nAction useCustomControlFontAction;
@@ -48,8 +52,11 @@ public class ConfigurationDialog extends JDialog implements I18nable {
/** The âuse custom user fontâ action. */
private I18nAction useCustomUserFontAction;
+ /** The ârestart requiredâ warning label. */
+ private I18nLabel restartRequiredLabel;
+
/** The âbeautifyâ checkbox. */
- private JCheckBox beautifyCheckBox;
+ private JCheckBox antialiasCheckBox;
/** The âuse customâ fonts checkbox. */
private JCheckBox useCustomControlFontCheckBox;
@@ -57,12 +64,18 @@ public class ConfigurationDialog extends JDialog implements I18nable {
/** The control font list. */
private FontComboBox controlFontList;
+ /** The control font size spinner. */
+ private JSpinner controlFontSizeSpinner;
+
/** The checkbox for âuse same as control fontâ. */
private JCheckBox useCustomUserFontCheckBox;
/** The user font list. */
private FontComboBox userFontList;
+ /** The user font size spinner. */
+ private JSpinner userFontSizeSpinner;
+
/** Whether the dialog was cancelled. */
private boolean cancelled;
@@ -104,22 +117,18 @@ public class ConfigurationDialog extends JDialog implements I18nable {
* @return true
if the checkbox was selected,
* false
otherwise
*/
- public boolean getBeautify() {
- return beautifyCheckBox.isSelected();
+ public boolean isAntialias() {
+ return antialiasCheckBox.isSelected();
}
/**
- * Sets the state of the âbeautifyâ checkbox.
+ * Sets the state of the âantialiasâ checkbox.
*
- * @param beautify
+ * @param antialias
* The state of the checkbox
*/
- public void setBeautify(boolean beautify) {
- beautifyCheckBox.setSelected(beautify);
- useCustomControlFontCheckBox.setEnabled(beautify);
- controlFontList.setEnabled(beautify && useCustomControlFontCheckBox.isSelected());
- useCustomUserFontCheckBox.setEnabled(beautify);
- userFontList.setEnabled(beautify && useCustomUserFontCheckBox.isSelected());
+ public void setAntialias(boolean antialias) {
+ antialiasCheckBox.setSelected(antialias);
}
/**
@@ -129,7 +138,7 @@ public class ConfigurationDialog extends JDialog implements I18nable {
* font is to be used
*/
public String getControlFont() {
- return (String) ((beautifyCheckBox.isSelected() && useCustomControlFontCheckBox.isSelected()) ? controlFontList.getSelectedItem() : null);
+ return useCustomControlFontCheckBox.isSelected() ? controlFontList.getSelectedItem() + "-" + controlFontSizeSpinner.getValue() : null;
}
/**
@@ -140,9 +149,18 @@ public class ConfigurationDialog extends JDialog implements I18nable {
* font is to be used
*/
public void setControlFont(String controlFont) {
- useCustomControlFontCheckBox.setSelected(controlFont != null);
- controlFontList.setEnabled(beautifyCheckBox.isSelected() && (controlFont != null));
- controlFontList.setSelectedItem(controlFont);
+ boolean hasControlFont = controlFont != null;
+ useCustomControlFontCheckBox.setSelected(hasControlFont);
+ controlFontList.setEnabled(hasControlFont);
+ controlFontSizeSpinner.setEnabled(hasControlFont);
+ if (hasControlFont) {
+ Font font = Font.decode(controlFont);
+ controlFontSizeSpinner.setValue(font.getSize());
+ controlFontList.setSelectedItem(font.getName());
+ } else {
+ controlFontSizeSpinner.setValue(12);
+ controlFontList.setSelectedItem(null);
+ }
}
/**
@@ -152,7 +170,7 @@ public class ConfigurationDialog extends JDialog implements I18nable {
* input font is to be used
*/
public String getUserFont() {
- return (String) ((beautifyCheckBox.isSelected() && useCustomUserFontCheckBox.isSelected()) ? userFontList.getSelectedItem() : null);
+ return useCustomUserFontCheckBox.isSelected() ? userFontList.getSelectedItem() + "-" + userFontSizeSpinner.getValue() : null;
}
/**
@@ -163,9 +181,18 @@ public class ConfigurationDialog extends JDialog implements I18nable {
* user input font is to be used
*/
public void setUserFont(String userFont) {
- useCustomUserFontCheckBox.setSelected(userFont != null);
- userFontList.setEnabled(beautifyCheckBox.isSelected() && (userFont != null));
- userFontList.setSelectedItem(userFont);
+ boolean hasUserFont = userFont != null;
+ useCustomUserFontCheckBox.setSelected(hasUserFont);
+ userFontList.setEnabled(hasUserFont);
+ userFontSizeSpinner.setEnabled(hasUserFont);
+ if (hasUserFont) {
+ Font font = Font.decode(userFont);
+ userFontSizeSpinner.setValue(font.getSize());
+ userFontList.setSelectedItem(font.getName());
+ } else {
+ userFontSizeSpinner.setValue(12);
+ userFontList.setSelectedItem(null);
+ }
}
//
@@ -196,34 +223,37 @@ public class ConfigurationDialog extends JDialog implements I18nable {
actionCancel();
}
};
- beautifyAction = new I18nAction("configurationDialog.page.interface.item.beautify") {
+ antialiasAction = new I18nAction("configurationDialog.page.interfaceTweaks.item.antialias") {
/**
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
- @SuppressWarnings("synthetic-access")
public void actionPerformed(ActionEvent actionEvent) {
- setBeautify(beautifyCheckBox.isSelected());
+ /* do nothing. */
}
};
- useCustomControlFontAction = new I18nAction("configurationDialog.page.interface.item.useCustomControlFont") {
+ useCustomControlFontAction = new I18nAction("configurationDialog.page.interfaceTweaks.item.useCustomControlFont") {
/**
* {@inheritDoc}
*/
@SuppressWarnings("synthetic-access")
public void actionPerformed(ActionEvent e) {
- controlFontList.setEnabled(useCustomControlFontCheckBox.isSelected());
+ boolean selected = useCustomControlFontCheckBox.isSelected();
+ controlFontList.setEnabled(selected);
+ controlFontSizeSpinner.setEnabled(selected);
}
};
- useCustomUserFontAction = new I18nAction("configurationDialog.page.interface.item.useCustomUserFont") {
+ useCustomUserFontAction = new I18nAction("configurationDialog.page.interfaceTweaks.item.useCustomUserFont") {
/**
* {@inheritDoc}
*/
@SuppressWarnings("synthetic-access")
public void actionPerformed(ActionEvent e) {
- userFontList.setEnabled(useCustomUserFontCheckBox.isSelected());
+ boolean selected = useCustomUserFontCheckBox.isSelected();
+ userFontList.setEnabled(selected);
+ userFontSizeSpinner.setEnabled(selected);
}
};
}
@@ -239,7 +269,10 @@ public class ConfigurationDialog extends JDialog implements I18nable {
contentPane.add(tabbedPane, BorderLayout.CENTER);
JComponent interfaceConfig = createInterfaceConfig();
- tabbedPane.add("Swing Interface", interfaceConfig);
+ tabbedPane.add(I18n.get("configurationDialog.page.interface.name"), interfaceConfig);
+
+ JComponent interfaceTweaksConfig = createInterfaceTweaksConfig();
+ tabbedPane.add(I18n.get("configurationDialog.page.interfaceTweaks.name"), interfaceTweaksConfig);
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.TRAILING, 12, 12));
contentPane.add(buttonPanel, BorderLayout.PAGE_END);
@@ -253,32 +286,51 @@ public class ConfigurationDialog extends JDialog implements I18nable {
}
/**
- * Creates the panel for the interface configuration.
+ * Creates the interface configuration panel.
*
* @return The interface configuration panel
*/
private JComponent createInterfaceConfig() {
JPanel interfaceConfigPanel = new JPanel(new GridBagLayout());
- interfaceConfigPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
+ return interfaceConfigPanel;
+ }
- beautifyCheckBox = new JCheckBox(beautifyAction);
- interfaceConfigPanel.add(beautifyCheckBox, new GridBagConstraints(0, 0, 2, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
+ /**
+ * Creates the panel for the interface tweaks configuration.
+ *
+ * @return The interface tweaks configuration panel
+ */
+ private JComponent createInterfaceTweaksConfig() {
+ JPanel interfaceTweaksConfigPanel = new JPanel(new GridBagLayout());
+ interfaceTweaksConfigPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
+
+ restartRequiredLabel = new I18nLabel("configurationDialog.page.interfaceTweaks.item.restartRequired");
+ interfaceTweaksConfigPanel.add(restartRequiredLabel, new GridBagConstraints(0, 0, 3, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
+
+ antialiasCheckBox = new JCheckBox(antialiasAction);
+ interfaceTweaksConfigPanel.add(antialiasCheckBox, new GridBagConstraints(0, 1, 3, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(18, 0, 0, 0), 0, 0));
useCustomControlFontCheckBox = new JCheckBox(useCustomControlFontAction);
- interfaceConfigPanel.add(useCustomControlFontCheckBox, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 18, 0, 0), 0, 0));
+ interfaceTweaksConfigPanel.add(useCustomControlFontCheckBox, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 0, 0, 0), 0, 0));
controlFontList = new FontComboBox();
- interfaceConfigPanel.add(controlFontList, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 6, 0, 0), 0, 0));
+ interfaceTweaksConfigPanel.add(controlFontList, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 6, 0, 0), 0, 0));
+
+ controlFontSizeSpinner = new JSpinner(new SpinnerNumberModel(12, 6, 80, 1));
+ interfaceTweaksConfigPanel.add(controlFontSizeSpinner, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 6, 0, 0), 0, 0));
useCustomUserFontCheckBox = new JCheckBox(useCustomUserFontAction);
- interfaceConfigPanel.add(useCustomUserFontCheckBox, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.NONE, new Insets(6, 18, 0, 0), 0, 0));
+ interfaceTweaksConfigPanel.add(useCustomUserFontCheckBox, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.NONE, new Insets(6, 0, 0, 0), 0, 0));
userFontList = new FontComboBox();
- interfaceConfigPanel.add(userFontList, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 6, 0, 0), 0, 0));
+ interfaceTweaksConfigPanel.add(userFontList, new GridBagConstraints(1, 3, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 6, 0, 0), 0, 0));
- interfaceConfigPanel.add(new JPanel(), new GridBagConstraints(0, 3, 2, 1, 1.0, 1.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
+ userFontSizeSpinner = new JSpinner(new SpinnerNumberModel(12, 6, 80, 1));
+ interfaceTweaksConfigPanel.add(userFontSizeSpinner, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 6, 0, 0), 0, 0));
- return interfaceConfigPanel;
+ interfaceTweaksConfigPanel.add(new JPanel(), new GridBagConstraints(0, 4, 3, 1, 1.0, 1.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
+
+ return interfaceTweaksConfigPanel;
}
//
@@ -311,7 +363,10 @@ public class ConfigurationDialog extends JDialog implements I18nable {
public void updateI18n() {
okayAction.updateI18n();
cancelAction.updateI18n();
- beautifyAction.updateI18n();
+ restartRequiredLabel.updateI18n();
+ antialiasAction.updateI18n();
+ useCustomControlFontAction.updateI18n();
+ useCustomUserFontAction.updateI18n();
SwingUtils.repackCentered(this);
}