JAL-3626 from JAL-3253-applet CalculationChooser
[jalview.git] / src / jalview / gui / Preferences.java
index 6a558d5..bd795af 100755 (executable)
@@ -22,9 +22,10 @@ package jalview.gui;
 
 import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
 import jalview.bin.Cache;
-import jalview.bin.Jalview;
 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;
@@ -82,41 +83,139 @@ import ext.edu.ucsf.rbvi.strucviz2.StructureManager;
  */
 public class Preferences extends GPreferences
 {
-  public static final String ENABLE_SPLIT_FRAME = "ENABLE_SPLIT_FRAME";
+  
+  public static final String ADD_SS_ANN = "ADD_SS_ANN";
 
-  public static final String SCALE_PROTEIN_TO_CDNA = "SCALE_PROTEIN_TO_CDNA";
+  public static final String ADD_TEMPFACT_ANN = "ADD_TEMPFACT_ANN";
+
+  public static final String ALLOW_UNPUBLISHED_PDB_QUERYING = "ALLOW_UNPUBLISHED_PDB_QUERYING";
+
+  public static final String ANNOTATIONCOLOUR_MAX = "ANNOTATIONCOLOUR_MAX";
+
+  public static final String ANNOTATIONCOLOUR_MIN = "ANNOTATIONCOLOUR_MIN";
+
+  public static final String ANTI_ALIAS = "ANTI_ALIAS";
+
+  public static final String AUTO_CALC_CONSENSUS = "AUTO_CALC_CONSENSUS";
+
+  public static final String AUTOASSOCIATE_PDBANDSEQS = "AUTOASSOCIATE_PDBANDSEQS";
+
+  public static final String BLOSUM62_PCA_FOR_NUCLEOTIDE = "BLOSUM62_PCA_FOR_NUCLEOTIDE";
+
+  public static final String CENTRE_COLUMN_LABELS = "CENTRE_COLUMN_LABELS";
+
+  public static final String CHIMERA_PATH = "CHIMERA_PATH";
+
+  public static final String DBREFFETCH_USEPICR = "DBREFFETCH_USEPICR";
 
   public static final String DEFAULT_COLOUR = "DEFAULT_COLOUR";
 
+  public static final String DEFAULT_COLOUR_NUC = "DEFAULT_COLOUR_NUC";
+
   public static final String DEFAULT_COLOUR_PROT = "DEFAULT_COLOUR_PROT";
 
-  public static final String DEFAULT_COLOUR_NUC = "DEFAULT_COLOUR_NUC";
+  public static final String ENABLE_SPLIT_FRAME = "ENABLE_SPLIT_FRAME";
 
-  public static final String ADD_TEMPFACT_ANN = "ADD_TEMPFACT_ANN";
+  public static final String FIGURE_AUTOIDWIDTH = "FIGURE_AUTOIDWIDTH";
 
-  public static final String ADD_SS_ANN = "ADD_SS_ANN";
+  public static final String FIGURE_FIXEDIDWIDTH = "FIGURE_FIXEDIDWIDTH";
 
-  public static final String USE_RNAVIEW = "USE_RNAVIEW";
+  public static final String FOLLOW_SELECTIONS = "FOLLOW_SELECTIONS";
 
-  public static final String STRUCT_FROM_PDB = "STRUCT_FROM_PDB";
+  public static final String FONT_NAME = "FONT_NAME";
 
-  public static final String STRUCTURE_DISPLAY = "STRUCTURE_DISPLAY";
+  public static final String FONT_SIZE = "FONT_SIZE";
 
-  public static final String CHIMERA_PATH = "CHIMERA_PATH";
+  public static final String FONT_STYLE = "FONT_STYLE";
 
-  public static final String SORT_ANNOTATIONS = "SORT_ANNOTATIONS";
+  public static final String GAP_COLOUR = "GAP_COLOUR";
+
+  public static final String GAP_SYMBOL = "GAP_SYMBOL";
+
+  public static final String HIDDEN_COLOUR = "HIDDEN_COLOUR";
+
+  public static final String HIDE_INTRONS = "HIDE_INTRONS";
+
+  public static final String ID_ITALICS = "ID_ITALICS";
+
+  public static final String ID_ORG_HOSTURL = "ID_ORG_HOSTURL";
+
+  public static final String MAP_WITH_SIFTS = "MAP_WITH_SIFTS";
+
+  public static final String NOQUESTIONNAIRES = "NOQUESTIONNAIRES";
+
+  public static final String NORMALISE_CONSENSUS_LOGO = "NORMALISE_CONSENSUS_LOGO";
+
+  public static final String NORMALISE_LOGO = "NORMALISE_LOGO";
+
+  public static final String PAD_GAPS = "PAD_GAPS";
+
+  public static final String PDB_DOWNLOAD_FORMAT = "PDB_DOWNLOAD_FORMAT";
+
+  public static final String QUESTIONNAIRE = "QUESTIONNAIRE";
+
+  public static final String RELAXEDSEQIDMATCHING = "RELAXEDSEQIDMATCHING";
+
+  public static final String RIGHT_ALIGN_IDS = "RIGHT_ALIGN_IDS";
+
+  public static final String SCALE_PROTEIN_TO_CDNA = "SCALE_PROTEIN_TO_CDNA";
+
+  public static final String SHOW_ANNOTATIONS = "SHOW_ANNOTATIONS";
 
   public static final String SHOW_AUTOCALC_ABOVE = "SHOW_AUTOCALC_ABOVE";
 
+  public static final String SHOW_CONSENSUS = "SHOW_CONSENSUS";
+
+  public static final String SHOW_CONSENSUS_HISTOGRAM = "SHOW_CONSENSUS_HISTOGRAM";
+
+  public static final String SHOW_CONSENSUS_LOGO = "SHOW_CONSENSUS_LOGO";
+
+  public static final String SHOW_CONSERVATION = "SHOW_CONSERVATION";
+
+  public static final String SHOW_DBREFS_TOOLTIP = "SHOW_DBREFS_TOOLTIP";
+
+  public static final String SHOW_GROUP_CONSENSUS = "SHOW_GROUP_CONSENSUS";
+
+  public static final String SHOW_GROUP_CONSERVATION = "SHOW_GROUP_CONSERVATION";
+
+  public static final String SHOW_JVSUFFIX = "SHOW_JVSUFFIX";
+
+  public static final String SHOW_NPFEATS_TOOLTIP = "SHOW_NPFEATS_TOOLTIP";
+
   public static final String SHOW_OCCUPANCY = "SHOW_OCCUPANCY";
 
   public static final String SHOW_OV_HIDDEN_AT_START = "SHOW_OV_HIDDEN_AT_START";
 
+  public static final String SHOW_OVERVIEW = "SHOW_OVERVIEW";
+
+  public static final String SHOW_QUALITY = "SHOW_QUALITY";
+
+  public static final String SHOW_UNCONSERVED = "SHOW_UNCONSERVED";
+
+  public static final String SORT_ALIGNMENT = "SORT_ALIGNMENT";
+
+  public static final String SORT_ANNOTATIONS = "SORT_ANNOTATIONS";
+
+  public static final String SORT_BY_TREE = "SORT_BY_TREE";
+
+  public static final String STRUCT_FROM_PDB = "STRUCT_FROM_PDB";
+
+  public static final String STRUCTURE_DISPLAY = "STRUCTURE_DISPLAY";
+
+  public static final String STRUCTURE_DIMENSIONS = "STRUCTURE_DIMENSIONS";
+
+  public static final String UNIPROT_DOMAIN = "UNIPROT_DOMAIN";
+
+  public static final String USE_FULL_SO = "USE_FULL_SO";
+
   public static final String USE_LEGACY_GAP = "USE_LEGACY_GAP";
 
-  public static final String GAP_COLOUR = "GAP_COLOUR";
+  public static final String USE_RNAVIEW = "USE_RNAVIEW";
+
+  public static final String USER_DEFINED_COLOURS = "USER_DEFINED_COLOURS";
+
+  public static final String WRAP_ALIGNMENT = "WRAP_ALIGNMENT";
 
-  public static final String HIDDEN_COLOUR = "HIDDEN_COLOUR";
 
   private static final int MIN_FONT_SIZE = 1;
 
@@ -189,7 +288,12 @@ public class Preferences extends GPreferences
     super();
     frame = new JInternalFrame();
     frame.setContentPane(this);
-    if (!Jalview.isJS())
+    if (!Platform.isJS())
+    /**
+     * Java only
+     * 
+     * @j2sIgnore
+     */
     {
       wsPrefs = new WsPreferences();
       wsTab.add(wsPrefs, BorderLayout.CENTER);
@@ -254,7 +358,7 @@ public class Preferences extends GPreferences
     fontStyleCB.setSelectedItem(
             Cache.getDefault("FONT_STYLE", Font.PLAIN + ""));
 
-    smoothFont.setSelected(Cache.getDefault("ANTI_ALIAS", false));
+    smoothFont.setSelected(Cache.getDefault("ANTI_ALIAS", true));
     scaleProteinToCdna
             .setSelected(Cache.getDefault(SCALE_PROTEIN_TO_CDNA, false));
 
@@ -328,7 +432,7 @@ public class Preferences extends GPreferences
     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.
@@ -536,6 +640,12 @@ public class Preferences extends GPreferences
 
     annotations_actionPerformed(null); // update the display of the annotation
                                        // settings
+    
+    
+    /*
+     * Set Backups tab defaults
+     */
+    loadLastSavedBackupsOptions();
   }
 
   /**
@@ -555,7 +665,7 @@ public class Preferences extends GPreferences
     /*
      * JalviewJS doesn't support Lineart so force it to Text
      */
-    String defaultOption = Jalview.isJS() ? "Text"
+    String defaultOption = Platform.isJS() ? "Text"
             : Cache.getDefault(propertyKey, "Prompt each time");
     if (defaultOption.equalsIgnoreCase("Text"))
     {
@@ -820,10 +930,34 @@ public class Preferences extends GPreferences
     Cache.applicationProperties.setProperty("PAD_GAPS",
             Boolean.toString(padGaps.isSelected()));
 
-    if (!Jalview.isJS())
+    if (!Platform.isJS())
     {
       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
@@ -897,7 +1031,7 @@ public class Preferences extends GPreferences
   {
     try
     {
-      if (!Jalview.isJS())
+      if (!Platform.isJS())
       {
         wsPrefs.updateWsMenuConfig(true);
         wsPrefs.refreshWs_actionPerformed(e);
@@ -1041,8 +1175,11 @@ public class Preferences extends GPreferences
   public void defaultBrowser_mouseClicked(MouseEvent e)
   {
     // TODO: JAL-3048 not needed for j2s
-    /*
-     * @j2sNative
+    if (!Platform.isJS()) // BH 2019
+    /**
+     * Java only
+     * 
+     * @j2sIgnore
      */
     {
       JFileChooser chooser = new JFileChooser(".");
@@ -1135,7 +1272,7 @@ public class Preferences extends GPreferences
   {
     useLegacyGap.setSelected(false);
     useLegacyGaps_actionPerformed(null);
-    showHiddenAtStart.setSelected(true);
+    showHiddenAtStart.setSelected(false);
     hiddenColour.setBackground(
             jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_HIDDEN);
   }