Dont export annotations if not visible
[jalview.git] / src / jalview / gui / Desktop.java
index f11b1d5..45a03fa 100755 (executable)
@@ -47,6 +47,7 @@ public class Desktop extends jalview.jbgui.GDesktop
     public static jalview.ws.Discoverer discoverer;
 
     public static Object [] jalviewClipboard;
+    public static boolean internalCopy = false;
 
     static int fileLoadingCount= 0;
 
@@ -251,7 +252,10 @@ public class Desktop extends jalview.jbgui.GDesktop
 
     public void lostOwnership(Clipboard clipboard, Transferable contents)
     {
-      Desktop.jalviewClipboard = null;
+      if (!internalCopy)
+        Desktop.jalviewClipboard = null;
+
+      internalCopy = false;
     }
 
     public void dragEnter(DropTargetDragEvent evt)
@@ -834,6 +838,52 @@ public class Desktop extends jalview.jbgui.GDesktop
 
     }
 
+    jalview.gui.VamsasClient v_client=null;
+    public void vamsasLoad_actionPerformed(ActionEvent e)
+    {
+      if (v_client==null) {
+        // Start a session.
+        JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.
+            getProperty("LAST_DIRECTORY"));
+
+        chooser.setFileView(new JalviewFileView());
+        chooser.setDialogTitle("Load Vamsas file");
+        chooser.setToolTipText("Import");
+
+        int value = chooser.showOpenDialog(this);
+
+        if (value == JalviewFileChooser.APPROVE_OPTION)
+        {
+          v_client = new jalview.gui.VamsasClient(this,
+              chooser.getSelectedFile());
+          this.vamsasLoad.setText("Session Update");
+          this.vamsasStop.setVisible(true);
+          v_client.initial_update();
+          v_client.startWatcher();
+        }
+      } else {
+        // store current data in session.
+        v_client.push_update();
+      }
+    }
+    public void vamsasStop_actionPerformed(ActionEvent e) {
+      if (v_client!=null) {
+        v_client.end_session();
+        v_client=null;
+        this.vamsasStop.setVisible(false);
+        this.vamsasLoad.setText("Start Vamsas Session...");
+      }
+    }
+    /**
+     * 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"));
+      vamsasLoad.setVisible(!b);
+      vamsasStop.setVisible(!b);
+
+    }
 
 }