Remove some @Override annotations that clash with Java 1.5’s compiler.
[jSite.git] / src / de / todesbaum / jsite / gui / PreferencesPage.java
index a5fa43a..44c448b 100644 (file)
@@ -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.
         *
@@ -77,7 +84,6 @@ public class PreferencesPage extends TWizardPage {
                        /**
                         * {@inheritDoc}
                         */
-                       @Override
                        public void run() {
                                setHeading(I18n.getMessage("jsite.preferences.heading"));
                                setDescription(I18n.getMessage("jsite.preferences.description"));
@@ -108,6 +114,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);
+               }
        }
 
        //
@@ -132,7 +145,6 @@ public class PreferencesPage extends TWizardPage {
                        /**
                         * {@inheritDoc}
                         */
-                       @Override
                        @SuppressWarnings("synthetic-access")
                        public void actionPerformed(ActionEvent actionEvent) {
                                selectDefaultTempDirectory();
@@ -143,7 +155,6 @@ public class PreferencesPage extends TWizardPage {
                        /**
                         * {@inheritDoc}
                         */
-                       @Override
                        @SuppressWarnings("synthetic-access")
                        public void actionPerformed(ActionEvent actionEvent) {
                                selectCustomTempDirectory();
@@ -151,7 +162,6 @@ public class PreferencesPage extends TWizardPage {
                };
                chooseTempDirectoryAction = new AbstractAction(I18n.getMessage("jsite.preferences.temp-directory.choose")) {
 
-                       @Override
                        @SuppressWarnings("synthetic-access")
                        public void actionPerformed(ActionEvent e) {
                                chooseTempDirectory();
@@ -160,7 +170,6 @@ public class PreferencesPage extends TWizardPage {
 
                I18nContainer.getInstance().registerRunnable(new Runnable() {
 
-                       @Override
                        @SuppressWarnings("synthetic-access")
                        public void run() {
                                selectDefaultTempDirectoryAction.putValue(Action.NAME, I18n.getMessage("jsite.preferences.temp-directory.default"));
@@ -184,10 +193,10 @@ public class PreferencesPage extends TWizardPage {
                final JLabel tempDirectoryLabel = new JLabel("<html><b>" + I18n.getMessage("jsite.preferences.temp-directory") + "</b></html>");
                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();
@@ -213,7 +222,6 @@ public class PreferencesPage extends TWizardPage {
                        /**
                         * {@inheritDoc}
                         */
-                       @Override
                        public void run() {
                                tempDirectoryLabel.setText("<html><b>" + I18n.getMessage("jsite.preferences.temp-directory") + "</b></html>");
                        }
@@ -228,6 +236,7 @@ public class PreferencesPage extends TWizardPage {
        private void selectDefaultTempDirectory() {
                tempDirectoryTextField.setEnabled(false);
                chooseTempDirectoryAction.setEnabled(false);
+               tempDirectory = null;
        }
 
        /**
@@ -236,13 +245,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);
        }
 
 }