}
/**
- * Loads properties from the given properties file. Any existing properties
- * are first cleared.
+ * Loads properties from the given properties file. Any existing properties are
+ * first cleared.
*/
public static void loadProperties(String propsFile)
{
}
/**
- * Gets Jalview application property of given key. Returns null if key not
- * found
+ * Gets Jalview application property of given key. Returns null if key not found
*
* @param key
- * Name of property
+ * Name of property
*
* @return Property value
*/
}
/**
- * These methods are used when checking if the saved preference is different
- * to the default setting
+ * These methods are used when checking if the saved preference is different to
+ * the default setting
*/
public static boolean getDefault(String property, boolean def)
}
/**
- * Answers the value of the given property, or the supplied default value if
- * the property is not set
+ * Answers the value of the given property, or the supplied default value if the
+ * property is not set
*/
public static String getDefault(String property, String def)
{
* Stores property in the file "HOME_DIR/.jalview_properties"
*
* @param key
- * Name of object
+ * Name of object
* @param obj
- * String value of property
+ * String value of property
*
* @return previous value of property (or null)
*/
* Loads in user colour schemes from files.
*
* @param files
- * a '|'-delimited list of file paths
+ * a '|'-delimited list of file paths
*/
public static void initUserColourSchemes(String files)
{
// open Preferences -> Connections
String message = MessageManager
.getString("label.proxy_password_required");
- Preferences.openPreferences(Preferences.CONNECTIONS_TAB,
- message);
+ Preferences.openPreferences(
+ Preferences.TabRef.CONNECTIONS_TAB, message);
Preferences.getInstance()
.proxyAuthPasswordCheckHighlight(true, true);
}
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;
/**
* 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<String> groupURLLinks;
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.
*/
}
/**
- * 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
*/
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
@Override
public void cancel_actionPerformed(ActionEvent e)
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
@Override
public void annotations_actionPerformed(ActionEvent e)
}
/**
- * 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()
}
/**
- * 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)
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);
e.printStackTrace();
}
}
+ else if (showHelp == JvOptionPane.OK_OPTION)
+ {
+ this.selectTab(Preferences.TabRef.STRUCTURE_TAB, null);
+ CompletableFuture<Void> 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)
+ {
+ }
+ });
+ }
}
}
}
}
- public final static int CONNECTIONS_TAB = 5;
+ public static enum TabRef
+ {
+ CONNECTIONS_TAB, STRUCTURE_TAB
+ };
- public void selectTab(int selectTab)
+ public void selectTab(TabRef selectTab)
{
// select a given tab - currently only for Connections
switch (selectTab)
case CONNECTIONS_TAB:
tabbedPane.setSelectedComponent(connectTab);
break;
+ case STRUCTURE_TAB:
+ tabbedPane.setSelectedComponent(structureTab);
+ break;
default:
}
}
}
/**
- * Show a dialog for the user to choose a file. Returns the chosen path, or
- * null on Cancel.
+ * Show a dialog for the user to choose a file. Returns the chosen path, or null
+ * on Cancel.
*
* @return
*/
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void ok_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void cancel_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void annotations_actionPerformed(ActionEvent e)
{