import java.awt.BorderLayout;
import java.awt.FlowLayout;
+import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
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;
/**
private I18nAction cancelAction;
/** The “beautify GUI” action. */
- private I18nAction beautifyAction;
+ private I18nAction antialiasAction;
/** The “use custom control font” action. */
private I18nAction useCustomControlFontAction;
/** 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;
/** 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;
* @return <code>true</code> if the checkbox was selected,
* <code>false</code> 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);
}
/**
* 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;
}
/**
* 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);
+ }
}
/**
* 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;
}
/**
* 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);
+ }
}
//
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);
}
};
}
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);
}
/**
- * 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;
}
//
public void updateI18n() {
okayAction.updateI18n();
cancelAction.updateI18n();
- beautifyAction.updateI18n();
+ restartRequiredLabel.updateI18n();
+ antialiasAction.updateI18n();
+ useCustomControlFontAction.updateI18n();
+ useCustomUserFontAction.updateI18n();
SwingUtils.repackCentered(this);
}