import jalview.gui.StructureViewer.ViewerType;
import jalview.io.BackupFilenameParts;
import jalview.io.BackupFiles;
-import jalview.io.BackupFilesPresetEntry;
-import jalview.io.IntKeyStringValueEntry;
import jalview.util.MessageManager;
import jalview.util.Platform;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
-import java.util.Arrays;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
import javax.swing.AbstractCellEditor;
import javax.swing.BorderFactory;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
+import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
* @author $author$
* @version $Revision$
*/
+@SuppressWarnings("serial")
public class GPreferences extends JPanel
{
private static final Font LABEL_FONT = JvSwingUtils.getLabelFont();
protected JComboBox<String> structViewer = new JComboBox<>();
+ protected JTextField structureDimensions = new JTextField();
+
protected JTextField chimeraPath = new JTextField();
protected ButtonGroup mappingMethod = new ButtonGroup();
/*
* Connections tab components
*/
- protected JTable linkUrlTable = new JTable();
+ public JTable linkUrlTable = new JTable();
- protected JButton editLink = new JButton();
+ public JButton editLink = new JButton();
- protected JButton deleteLink = new JButton();
+ public JButton deleteLink = new JButton();
- protected JTextField filterTB = new JTextField();
+ public JTextField filterTB = new JTextField();
protected JButton doReset = new JButton();
protected JPanel presetsPanel = new JPanel();
- protected JLabel presetsComboLabel = new JLabel();
-
- protected JCheckBox customiseCheckbox = new JCheckBox();
-
protected JButton revertButton = new JButton();
- protected JComboBox<Object> backupfilesPresetsCombo = new JComboBox<>();
-
- private int backupfilesPresetsComboLastSelected = 0;
+ protected JComboBox<IntKeyStringValueEntry> backupfilesPresetsCombo = new JComboBox<>();
protected JPanel suffixPanel = new JPanel();
tabbedPane.add(initConnectionsTab(),
MessageManager.getString("label.connections"));
- if (!Platform.isJS())
- {
- tabbedPane.add(initBackupsTab(),
- MessageManager.getString("label.backups"));
- }
+ if (!Platform.isJS())
+ {
+ tabbedPane.add(initBackupsTab(),
+ MessageManager.getString("label.backups"));
+ }
tabbedPane.add(initLinksTab(),
MessageManager.getString("label.urllinks"));
structViewer.addItem(ViewerType.JMOL.name());
structViewer.addItem(ViewerType.CHIMERA.name());
structViewer.addActionListener(new ActionListener()
+
{
@Override
public void actionPerformed(ActionEvent e)
});
structureTab.add(structViewer);
+ // BH 2019.07.12
+ ypos += lineSpacing;
+ JLabel dimLabel = new JLabel();
+ dimLabel.setFont(new java.awt.Font("SansSerif", 0, 11));
+ dimLabel.setHorizontalAlignment(SwingConstants.LEFT);
+ dimLabel.setText(
+ MessageManager.getString("label.structure_dimensions"));
+ dimLabel.setBounds(new Rectangle(10, ypos, 140, height));
+ structureTab.add(dimLabel);
+
+ structureDimensions.setFont(LABEL_FONT);
+ structureDimensions.setBounds(new Rectangle(160, ypos, 120, height));
+ structureTab.add(structureDimensions);
+
ypos += lineSpacing;
JLabel pathLabel = new JLabel();
pathLabel.setFont(new java.awt.Font("SansSerif", 0, 11));
protected void loadLastSavedBackupsOptions()
{
- BackupFilesPresetEntry savedPreset = BackupFilesPresetEntry
- .getSavedBackupEntry();
enableBackupFiles
- .setSelected(Cache.getDefault(BackupFiles.ENABLED,
- !Platform.isJS()));
-
- BackupFilesPresetEntry backupfilesCustomEntry = BackupFilesPresetEntry
- .createBackupFilesPresetEntry(Cache
- .getDefault(BackupFilesPresetEntry.CUSTOMCONFIG, null));
- if (backupfilesCustomEntry == null)
- {
- backupfilesCustomEntry = BackupFilesPresetEntry.backupfilesPresetEntriesValues
- .get(BackupFilesPresetEntry.BACKUPFILESSCHEMEDEFAULT);
- }
- BackupFilesPresetEntry.backupfilesPresetEntriesValues.put(
- BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM,
- backupfilesCustomEntry);
-
+ .setSelected(Cache.getDefault(BackupFiles.ENABLED, !Platform.isJS()));
setComboIntStringKey(backupfilesPresetsCombo,
- Cache.getDefault(BackupFiles.NS + "_PRESET",
- BackupFilesPresetEntry.BACKUPFILESSCHEMEDEFAULT));
-
- backupsSetOptions(savedPreset);
+ Cache.getDefault(BackupFiles.NS + "_PRESET", 1));
+ suffixTemplate.setText(Cache.getDefault(BackupFiles.SUFFIX,
+ ".bak" + BackupFiles.NUM_PLACEHOLDER));
+ suffixDigitsSpinner
+ .setValue(Cache.getDefault(BackupFiles.SUFFIX_DIGITS, 3));
+ suffixReverse.setSelected(
+ Cache.getDefault(BackupFiles.REVERSE_ORDER, false));
+ backupfilesKeepAll
+ .setSelected(Cache.getDefault(BackupFiles.NO_MAX, false));
+ backupfilesRollMaxSpinner
+ .setValue(Cache.getDefault(BackupFiles.ROLL_MAX, 3));
+ backupfilesConfirmDelete.setSelected(
+ Cache.getDefault(BackupFiles.CONFIRM_DELETE_OLD, true));
backupsOptionsSetEnabled();
updateBackupFilesExampleLabel();
}
- private boolean warnAboutSuffixReverseChange()
+ protected boolean warnAboutSuffixReverseChange()
{
- BackupFilesPresetEntry bfpe = BackupFilesPresetEntry
- .getSavedBackupEntry();
- boolean savedSuffixReverse = bfpe.reverse;
- int savedSuffixDigits = bfpe.digits;
- String savedSuffixTemplate = bfpe.suffix;
+ boolean savedSuffixReverse = Cache.getDefault(BackupFiles.REVERSE_ORDER,
+ false);
+ int savedSuffixDigits = Cache.getDefault(BackupFiles.SUFFIX_DIGITS, 3);
+ String savedSuffixTemplate = Cache.getDefault(BackupFiles.SUFFIX,
+ ".bak" + BackupFiles.NUM_PLACEHOLDER);
boolean nowSuffixReverse = suffixReverse.isSelected();
int nowSuffixDigits = getSpinnerInt(suffixDigitsSpinner, 3);
gbc.gridy++; // row 1
backupsTab.add(presetsPanel, gbc);
+ // gbc.anchor = GridBagConstraints.NORTHWEST;
// now using whole row
gbc.gridwidth = 2;
gbc.gridheight = 1;
return backupsTab;
}
+ protected static final int BACKUPFILESSCHEMECUSTOMISE = 0;
+
+ private static final IntKeyStringValueEntry[] backupfilesPresetEntries = {
+ new IntKeyStringValueEntry(1,
+ MessageManager.getString("label.default")),
+ new IntKeyStringValueEntry(2,
+ MessageManager.getString("label.single_file")),
+ new IntKeyStringValueEntry(3,
+ MessageManager.getString("label.keep_all_versions")),
+ new IntKeyStringValueEntry(4,
+ MessageManager.getString("label.rolled_backups")),
+ // ...
+ // IMPORTANT, keep "Custom" entry with key 0 (even though it appears last)
+ new IntKeyStringValueEntry(BACKUPFILESSCHEMECUSTOMISE,
+ MessageManager.getString("label.customise")) };
+
+ private static final Map<Integer, BackupFilesPresetEntry> backupfilesPresetEntriesValues = new HashMap<Integer, BackupFilesPresetEntry>()
+ {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 125L;
+
+ {
+ put(1, new BackupFilesPresetEntry(
+ ".bak" + BackupFiles.NUM_PLACEHOLDER, 3, false, false, 3,
+ false));
+ put(2, new BackupFilesPresetEntry("~", 1, false, false, 1, false));
+ put(3, new BackupFilesPresetEntry(".v" + BackupFiles.NUM_PLACEHOLDER,
+ 3, false, true, 10, true));
+ put(4, new BackupFilesPresetEntry(
+ "_bak." + BackupFiles.NUM_PLACEHOLDER, 1, true, false, 9,
+ false));
+ }
+ };
+
private JPanel initBackupsTabPresetsPanel()
{
String title = MessageManager.getString("label.schemes");
+ // TitledBorder tb = new TitledBorder(new EmptyBorder(0, 0, 0, 0), title);
+ // TitledBorder tb = new TitledBorder(title);
+ // tb.setTitleFont(LABEL_FONT);
+ // presetsPanel.setBorder(tb);
presetsPanel.setLayout(new GridBagLayout());
// "Scheme: "
gbc.gridx = 0;
gbc.gridy = 0;
+ presetsPanel.add(new JLabel(title + ":"), gbc);
- presetsComboLabel = new JLabel(title + ":");
- presetsPanel.add(presetsComboLabel, gbc);
-
- List<Object> entries = Arrays
- .asList((Object[]) BackupFilesPresetEntry.backupfilesPresetEntries);
- List<String> tooltips = Arrays.asList(
- BackupFilesPresetEntry.backupfilesPresetEntryDescriptions);
- backupfilesPresetsCombo = JvSwingUtils.buildComboWithTooltips(entries,
- tooltips);
- /*
- for (int i = 0; i < BackupFilesPresetEntry.backupfilesPresetEntries.length; i++)
+ for (int i = 0; i < backupfilesPresetEntries.length; i++)
{
- backupfilesPresetsCombo
- .addItem(BackupFilesPresetEntry.backupfilesPresetEntries[i]);
+ backupfilesPresetsCombo.addItem(backupfilesPresetEntries[i]);
}
- */
+ // put "Previously saved scheme" item in italics (it's not really
+ // selectable, as such -- it deselects itself when selected) and
+ // "Customise" in bold
+ backupfilesPresetsCombo
+ .setRenderer(new BackupFilesPresetsComboBoxRenderer());
backupfilesPresetsCombo.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
- int key = getComboIntStringKey(backupfilesPresetsCombo);
- if (!customiseCheckbox.isSelected())
- {
- backupfilesPresetsComboLastSelected = key;
- }
- if (key == BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM)
- {
- if (customiseCheckbox.isSelected())
- {
- // got here by clicking on customiseCheckbox so don't change the values
- backupfilesCustomOptionsSetEnabled();
- }
- else
- {
- backupsTabUpdatePresets();
- backupfilesCustomOptionsSetEnabled();
- }
- }
- else
- {
- customiseCheckbox.setSelected(false);
- backupsTabUpdatePresets();
- backupfilesCustomOptionsSetEnabled();
- }
+ backupsTabUpdatePresets();
}
});
presetsPanel.add(backupfilesPresetsCombo, gbc);
revertButton.setText(MessageManager.getString("label.cancel_changes"));
- revertButton.setToolTipText(
- MessageManager.getString("label.cancel_changes_description"));
revertButton.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
- backupsSetOptions(
- BackupFilesPresetEntry.backupfilesPresetEntriesValues.get(
- BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM));
- backupfilesCustomOptionsSetEnabled();
+ loadLastSavedBackupsOptions();
}
});
revertButton.setFont(LABEL_FONT);
- customiseCheckbox.setFont(LABEL_FONT);
- customiseCheckbox.setText(MessageManager.getString("label.customise"));
- customiseCheckbox.addActionListener(new ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- int currently = getComboIntStringKey(backupfilesPresetsCombo);
- if (customiseCheckbox.isSelected())
- {
- backupfilesPresetsComboLastSelected = currently;
- setComboIntStringKey(backupfilesPresetsCombo,
- BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM);
- }
- else
- {
- setComboIntStringKey(backupfilesPresetsCombo,
- backupfilesPresetsComboLastSelected);
-
- }
- backupfilesCustomOptionsSetEnabled();
- }
- });
- customiseCheckbox.setToolTipText(
- MessageManager.getString("label.customise_description"));
-
- // customise checkbox
- gbc.gridx = 0;
- gbc.gridy++;
- presetsPanel.add(customiseCheckbox, gbc);
-
// "Cancel changes" button (aligned with combo box above)
gbc.gridx = 1;
+ gbc.gridy++;
presetsPanel.add(revertButton, gbc);
return presetsPanel;
private JPanel initBackupsTabFilenameExamplesPanel()
{
String title = MessageManager
- .getString("label.scheme_examples");
+ .getString("label.summary_of_backups_scheme");
TitledBorder tb = new TitledBorder(title);
exampleFilesPanel.setBorder(tb);
exampleFilesPanel.setLayout(new GridBagLayout());
return exampleFilesPanel;
}
- private void backupsTabUpdatePresets()
+ protected void backupsTabUpdatePresets()
{
IntKeyStringValueEntry entry = (IntKeyStringValueEntry) backupfilesPresetsCombo
.getSelectedItem();
- int key = entry.k;
- String value = entry.v;
+ int key = entry.getKey();
+ String value = entry.getValue();
- if (BackupFilesPresetEntry.backupfilesPresetEntriesValues
- .containsKey(key))
+ // BACKUPFILESSCHEMECUSTOMISE (==0) reserved for "Custom"
+ if (key != BACKUPFILESSCHEMECUSTOMISE)
{
- backupsSetOptions(
- BackupFilesPresetEntry.backupfilesPresetEntriesValues
- .get(key));
- }
- else
- {
- Cache.log.error(
- "Preset '" + value + "' [key:" + key + "] not implemented");
+ if (backupfilesPresetEntriesValues.containsKey(key))
+ {
+ backupsSetOptions(backupfilesPresetEntriesValues.get(key));
+ }
+ else
+ {
+ System.out.println("Preset '" + value + "' not implemented");
+ }
}
- // Custom options will now be enabled when the customiseCheckbox is checked
- // (performed above)
- // backupfilesCustomOptionsSetEnabled();
+ backupfilesCustomOptionsSetEnabled();
updateBackupFilesExampleLabel();
}
- protected int getComboIntStringKey(
- JComboBox<Object> backupfilesPresetsCombo2)
+ protected int getComboIntStringKey(JComboBox<IntKeyStringValueEntry> c)
{
- IntKeyStringValueEntry e;
- try
- {
- e = (IntKeyStringValueEntry) backupfilesPresetsCombo2
- .getSelectedItem();
- } catch (Exception ex)
- {
- Cache.log.error(
- "Problem casting Combo entry to IntKeyStringValueEntry.");
- e = null;
- }
- return e != null ? e.k : 0;
+ IntKeyStringValueEntry e = (IntKeyStringValueEntry) c.getSelectedItem();
+ return e != null ? e.getKey() : 0;
}
- protected void setComboIntStringKey(
- JComboBox<Object> backupfilesPresetsCombo2,
+ protected void setComboIntStringKey(JComboBox<IntKeyStringValueEntry> c,
int key)
{
- for (int i = 0; i < backupfilesPresetsCombo2.getItemCount(); i++)
+ for (int i = 0; i < c.getItemCount(); i++)
{
- IntKeyStringValueEntry e;
- try
- {
- e = (IntKeyStringValueEntry) backupfilesPresetsCombo2.getItemAt(i);
- } catch (Exception ex)
- {
- Cache.log.error(
- "Problem casting Combo entry to IntKeyStringValueEntry. Skipping item. ");
- continue;
- }
- if (e.k == key)
+ IntKeyStringValueEntry e = c.getItemAt(i);
+ if (e.getKey() == key)
{
- backupfilesPresetsCombo2.setSelectedIndex(i);
+ c.setSelectedIndex(i);
break;
}
}
- // backupsTabUpdatePresets();
+ backupsTabUpdatePresets();
}
private JPanel initBackupsTabSuffixPanel()
{
updateBackupFilesExampleLabel();
backupfilesCustomOptionsSetEnabled();
- backupfilesRevertButtonSetEnabled(true);
}
});
- suffixTemplate.addKeyListener(new KeyListener()
+ KeyListener kl = new KeyListener()
{
@Override
public void keyReleased(KeyEvent e)
{
updateBackupFilesExampleLabel();
backupfilesCustomOptionsSetEnabled();
- backupfilesRevertButtonSetEnabled(true);
}
@Override
}
}
- });
+ };
+ suffixTemplate.addKeyListener(kl);
// digits spinner
suffixDigitsLabel
.setText(MessageManager.getString("label.index_digits"));
suffixDigitsLabel.setHorizontalAlignment(SwingConstants.LEFT);
suffixDigitsLabel.setFont(LABEL_FONT);
+ int defaultmin = 1;
+ int defaultmax = 6;
ChangeListener c = new ChangeListener()
{
@Override
public void stateChanged(ChangeEvent e)
{
- backupfilesRevertButtonSetEnabled(true);
updateBackupFilesExampleLabel();
}
};
- setIntegerSpinner(suffixDigitsSpinner, BackupFilesPresetEntry.DIGITSMIN,
- BackupFilesPresetEntry.DIGITSMAX, 3, c);
+ setIntegerSpinner(suffixDigitsSpinner, defaultmin, defaultmax, 3, c);
suffixReverse.setLabels(MessageManager.getString("label.reverse_roll"),
MessageManager.getString("label.increment_index"));
}
if (okay)
{
- backupfilesRevertButtonSetEnabled(true);
updateBackupFilesExampleLabel();
}
else
{
- boolean savedSuffixReverse = BackupFilesPresetEntry
- .getSavedBackupEntry().reverse;
+ boolean savedSuffixReverse = Cache
+ .getDefault(BackupFiles.REVERSE_ORDER, false);
suffixReverse.setSelected(savedSuffixReverse);
}
}
return suffixPanel;
}
- private boolean confirmSuffixReverseChange()
+ protected boolean confirmSuffixReverseChange()
{
boolean ret = false;
String warningMessage = MessageManager
.getString("label.warning_confirm_change_reverse");
- int confirm = JvOptionPane.showConfirmDialog(Desktop.desktop,
+ int confirm = JvOptionPane.showConfirmDialog(Desktop.getDesktopPane(),
warningMessage,
MessageManager.getString("label.change_increment_decrement"),
JvOptionPane.YES_NO_OPTION, JvOptionPane.WARNING_MESSAGE);
@Override
public void actionPerformed(ActionEvent e)
{
- backupfilesRevertButtonSetEnabled(true);
updateBackupFilesExampleLabel();
}
});
@Override
public void actionPerformed(ActionEvent e)
{
- backupfilesRevertButtonSetEnabled(true);
keepRollMaxOptionsEnabled();
updateBackupFilesExampleLabel();
}
@Override
public void stateChanged(ChangeEvent e)
{
- backupfilesRevertButtonSetEnabled(true);
updateBackupFilesExampleLabel();
}
};
- setIntegerSpinner(backupfilesRollMaxSpinner,
- BackupFilesPresetEntry.ROLLMAXMIN,
- BackupFilesPresetEntry.ROLLMAXMAX, 4, true, c);
+ setIntegerSpinner(backupfilesRollMaxSpinner, 1, 999, 4, true, c);
backupfilesConfirmDelete.setLabels(
MessageManager.getString("label.always_ask"),
MessageManager.getString("label.auto_delete"));
- backupfilesConfirmDelete.addActionListener(new ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- backupfilesRevertButtonSetEnabled(true);
- }
- });
// update the enabled section
keepRollMaxOptionsEnabled();
kgbc.gridwidth = GridBagConstraints.REMAINDER;
kgbc.fill = GridBagConstraints.HORIZONTAL;
kgbc.weightx = 1.0;
+ /*
+ keepfilesPanel.add(backupfilesConfirmDelete.getTrueButton(), kgbc);
+
+ // fourth row (indented)
+ kgbc.gridy = 3;
+ keepfilesPanel.add(backupfilesConfirmDelete.getFalseButton(), kgbc);
+ */
JPanel jp = new JPanel();
jp.setLayout(new FlowLayout());
int uppersurround = 0;
StringBuilder exampleSB = new StringBuilder();
boolean firstLine = true;
- int lineNumber = 0;
if (reverse)
{
if (index == min + lowersurround && index < max - uppersurround - 1)
{
exampleSB.append("\n...");
- lineNumber++;
}
else if (index > min + lowersurround && index < max - uppersurround)
{
else
{
exampleSB.append("\n");
- lineNumber++;
}
exampleSB.append(BackupFilenameParts.getBackupFilename(index,
base, suffix, digits));
if (index == min + lowersurround && index < max - uppersurround - 1)
{
exampleSB.append("\n...");
- lineNumber++;
}
else if (index > min + lowersurround && index < max - uppersurround)
{
else
{
exampleSB.append("\n");
- lineNumber++;
}
exampleSB.append(BackupFilenameParts.getBackupFilename(index,
base, suffix, digits));
}
- // add some extra empty lines to pad out the example files box. ugh, please tell
- // me how to do this better
- int remainingLines = lowersurround + uppersurround + 1 - lineNumber;
- if (remainingLines > 0)
- {
- for (int i = 0; i < remainingLines; i++)
- {
- exampleSB.append("\n ");
- lineNumber++;
- }
- }
-
backupfilesExampleLabel.setText(exampleSB.toString());
}
i = Integer.parseInt((String) s.getValue());
} catch (Exception e)
{
- Cache.log.error(
+ System.out.println(
"Exception casting the initial value of s.getValue()");
}
}
i = (Integer) s.getValue();
} catch (Exception e)
{
- Cache.log.error("Failed casting (Integer) JSpinner s.getValue()");
+ System.out.println("Failed casting (Integer) JSpinner s.getValue()");
}
return i;
}
- private void keepRollMaxOptionsEnabled()
+ protected void keepRollMaxOptionsEnabled()
{
boolean enabled = backupfilesKeepAll.isEnabled()
&& !backupfilesKeepAll.isSelected();
backupfilesConfirmDelete.setEnabled(enabled);
}
- private void backupfilesKeepAllSetEnabled(boolean tryEnabled)
+ protected void backupfilesKeepAllSetEnabled(boolean tryEnabled)
{
boolean enabled = tryEnabled && enableBackupFiles.isSelected()
- && customiseCheckbox.isSelected()
+ && getComboIntStringKey(backupfilesPresetsCombo) == 0
&& suffixTemplate.getText()
.indexOf(BackupFiles.NUM_PLACEHOLDER) > -1;
keepfilesPanel.setEnabled(enabled);
private void backupfilesSuffixTemplateSetEnabled(boolean tryEnabled)
{
boolean enabled = tryEnabled && enableBackupFiles.isSelected()
- && customiseCheckbox.isSelected();
+ && getComboIntStringKey(backupfilesPresetsCombo) == 0;
suffixPanel.setEnabled(enabled);
suffixTemplateLabel.setEnabled(enabled);
suffixTemplate.setEnabled(enabled);
backupfilesSuffixTemplateDigitsSetEnabled();
}
- private void backupfilesRevertButtonSetEnabled(boolean tryEnabled)
- {
- boolean enabled = tryEnabled && enableBackupFiles.isSelected()
- && customiseCheckbox.isSelected() && backupfilesCustomChanged();
- revertButton.setEnabled(enabled);
- }
-
- private boolean backupfilesCustomChanged()
- {
- BackupFilesPresetEntry custom = BackupFilesPresetEntry.backupfilesPresetEntriesValues
- .get(BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM);
- BackupFilesPresetEntry current = getBackupfilesCurrentEntry();
- return !custom.equals(current);
- }
-
- protected BackupFilesPresetEntry getBackupfilesCurrentEntry()
- {
- String suffix = suffixTemplate.getText();
- int digits = getSpinnerInt(suffixDigitsSpinner, 3);
- boolean reverse = suffixReverse.isSelected();
- boolean keepAll = backupfilesKeepAll.isSelected();
- int rollMax = getSpinnerInt(backupfilesRollMaxSpinner, 3);
- boolean confirmDelete = backupfilesConfirmDelete.isSelected();
-
- BackupFilesPresetEntry bfpe = new BackupFilesPresetEntry(suffix, digits,
- reverse, keepAll, rollMax, confirmDelete);
-
- return bfpe;
- }
-
protected void backupfilesCustomOptionsSetEnabled()
{
- boolean enabled = customiseCheckbox.isSelected();
+ int scheme = getComboIntStringKey(backupfilesPresetsCombo);
+ boolean enabled = scheme == 0 && enableBackupFiles.isSelected();
- backupfilesRevertButtonSetEnabled(enabled);
backupfilesSuffixTemplateSetEnabled(enabled);
backupfilesKeepAllSetEnabled(enabled);
}
{
boolean enabled = enableBackupFiles.isSelected();
presetsPanel.setEnabled(enabled);
- presetsComboLabel.setEnabled(enabled);
backupfilesPresetsCombo.setEnabled(enabled);
- customiseCheckbox.setEnabled(enabled);
- revertButton.setEnabled(enabled);
}
protected void backupsOptionsSetEnabled()
button.setHorizontalAlignment(SwingConstants.CENTER);
this.button.addActionListener(new ActionListener()
{
+ @SuppressWarnings("synthetic-access")
@Override
public void actionPerformed(ActionEvent e)
{
}
}
+class IntKeyStringValueEntry
+{
+ int k;
+
+ String v;
+
+ public IntKeyStringValueEntry(int k, String v)
+ {
+ this.k = k;
+ this.v = v;
+ }
+
+ @Override
+ public String toString()
+ {
+ return this.getValue();
+ }
+
+ public int getKey()
+ {
+ return k;
+ }
+
+ public String getValue()
+ {
+ return v;
+ }
+}
+
+class BackupFilesPresetEntry
+{
+ String suffix;
+
+ int digits;
+
+ boolean reverse;
+
+ boolean keepAll;
+
+ int rollMax;
+
+ boolean confirmDelete;
+
+ public BackupFilesPresetEntry(String suffix, int digits, boolean reverse,
+ boolean keepAll, int rollMax, boolean confirmDelete)
+ {
+ this.suffix = suffix;
+ this.digits = digits;
+ this.reverse = reverse;
+ this.keepAll = keepAll;
+ this.rollMax = rollMax;
+ this.confirmDelete = confirmDelete;
+ }
+}
+
+class BackupFilesPresetsComboBoxRenderer extends DefaultListCellRenderer
+{
+ /**
+ *
+ */
+ private static final long serialVersionUID = 88L;
+
+ @Override
+ public Component getListCellRendererComponent(JList<?> list, Object value,
+ int index, boolean isSelected, boolean cellHasFocus)
+ {
+ super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
+
+ try {
+ IntKeyStringValueEntry e = (IntKeyStringValueEntry) value;
+ if (e.getKey() == GPreferences.BACKUPFILESSCHEMECUSTOMISE)
+ {
+ // "Customise" item
+ this.setFont(this.getFont().deriveFont(Font.BOLD));
+ }
+ } catch (Exception e) {
+ return this;
+ }
+
+ return this;
+ }
+}