+ protected void buildVamsasStMenu()
+ {
+ if (v_client == null)
+ {
+ String[] sess = null;
+ try
+ {
+ sess = VamsasApplication.getSessionList();
+ } catch (Exception e)
+ {
+ jalview.bin.Cache.log.warn(
+ "Problem getting current sessions list.", e);
+ sess = null;
+ }
+ if (sess != null)
+ {
+ jalview.bin.Cache.log.debug("Got current sessions list: "
+ + sess.length + " entries.");
+ VamsasStMenu.removeAll();
+ for (int i = 0; i < sess.length; i++)
+ {
+ JMenuItem sessit = new JMenuItem();
+ sessit.setText(sess[i]);
+ sessit.setToolTipText("Connect to session " + sess[i]);
+ final Desktop dsktp = this;
+ final String mysesid = sess[i];
+ sessit.addActionListener(new ActionListener()
+ {
+
+ public void actionPerformed(ActionEvent e)
+ {
+ if (dsktp.v_client == null)
+ {
+ Thread rthr = new Thread(new Runnable()
+ {
+
+ public void run()
+ {
+ dsktp.v_client = new VamsasApplication(dsktp, mysesid);
+ dsktp.setupVamsasConnectedGui();
+ dsktp.v_client.initial_update();
+ }
+
+ });
+ rthr.start();
+ }
+ };
+ });
+ VamsasStMenu.add(sessit);
+ }
+ // don't show an empty menu.
+ VamsasStMenu.setVisible(sess.length > 0);
+
+ }
+ else
+ {
+ jalview.bin.Cache.log.debug("No current vamsas sessions.");
+ VamsasStMenu.removeAll();
+ VamsasStMenu.setVisible(false);
+ }
+ }
+ else
+ {
+ // Not interested in the content. Just hide ourselves.
+ VamsasStMenu.setVisible(false);
+ }
+ }
+
+ public void vamsasSave_actionPerformed(ActionEvent e)
+ {
+ if (v_client != null)
+ {
+ JalviewFileChooser chooser = new JalviewFileChooser(
+ jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
+ { "vdj" }, // TODO: VAMSAS DOCUMENT EXTENSION is VDJ
+ new String[]
+ { "Vamsas Document" }, "Vamsas Document");
+
+ chooser.setFileView(new JalviewFileView());
+ chooser.setDialogTitle("Save Vamsas Document Archive");
+
+ int value = chooser.showSaveDialog(this);
+
+ if (value == JalviewFileChooser.APPROVE_OPTION)
+ {
+ java.io.File choice = chooser.getSelectedFile();
+ JPanel progpanel = addProgressPanel("Saving VAMSAS Document to "
+ + choice.getName());
+ 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);
+
+ }
+ removeProgressPanel(progpanel);
+ if (warnmsg != null)
+ {
+ JOptionPane.showInternalMessageDialog(Desktop.desktop,
+
+ warnmsg, warnttl, JOptionPane.ERROR_MESSAGE);
+ }
+ }
+ }
+ }
+
+ JPanel vamUpdate = null;
+