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;
/** The temp directory. */
private String tempDirectory;
+ /** The “default” button. */
+ private JRadioButton defaultTempDirectory;
+
+ /** The “custom” button. */
+ private JRadioButton customTempDirectory;
+
/**
* Creates a new “preferences” page.
*
/**
* {@inheritDoc}
*/
- @Override
public void run() {
setHeading(I18n.getMessage("jsite.preferences.heading"));
setDescription(I18n.getMessage("jsite.preferences.description"));
*/
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);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void pageAdded(TWizard wizard) {
+ super.pageAdded(wizard);
+ this.wizard.setPreviousName(I18n.getMessage("jsite.menu.nodes.manage-nodes"));
+ this.wizard.setNextName(I18n.getMessage("jsite.wizard.next"));
+ this.wizard.setQuitName(I18n.getMessage("jsite.wizard.quit"));
+ this.wizard.setNextEnabled(false);
}
//
/**
* {@inheritDoc}
*/
- @Override
@SuppressWarnings("synthetic-access")
public void actionPerformed(ActionEvent actionEvent) {
selectDefaultTempDirectory();
/**
* {@inheritDoc}
*/
- @Override
@SuppressWarnings("synthetic-access")
public void actionPerformed(ActionEvent actionEvent) {
selectCustomTempDirectory();
};
chooseTempDirectoryAction = new AbstractAction(I18n.getMessage("jsite.preferences.temp-directory.choose")) {
- @Override
@SuppressWarnings("synthetic-access")
public void actionPerformed(ActionEvent e) {
chooseTempDirectory();
I18nContainer.getInstance().registerRunnable(new Runnable() {
- @Override
@SuppressWarnings("synthetic-access")
public void run() {
selectDefaultTempDirectoryAction.putValue(Action.NAME, I18n.getMessage("jsite.preferences.temp-directory.default"));
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();
} 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);
/**
* {@inheritDoc}
*/
- @Override
public void run() {
tempDirectoryLabel.setText("<html><b>" + I18n.getMessage("jsite.preferences.temp-directory") + "</b></html>");
}
private void selectDefaultTempDirectory() {
tempDirectoryTextField.setEnabled(false);
chooseTempDirectoryAction.setEnabled(false);
+ tempDirectory = null;
}
/**
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);
}
}