X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPreferences.java;h=834d779ba166edcb7d547474a260ac09abd365e1;hb=6a44ba8cd68f29329876560cfe24403fe3e7a565;hp=0e04117f5d5b0a55f65c294e9a1123382a7c9ee8;hpb=9092d9f4c2231645b58968e964c858e010be14e2;p=jalview.git diff --git a/src/jalview/gui/Preferences.java b/src/jalview/gui/Preferences.java index 0e04117..834d779 100755 --- a/src/jalview/gui/Preferences.java +++ b/src/jalview/gui/Preferences.java @@ -31,6 +31,7 @@ import java.awt.event.MouseEvent; import java.io.File; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CompletableFuture; import javax.help.HelpSetException; import javax.swing.JComboBox; @@ -145,10 +146,10 @@ public class Preferences extends GPreferences /** * Holds name and link separated with | character. Sequence IDS and Sequences - * must be $SEQUENCEIDS$ or $SEQUENCEIDS=/.possible | chars ./=$ and - * $SEQUENCES$ or $SEQUENCES=/.possible | chars ./=$ and separation character - * for first and second token specified after a pipe character at end |,|. - * (TODO: proper escape for using | to separate ids or sequences + * must be $SEQUENCEIDS$ or $SEQUENCEIDS=/.possible | chars ./=$ and $SEQUENCES$ + * or $SEQUENCES=/.possible | chars ./=$ and separation character for first and + * second token specified after a pipe character at end |,|. (TODO: proper + * escape for using | to separate ids or sequences */ public static List groupURLLinks; @@ -219,19 +220,27 @@ public class Preferences extends GPreferences public static void openPreferences() { - openPreferences(0, null); + openPreferences(null, null); } - public static void openPreferences(int selectTab, String message) + public static void openPreferences(TabRef selectTab, String message) { Preferences p = getInstance(); - p.selectTab(selectTab); - p.setMessage(message); + if (selectTab != null) + p.selectTab(selectTab, message); p.frame.show(); p.frame.moveToFront(); p.frame.grabFocus(); } + public void selectTab(TabRef selectTab, String message) + { + this.selectTab(selectTab); + if (message != null) + this.setMessage(message); + this.frame.show(); + } + /** * Creates a new Preferences object. */ @@ -374,12 +383,10 @@ public class Preferences extends GPreferences /* * Set overview panel defaults */ - gapColour.setBackground( - Cache.getDefaultColour(GAP_COLOUR, - jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP)); - hiddenColour.setBackground( - Cache.getDefaultColour(HIDDEN_COLOUR, - jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_HIDDEN)); + gapColour.setBackground(Cache.getDefaultColour(GAP_COLOUR, + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP)); + hiddenColour.setBackground(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()); @@ -402,7 +409,8 @@ public class Preferences extends GPreferences * set choice of structure viewer, and path if saved as a preference; * default to Jmol (first choice) if an unexpected value is found */ - String viewerType = Cache.getDefault(STRUCTURE_DISPLAY, ViewerType.JMOL.name()); + String viewerType = Cache.getDefault(STRUCTURE_DISPLAY, + ViewerType.JMOL.name()); structViewer.setSelectedItem(viewerType); String viewerPath = ""; ViewerType type = null; @@ -438,10 +446,11 @@ public class Preferences extends GPreferences { if (validateViewerPath()) { - Cache.setProperty(structViewer.getSelectedItem() - .equals(ViewerType.CHIMERAX.name()) - ? CHIMERAX_PATH - : CHIMERA_PATH, structureViewerPath.getText()); + Cache.setProperty( + structViewer.getSelectedItem().equals( + ViewerType.CHIMERAX.name()) ? CHIMERAX_PATH + : CHIMERA_PATH, + structureViewerPath.getText()); } } }); @@ -655,8 +664,7 @@ public class Preferences extends GPreferences annotations_actionPerformed(null); // update the display of the annotation // settings - - + /* * Set Backups tab defaults */ @@ -676,7 +684,7 @@ public class Preferences extends GPreferences comboBox.addItem(promptEachTimeOpt); comboBox.addItem(lineArtOpt); comboBox.addItem(textOpt); - + /* * JalviewJS doesn't support Lineart so force it to Text */ @@ -827,8 +835,7 @@ public class Preferences extends GPreferences Boolean.toString(structFromPdb.isSelected())); String viewer = structViewer.getSelectedItem().toString(); String viewerPath = structureViewerPath.getText(); - Cache.applicationProperties.setProperty(STRUCTURE_DISPLAY, - viewer); + Cache.applicationProperties.setProperty(STRUCTURE_DISPLAY, viewer); if (viewer.equals(ViewerType.CHIMERA.name())) { Cache.setOrRemove(CHIMERA_PATH, viewerPath); @@ -959,16 +966,16 @@ public class Preferences extends GPreferences Cache.applicationProperties.setProperty(BackupFiles.ENABLED, Boolean.toString(enableBackupFiles.isSelected())); int preset = getComboIntStringKey(backupfilesPresetsCombo); - Cache.applicationProperties.setProperty(BackupFiles.NS + "_PRESET", Integer.toString(preset)); + 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()); + Cache.applicationProperties.setProperty( + BackupFilesPresetEntry.CUSTOMCONFIG, customBFPE.toString()); } BackupFilesPresetEntry savedBFPE = BackupFilesPresetEntry.backupfilesPresetEntriesValues @@ -1011,8 +1018,8 @@ public class Preferences extends GPreferences } /** - * Do any necessary validation before saving settings. Return focus to the - * first tab which fails validation. + * Do any necessary validation before saving settings. Return focus to the first + * tab which fails validation. * * @return */ @@ -1066,7 +1073,7 @@ public class Preferences extends GPreferences * DOCUMENT ME! * * @param e - * DOCUMENT ME! + * DOCUMENT ME! */ @Override public void cancel_actionPerformed(ActionEvent e) @@ -1088,7 +1095,7 @@ public class Preferences extends GPreferences * DOCUMENT ME! * * @param e - * DOCUMENT ME! + * DOCUMENT ME! */ @Override public void annotations_actionPerformed(ActionEvent e) @@ -1278,8 +1285,7 @@ public class Preferences extends GPreferences if (!useLegacyGap.isSelected()) { JalviewColourChooser.showColourChooser(this, - MessageManager.getString("label.select_gap_colour"), - gap); + MessageManager.getString("label.select_gap_colour"), gap); } } @@ -1287,8 +1293,7 @@ public class Preferences extends GPreferences public void hiddenColour_actionPerformed(JPanel hidden) { JalviewColourChooser.showColourChooser(this, - MessageManager.getString("label.select_hidden_colour"), - hidden); + MessageManager.getString("label.select_hidden_colour"), hidden); } @Override @@ -1353,8 +1358,8 @@ public class Preferences extends GPreferences } /** - * Returns true if structure viewer path is to a valid executable, else shows - * an error dialog. Does nothing if the path is empty, as is the case for Jmol + * Returns true if structure viewer path is to a valid executable, else shows an + * error dialog. Does nothing if the path is empty, as is the case for Jmol * (built in to Jalview) or when Jalview is left to try default paths. */ private boolean validateViewerPath() @@ -1375,8 +1380,8 @@ public class Preferences extends GPreferences } /** - * If Chimera or ChimeraX or Pymol is selected, check it can be found on - * default or user-specified path, if not show a warning/help dialog + * If Chimera or ChimeraX or Pymol 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) @@ -1443,8 +1448,10 @@ public class Preferences extends GPreferences MessageManager.getString("label.viewer_missing")), "", JvOptionPane.YES_NO_OPTION, JvOptionPane.WARNING_MESSAGE, null, options, options[0]); + if (showHelp == JvOptionPane.NO_OPTION) { + this.selectTab(Preferences.TabRef.STRUCTURE_TAB, null); try { Help.showHelpWindow(HelpId.StructureViewer); @@ -1453,6 +1460,24 @@ public class Preferences extends GPreferences e.printStackTrace(); } } + else if (showHelp == JvOptionPane.OK_OPTION) + { + this.selectTab(Preferences.TabRef.STRUCTURE_TAB, null); + CompletableFuture cf = CompletableFuture.runAsync(() -> { + try + { + for (int i = 0; i < 3; i++) + { + structureViewerPath.setBackground(Color.PINK); + Thread.sleep(500); + structureViewerPath.setBackground(Color.WHITE); + Thread.sleep(500); + } + } catch (InterruptedException e) + { + } + }); + } } }