Implement choosing of directory.
[jSite.git] / src / de / todesbaum / jsite / gui / PreferencesPage.java
index 03910eb..513c23f 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;
@@ -195,6 +196,14 @@ public class PreferencesPage extends TWizardPage {
                customTempDirectory.getModel().setGroup(tempDirectoryButtonGroup);
 
                tempDirectoryTextField = new JTextField();
+               tempDirectoryTextField.setEditable(false);
+               if (tempDirectory != null) {
+                       tempDirectoryTextField.setText(tempDirectory);
+                       customTempDirectory.setSelected(true);
+               } 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);
@@ -234,7 +243,14 @@ public class PreferencesPage extends TWizardPage {
         * 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);
        }
 
 }