+ if (value == JalviewFileChooser.APPROVE_OPTION)
+ {
+ java.io.File choice = chooser.getSelectedFile();
+ jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice.getParent());
+ String warnmsg=null;
+ String warnttl=null;
+ try {
+ v_client.vclient.storeDocument(choice);
+ }
+ catch (Error ex)
+ {
+ warnttl = "Serious Problem saving Vamsas Document";
+ warnmsg = ex.toString();
+ jalview.bin.Cache.log.error("Error Whilst saving document to "+choice,ex);
+
+ }
+ catch (Exception ex)
+ {
+ warnttl = "Problem saving Vamsas Document.";
+ warnmsg = ex.toString();
+ jalview.bin.Cache.log.warn("Exception Whilst saving document to "+choice,ex);
+
+ }
+ if (warnmsg!=null)
+ {
+ JOptionPane.showInternalMessageDialog(Desktop.desktop,
+
+ warnmsg, warnttl,
+ JOptionPane.ERROR_MESSAGE);
+ }
+ }
+ }
+ }
+ JProgressBar vamUpdate = null;
+ /**
+ * hide vamsas user gui bits when a vamsas document event is being handled.
+ * @param b true to hide gui, false to reveal gui
+ */
+ public void setVamsasUpdate(boolean b)
+ {
+ jalview.bin.Cache.log.debug("Setting gui for Vamsas update " +
+ (b ? "in progress" : "finished"));
+
+ if (vamUpdate!=null)
+ {
+ this.removeProgressPanel(vamUpdate);
+ }
+ if (b)
+ {
+ vamUpdate = this.addProgressPanel("Updating vamsas session");
+ }
+ vamsasStart.setVisible(!b);
+ vamsasStop.setVisible(!b);
+ vamsasSave.setVisible(!b);
+ }
+
+ public JInternalFrame[] getAllFrames()
+ {
+ return desktop.getAllFrames();
+ }
+
+
+ /**
+ * Checks the given url to see if it gives a response indicating that
+ * the user should be informed of a new questionnaire.
+ * @param url
+ */
+ public void checkForQuestionnaire(String url)
+ {
+ UserQuestionnaireCheck jvq = new UserQuestionnaireCheck(url);
+ javax.swing.SwingUtilities.invokeLater(jvq);
+ }
+ /**
+ * Proxy class for JDesktopPane which optionally
+ * displays the current memory usage and highlights
+ * the desktop area with a red bar if free memory runs low.
+ * @author AMW
+ */
+ class MyDesktopPane extends JDesktopPane implements Runnable
+ {
+
+ boolean showMemoryUsage = false;
+ Runtime runtime;
+ java.text.NumberFormat df;
+
+ float maxMemory, allocatedMemory, freeMemory, totalFreeMemory, percentUsage;
+
+ public MyDesktopPane(boolean showMemoryUsage)
+ {
+ showMemoryUsage(showMemoryUsage);