X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fgui%2FPreferencesPage.java;h=251358246611de90cbf0fea57aed8d6260b25db3;hb=6363a6f5355700aea01514c2558f670470dcda82;hp=22b478a15515daa120e2088bb251acd65d227fb6;hpb=c00ddf5d52a5ce4631d8fe7a5d229003e75808b2;p=jSite.git diff --git a/src/de/todesbaum/jsite/gui/PreferencesPage.java b/src/de/todesbaum/jsite/gui/PreferencesPage.java index 22b478a..2513582 100644 --- a/src/de/todesbaum/jsite/gui/PreferencesPage.java +++ b/src/de/todesbaum/jsite/gui/PreferencesPage.java @@ -29,6 +29,7 @@ import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ButtonGroup; import javax.swing.JButton; +import javax.swing.JFileChooser; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; @@ -61,6 +62,12 @@ public class PreferencesPage extends TWizardPage { /** The temp directory. */ private String tempDirectory; + /** The “default” button. */ + private JRadioButton defaultTempDirectory; + + /** The “custom” button. */ + private JRadioButton customTempDirectory; + /** * Creates a new “preferences” page. * @@ -108,6 +115,13 @@ public class PreferencesPage extends TWizardPage { */ public void setTempDirectory(String tempDirectory) { this.tempDirectory = tempDirectory; + tempDirectoryTextField.setText((tempDirectory != null) ? tempDirectory : ""); + if (tempDirectory != null) { + customTempDirectory.setSelected(true); + chooseTempDirectoryAction.setEnabled(true); + } else { + defaultTempDirectory.setSelected(true); + } } // @@ -184,10 +198,10 @@ public class PreferencesPage extends TWizardPage { final JLabel tempDirectoryLabel = new JLabel("" + I18n.getMessage("jsite.preferences.temp-directory") + ""); tempDirectoryPanel.add(tempDirectoryLabel, new GridBagConstraints(0, 0, 3, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); - final JRadioButton defaultTempDirectory = new JRadioButton(selectDefaultTempDirectoryAction); + defaultTempDirectory = new JRadioButton(selectDefaultTempDirectoryAction); tempDirectoryPanel.add(defaultTempDirectory, new GridBagConstraints(0, 1, 3, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 18, 0, 0), 0, 0)); - final JRadioButton customTempDirectory = new JRadioButton(selectCustomTempDirectoryAction); + customTempDirectory = new JRadioButton(selectCustomTempDirectoryAction); tempDirectoryPanel.add(customTempDirectory, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 18, 0, 0), 0, 0)); ButtonGroup tempDirectoryButtonGroup = new ButtonGroup(); @@ -202,6 +216,7 @@ public class PreferencesPage extends TWizardPage { } else { defaultTempDirectory.setSelected(true); } + chooseTempDirectoryAction.setEnabled(tempDirectory != null); tempDirectoryPanel.add(tempDirectoryTextField, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 6, 0, 0), 0, 0)); JButton chooseButton = new JButton(chooseTempDirectoryAction); @@ -227,6 +242,7 @@ public class PreferencesPage extends TWizardPage { private void selectDefaultTempDirectory() { tempDirectoryTextField.setEnabled(false); chooseTempDirectoryAction.setEnabled(false); + tempDirectory = null; } /** @@ -235,13 +251,26 @@ public class PreferencesPage extends TWizardPage { private void selectCustomTempDirectory() { tempDirectoryTextField.setEnabled(true); chooseTempDirectoryAction.setEnabled(true); + if (tempDirectoryTextField.getText().length() == 0) { + chooseTempDirectory(); + if (tempDirectoryTextField.getText().length() == 0) { + defaultTempDirectory.setSelected(true); + } + } } /** * Lets the user choose a new temp directory. */ private void chooseTempDirectory() { - /* TODO */ + JFileChooser fileChooser = new JFileChooser(tempDirectory); + fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + int returnValue = fileChooser.showDialog(wizard, I18n.getMessage("jsite.preferences.temp-directory.choose.approve")); + if (returnValue == JFileChooser.CANCEL_OPTION) { + return; + } + tempDirectory = fileChooser.getSelectedFile().getPath(); + tempDirectoryTextField.setText(tempDirectory); } }