X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPreferences.java;h=3667f557298da0a860cce733f2d45f86f3857403;hb=e739c2824d4d6a93c3e0f255780259c7daf2dc21;hp=e8dc07c7f7bf7ba4185805c85a258fee6afd2b24;hpb=b02e2d7bed980ad4c50112575f4253494b993ee2;p=jalview.git diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java index e8dc07c..3667f55 100755 --- a/src/jalview/gui/Preferences.java +++ b/src/jalview/gui/Preferences.java @@ -24,6 +24,8 @@ import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder; import jalview.bin.Cache; import jalview.gui.Help.HelpId; import jalview.gui.StructureViewer.ViewerType; +import jalview.io.BackupFiles; +import jalview.io.BackupFilesPresetEntry; import jalview.io.FileFormatI; import jalview.io.JalviewFileChooser; import jalview.io.JalviewFileView; @@ -103,6 +105,8 @@ public class Preferences extends GPreferences public static final String CHIMERA_PATH = "CHIMERA_PATH"; + public static final String CHIMERAX_PATH = "CHIMERAX_PATH"; + public static final String SORT_ANNOTATIONS = "SORT_ANNOTATIONS"; public static final String SHOW_AUTOCALC_ABOVE = "SHOW_AUTOCALC_ABOVE"; @@ -113,6 +117,10 @@ public class Preferences extends GPreferences public static final String USE_LEGACY_GAP = "USE_LEGACY_GAP"; + public static final String GAP_COLOUR = "GAP_COLOUR"; + + public static final String HIDDEN_COLOUR = "HIDDEN_COLOUR"; + private static final int MIN_FONT_SIZE = 1; private static final int MAX_FONT_SIZE = 30; @@ -164,8 +172,6 @@ public class Preferences extends GPreferences JInternalFrame frame; - DasSourceBrowser dasSource; - private WsPreferences wsPrefs; private OptionsParam promptEachTimeOpt = new OptionsParam( @@ -186,8 +192,6 @@ public class Preferences extends GPreferences super(); frame = new JInternalFrame(); frame.setContentPane(this); - dasSource = new DasSourceBrowser(); - dasTab.add(dasSource, BorderLayout.CENTER); wsPrefs = new WsPreferences(); wsTab.add(wsPrefs, BorderLayout.CENTER); int width = 500, height = 450; @@ -316,14 +320,16 @@ public class Preferences extends GPreferences * Set overview panel defaults */ gapColour.setBackground( - Cache.getDefaultColour("GAP_COLOUR", Color.lightGray)); + Cache.getDefaultColour(GAP_COLOUR, + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP)); hiddenColour.setBackground( - Cache.getDefaultColour("HIDDEN_COLOUR", Color.darkGray)); - useLegacyGap.setSelected(Cache.getDefault("USE_LEGACY_GAP", false)); + Cache.getDefaultColour(HIDDEN_COLOUR, + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_HIDDEN)); + useLegacyGap.setSelected(Cache.getDefault(USE_LEGACY_GAP, false)); gapLabel.setEnabled(!useLegacyGap.isSelected()); gapColour.setEnabled(!useLegacyGap.isSelected()); showHiddenAtStart - .setSelected(Cache.getDefault("SHOW_OV_HIDDEN_AT_START", true)); + .setSelected(Cache.getDefault(SHOW_OV_HIDDEN_AT_START, false)); /* * Set Structure tab defaults. @@ -336,15 +342,30 @@ public class Preferences extends GPreferences addSecondaryStructure.setEnabled(structSelected); addTempFactor.setSelected(Cache.getDefault(ADD_TEMPFACT_ANN, false)); addTempFactor.setEnabled(structSelected); - structViewer.setSelectedItem( - Cache.getDefault(STRUCTURE_DISPLAY, ViewerType.JMOL.name())); - chimeraPath.setText(Cache.getDefault(CHIMERA_PATH, "")); + String viewerType = Cache.getDefault(STRUCTURE_DISPLAY, ViewerType.JMOL.name()); + structViewer.setSelectedItem(viewerType); + boolean isChimeraX = viewerType.equals(ViewerType.CHIMERAX.name()); + if (viewerType.equals(ViewerType.JMOL.name())) + { + chimeraPath.setText(""); + } + else + { + chimeraPath.setText(Cache + .getDefault(isChimeraX ? CHIMERAX_PATH : CHIMERA_PATH, "")); + } chimeraPath.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - validateChimeraPath(); + if (validateChimeraPath()) + { + Cache.setProperty(structViewer.getSelectedItem() + .equals(ViewerType.CHIMERAX.name()) + ? CHIMERAX_PATH + : CHIMERA_PATH, chimeraPath.getText()); + } } }); @@ -397,7 +418,7 @@ public class Preferences extends GPreferences doReset.addActionListener(onReset); // filter to display only custom urls - final RowFilter customUrlFilter = new RowFilter() + final RowFilter customUrlFilter = new RowFilter<>() { @Override public boolean include( @@ -519,8 +540,10 @@ public class Preferences extends GPreferences autoIdWidth.setSelected(Cache.getDefault("FIGURE_AUTOIDWIDTH", false)); userIdWidth.setEnabled(!autoIdWidth.isSelected()); userIdWidthlabel.setEnabled(!autoIdWidth.isSelected()); - Integer wi = Cache.getIntegerProperty("FIGURE_USERIDWIDTH"); + Integer wi = Cache.getIntegerProperty("FIGURE_FIXEDIDWIDTH"); userIdWidth.setText(wi == null ? "" : wi.toString()); + // TODO: refactor to use common enum via FormatAdapter and allow extension + // for new flat file formats blcjv.setSelected(Cache.getDefault("BLC_JVSUFFIX", true)); clustaljv.setSelected(Cache.getDefault("CLUSTAL_JVSUFFIX", true)); fastajv.setSelected(Cache.getDefault("FASTA_JVSUFFIX", true)); @@ -542,6 +565,12 @@ public class Preferences extends GPreferences annotations_actionPerformed(null); // update the display of the annotation // settings + + + /* + * Set Backups tab defaults + */ + loadLastSavedBackupsOptions(); } /** @@ -650,8 +679,8 @@ public class Preferences extends GPreferences /* * Save Overview settings */ - Cache.setColourProperty("GAP_COLOUR", gapColour.getBackground()); - Cache.setColourProperty("HIDDEN_COLOUR", hiddenColour.getBackground()); + Cache.setColourProperty(GAP_COLOUR, gapColour.getBackground()); + Cache.setColourProperty(HIDDEN_COLOUR, hiddenColour.getBackground()); Cache.applicationProperties.setProperty(USE_LEGACY_GAP, Boolean.toString(useLegacyGap.isSelected())); Cache.applicationProperties.setProperty(SHOW_OV_HIDDEN_AT_START, @@ -670,7 +699,10 @@ public class Preferences extends GPreferences Boolean.toString(structFromPdb.isSelected())); Cache.applicationProperties.setProperty(STRUCTURE_DISPLAY, structViewer.getSelectedItem().toString()); - Cache.setOrRemove(CHIMERA_PATH, chimeraPath.getText()); + boolean isChimeraX = structViewer.getSelectedItem().toString() + .equals(ViewerType.CHIMERAX.name()); + Cache.setOrRemove(isChimeraX ? CHIMERAX_PATH : CHIMERA_PATH, + chimeraPath.getText()); Cache.applicationProperties.setProperty("MAP_WITH_SIFTS", Boolean.toString(siftsMapping.isSelected())); SiftsSettings.setMapWithSifts(siftsMapping.isSelected()); @@ -776,7 +808,7 @@ public class Preferences extends GPreferences Cache.applicationProperties.setProperty("FIGURE_AUTOIDWIDTH", Boolean.toString(autoIdWidth.isSelected())); userIdWidth_actionPerformed(); - Cache.applicationProperties.setProperty("FIGURE_USERIDWIDTH", + Cache.applicationProperties.setProperty("FIGURE_FIXEDIDWIDTH", userIdWidth.getText()); /* @@ -789,8 +821,31 @@ public class Preferences extends GPreferences Cache.applicationProperties.setProperty("PAD_GAPS", Boolean.toString(padGaps.isSelected())); - dasSource.saveProperties(Cache.applicationProperties); wsPrefs.updateAndRefreshWsMenuConfig(false); + + /* + * Save Backups settings + */ + Cache.applicationProperties.setProperty(BackupFiles.ENABLED, + Boolean.toString(enableBackupFiles.isSelected())); + int preset = getComboIntStringKey(backupfilesPresetsCombo); + Cache.applicationProperties.setProperty(BackupFiles.NS + "_PRESET", Integer.toString(preset)); + + if (preset == BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM) + { + BackupFilesPresetEntry customBFPE = getBackupfilesCurrentEntry(); + BackupFilesPresetEntry.backupfilesPresetEntriesValues.put( + BackupFilesPresetEntry.BACKUPFILESSCHEMECUSTOM, customBFPE); + Cache.applicationProperties + .setProperty(BackupFilesPresetEntry.CUSTOMCONFIG, + customBFPE.toString()); + } + + BackupFilesPresetEntry savedBFPE = BackupFilesPresetEntry.backupfilesPresetEntriesValues + .get(preset); + Cache.applicationProperties.setProperty( + BackupFilesPresetEntry.SAVEDCONFIG, savedBFPE.toString()); + Cache.saveProperties(); Desktop.instance.doConfigureStructurePrefs(); try @@ -1091,6 +1146,34 @@ public class Preferences extends GPreferences } @Override + protected void useLegacyGaps_actionPerformed(ActionEvent e) + { + boolean enabled = useLegacyGap.isSelected(); + if (enabled) + { + gapColour.setBackground( + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_LEGACY_GAP); + } + else + { + gapColour.setBackground( + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP); + } + gapColour.setEnabled(!enabled); + gapLabel.setEnabled(!enabled); + } + + @Override + protected void resetOvDefaults_actionPerformed(ActionEvent e) + { + useLegacyGap.setSelected(false); + useLegacyGaps_actionPerformed(null); + showHiddenAtStart.setSelected(false); + hiddenColour.setBackground( + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_HIDDEN); + } + + @Override protected void userIdWidth_actionPerformed() { try @@ -1145,22 +1228,32 @@ public class Preferences extends GPreferences } /** - * If Chimera is selected, check it can be found on default or user-specified - * path, if not show a warning/help dialog. + * If Chimera or ChimeraX is selected, check it can be found on default or + * user-specified path, if not show a warning/help dialog. */ @Override protected void structureViewer_actionPerformed(String selectedItem) { - if (!selectedItem.equals(ViewerType.CHIMERA.name())) + if (selectedItem.equals(ViewerType.JMOL.name())) { + chimeraPath.setEnabled(false); + chimeraPathLabel.setEnabled(false); return; } boolean found = false; + chimeraPath.setEnabled(true); + chimeraPathLabel.setEnabled(true); + chimeraPathLabel.setText(MessageManager + .formatMessage("label.chimera_path", selectedItem)); /* - * Try user-specified and standard paths for Chimera executable. + * Try user-specified and standard paths for Chimera executable */ - List paths = StructureManager.getChimeraPaths(); + boolean isChimeraX = selectedItem.equals(ViewerType.CHIMERAX.name()); + chimeraPath.setText(Cache + .getDefault(isChimeraX ? CHIMERAX_PATH : CHIMERA_PATH, "")); + + List paths = StructureManager.getChimeraPaths(isChimeraX); paths.add(0, chimeraPath.getText()); for (String path : paths) {