X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPreferences.java;h=bd795afb54f922446e7ae18e6fc69c67e930dc5d;hb=a0f8ff1f0e3b8cea1c3c2c03c774dfb8251ade77;hp=6fdaa0d52b3636af656ef536ed1759b933ff4978;hpb=75d0279984e769ace9e422376b4104a4522cf0c3;p=jalview.git diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java index 6fdaa0d..bd795af 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; @@ -54,8 +56,7 @@ import java.util.ArrayList; import java.util.List; import javax.help.HelpSetException; -import javax.swing.JButton; -import javax.swing.JColorChooser; +import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JInternalFrame; import javax.swing.JPanel; @@ -82,34 +83,140 @@ 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 USE_RNAVIEW = "USE_RNAVIEW"; + + public static final String USER_DEFINED_COLOURS = "USER_DEFINED_COLOURS"; + + public static final String WRAP_ALIGNMENT = "WRAP_ALIGNMENT"; + + private static final int MIN_FONT_SIZE = 1; private static final int MAX_FONT_SIZE = 30; @@ -161,8 +268,6 @@ public class Preferences extends GPreferences JInternalFrame frame; - DasSourceBrowser dasSource; - private WsPreferences wsPrefs; private OptionsParam promptEachTimeOpt = new OptionsParam( @@ -183,13 +288,18 @@ 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); + if (!Platform.isJS()) + /** + * Java only + * + * @j2sIgnore + */ + { + wsPrefs = new WsPreferences(); + wsTab.add(wsPrefs, BorderLayout.CENTER); + } int width = 500, height = 450; - new jalview.util.Platform(); - if (Platform.isAMac()) + if (Platform.isAMacAndNotJS()) { width = 570; height = 480; @@ -248,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)); @@ -308,10 +418,21 @@ public class Preferences extends GPreferences Cache.getDefaultColour("ANNOTATIONCOLOUR_MIN", Color.orange)); maxColour.setBackground( Cache.getDefaultColour("ANNOTATIONCOLOUR_MAX", Color.red)); + + /* + * 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)); + 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, false)); /* * Set Structure tab defaults. @@ -368,7 +489,8 @@ public class Preferences extends GPreferences new RowSorter.SortKey(m.getNameColumn(), SortOrder.ASCENDING)); sorter.setSortKeys(sortKeys); - sorter.sort(); + // BH 2018 setSortKeys will do the sort + // sorter.sort(); // set up filtering ActionListener onReset; @@ -487,28 +609,16 @@ public class Preferences extends GPreferences /* * Set Output tab defaults */ - epsRendering.addItem(promptEachTimeOpt); - epsRendering.addItem(lineArtOpt); - epsRendering.addItem(textOpt); - String defaultEPS = Cache.getDefault("EPS_RENDERING", - "Prompt each time"); - if (defaultEPS.equalsIgnoreCase("Text")) - { - epsRendering.setSelectedItem(textOpt); - } - else if (defaultEPS.equalsIgnoreCase("Lineart")) - { - epsRendering.setSelectedItem(lineArtOpt); - } - else - { - epsRendering.setSelectedItem(promptEachTimeOpt); - } + setupOutputCombo(epsRendering, "EPS_RENDERING"); + setupOutputCombo(htmlRendering, "HTML_RENDERING"); + setupOutputCombo(svgRendering, "SVG_RENDERING"); 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)); @@ -530,6 +640,45 @@ public class Preferences extends GPreferences annotations_actionPerformed(null); // update the display of the annotation // settings + + + /* + * Set Backups tab defaults + */ + loadLastSavedBackupsOptions(); + } + + /** + * A helper method that sets the items and initial selection in a character + * rendering option list (Prompt each time/Lineart/Text) + * + * @param comboBox + * @param propertyKey + */ + protected void setupOutputCombo(JComboBox comboBox, + String propertyKey) + { + comboBox.addItem(promptEachTimeOpt); + comboBox.addItem(lineArtOpt); + comboBox.addItem(textOpt); + + /* + * JalviewJS doesn't support Lineart so force it to Text + */ + String defaultOption = Platform.isJS() ? "Text" + : Cache.getDefault(propertyKey, "Prompt each time"); + if (defaultOption.equalsIgnoreCase("Text")) + { + comboBox.setSelectedItem(textOpt); + } + else if (defaultOption.equalsIgnoreCase("Lineart")) + { + comboBox.setSelectedItem(lineArtOpt); + } + else + { + comboBox.setSelectedItem(promptEachTimeOpt); + } } /** @@ -636,6 +785,16 @@ public class Preferences extends GPreferences maxColour.getBackground()); /* + * Save Overview settings + */ + 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, + Boolean.toString(showHiddenAtStart.isSelected())); + + /* * Save Structure settings */ Cache.applicationProperties.setProperty(ADD_TEMPFACT_ANN, @@ -658,6 +817,10 @@ public class Preferences extends GPreferences */ Cache.applicationProperties.setProperty("EPS_RENDERING", ((OptionsParam) epsRendering.getSelectedItem()).getCode()); + Cache.applicationProperties.setProperty("HTML_RENDERING", + ((OptionsParam) htmlRendering.getSelectedItem()).getCode()); + Cache.applicationProperties.setProperty("SVG_RENDERING", + ((OptionsParam) svgRendering.getSelectedItem()).getCode()); /* * Save Connections settings @@ -754,7 +917,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()); /* @@ -767,8 +930,34 @@ public class Preferences extends GPreferences Cache.applicationProperties.setProperty("PAD_GAPS", Boolean.toString(padGaps.isSelected())); - dasSource.saveProperties(Cache.applicationProperties); - wsPrefs.updateAndRefreshWsMenuConfig(false); + 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 @@ -808,6 +997,7 @@ public class Preferences extends GPreferences @Override public void startupFileTextfield_mouseClicked() { + // TODO: JAL-3048 not needed for Jalview-JS String fileFormat = Cache.getProperty("DEFAULT_FILE_FORMAT"); JalviewFileChooser chooser = JalviewFileChooser .forRead(Cache.getProperty("LAST_DIRECTORY"), fileFormat); @@ -841,8 +1031,11 @@ public class Preferences extends GPreferences { try { - wsPrefs.updateWsMenuConfig(true); - wsPrefs.refreshWs_actionPerformed(e); + if (!Platform.isJS()) + { + wsPrefs.updateWsMenuConfig(true); + wsPrefs.refreshWs_actionPerformed(e); + } frame.setClosed(true); } catch (Exception ex) { @@ -981,17 +1174,25 @@ public class Preferences extends GPreferences @Override public void defaultBrowser_mouseClicked(MouseEvent e) { - JFileChooser chooser = new JFileChooser("."); - chooser.setDialogTitle( - MessageManager.getString("label.select_default_browser")); + // TODO: JAL-3048 not needed for j2s + if (!Platform.isJS()) // BH 2019 + /** + * Java only + * + * @j2sIgnore + */ + { + JFileChooser chooser = new JFileChooser("."); + chooser.setDialogTitle( + MessageManager.getString("label.select_default_browser")); - int value = chooser.showOpenDialog(this); + int value = chooser.showOpenDialog(this); - if (value == JFileChooser.APPROVE_OPTION) - { - defaultBrowser.setText(chooser.getSelectedFile().getAbsolutePath()); + if (value == JFileChooser.APPROVE_OPTION) + { + defaultBrowser.setText(chooser.getSelectedFile().getAbsolutePath()); + } } - } /* @@ -1016,53 +1217,64 @@ public class Preferences extends GPreferences @Override public void minColour_actionPerformed(JPanel panel) { - Color col = JColorChooser.showDialog(this, + JalviewColourChooser.showColourChooser(this, MessageManager.getString("label.select_colour_minimum_value"), - minColour.getBackground()); - if (col != null) - { - panel.setBackground(col); - } - panel.repaint(); + panel); } @Override public void maxColour_actionPerformed(JPanel panel) { - Color col = JColorChooser.showDialog(this, + JalviewColourChooser.showColourChooser(this, MessageManager.getString("label.select_colour_maximum_value"), - maxColour.getBackground()); - if (col != null) - { - panel.setBackground(col); - } - panel.repaint(); + panel); } @Override - public void gapColour_actionPerformed(JButton btn) + public void gapColour_actionPerformed(JPanel gap) { - Color col = JColorChooser.showDialog(this, - MessageManager.getString("label.select_gap_colour"), - gapColour.getForeground()); - if (col != null) + if (!useLegacyGap.isSelected()) { - btn.setForeground(col); + JalviewColourChooser.showColourChooser(this, + MessageManager.getString("label.select_gap_colour"), + gap); } - btn.repaint(); } @Override - public void hiddenColour_actionPerformed(JButton btn) + public void hiddenColour_actionPerformed(JPanel hidden) { - Color col = JColorChooser.showDialog(this, + JalviewColourChooser.showColourChooser(this, MessageManager.getString("label.select_hidden_colour"), - hiddenColour.getForeground()); - if (col != null) + hidden); + } + + @Override + protected void useLegacyGaps_actionPerformed(ActionEvent e) + { + boolean enabled = useLegacyGap.isSelected(); + if (enabled) + { + gapColour.setBackground( + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_LEGACY_GAP); + } + else { - btn.setForeground(col); + gapColour.setBackground( + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP); } - btn.repaint(); + 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 @@ -1082,12 +1294,12 @@ public class Preferences extends GPreferences } } catch (NumberFormatException x) { + userIdWidth.setText(""); JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager .getString("warn.user_defined_width_requirements"), MessageManager.getString("label.invalid_id_column_width"), JvOptionPane.WARNING_MESSAGE); - userIdWidth.setText(""); } }