+ * Creates the panel containing all preferences.
+ *
+ * @return The preferences panel
+ */
+ private JPanel createPreferencesPanel() {
+ JPanel preferencesPanel = new JPanel(new GridBagLayout());
+ preferencesPanel.setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
+
+ final JLabel tempDirectoryLabel = new JLabel("<html><b>" + I18n.getMessage("jsite.preferences.temp-directory") + "</b></html>");
+ preferencesPanel.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));
+
+ defaultTempDirectory = new JRadioButton(selectDefaultTempDirectoryAction);
+ preferencesPanel.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));
+
+ customTempDirectory = new JRadioButton(selectCustomTempDirectoryAction);
+ preferencesPanel.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();
+ defaultTempDirectory.getModel().setGroup(tempDirectoryButtonGroup);
+ 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);
+ preferencesPanel.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);
+ preferencesPanel.add(chooseButton, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_END, GridBagConstraints.BOTH, new Insets(0, 6, 0, 0), 0, 0));
+
+ final JLabel configurationDirectoryLabel = new JLabel("<html><b>" + I18n.getMessage("jsite.preferences.config-directory") + "</b></html>");
+ preferencesPanel.add(configurationDirectoryLabel, new GridBagConstraints(0, 3, 3, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(12, 0, 0, 0), 0, 0));
+
+ nextToJarFile = new JRadioButton(nextToJarFileAction);
+ preferencesPanel.add(nextToJarFile, new GridBagConstraints(0, 4, 3, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(6, 18, 0, 0), 0, 0));
+
+ homeDirectory = new JRadioButton(homeDirectoryAction);
+ preferencesPanel.add(homeDirectory, new GridBagConstraints(0, 5, 3, 1, 1.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 18, 0, 0), 0, 0));
+
+ ButtonGroup configurationDirectoryButtonGroup = new ButtonGroup();
+ configurationDirectoryButtonGroup.add(nextToJarFile);
+ configurationDirectoryButtonGroup.add(currentDirectory);
+ configurationDirectoryButtonGroup.add(homeDirectory);
+
+ I18nContainer.getInstance().registerRunnable(new Runnable() {
+
+ /**
+ * {@inheritDoc}
+ */
+ public void run() {
+ tempDirectoryLabel.setText("<html><b>" + I18n.getMessage("jsite.preferences.temp-directory") + "</b></html>");
+ configurationDirectoryLabel.setText("<html><b>" + I18n.getMessage("jsite.preferences.config-directory") + "</b></html>");
+ }
+ });
+
+ return preferencesPanel;
+ }
+
+ /**
+ * Activates the default temp directory radio button.
+ */
+ private void selectDefaultTempDirectory() {
+ tempDirectoryTextField.setEnabled(false);
+ chooseTempDirectoryAction.setEnabled(false);
+ tempDirectory = null;
+ }
+
+ /**
+ * Activates the custom temp directory radio button.
+ */
+ private void selectCustomTempDirectory() {
+ tempDirectoryTextField.setEnabled(true);
+ chooseTempDirectoryAction.setEnabled(true);
+ if (tempDirectoryTextField.getText().length() == 0) {
+ chooseTempDirectory();
+ if (tempDirectoryTextField.getText().length() == 0) {
+ defaultTempDirectory.setSelected(true);
+ }
+ }
+ }
+
+ /**