Annotations move when full alignment edited
[jalview.git] / src / jalview / appletgui / AlignFrame.java
index 147e035..36ee5da 100755 (executable)
@@ -502,9 +502,9 @@ public void itemStateChanged(ItemEvent evt)
     else if (source == loadAnnotations)\r
       loadAnnotations();\r
     else if (source == outputAnnotations)\r
-      outputAnnotations();\r
+      outputAnnotations(true);\r
     else if(source == outputFeatures)\r
-      outputFeatures();\r
+      outputFeatures(true, "Jalview");\r
     else if(source==closeMenuItem)\r
       closeMenuItem_actionPerformed();\r
     else if(source==copy)\r
@@ -655,7 +655,7 @@ public void itemStateChanged(ItemEvent evt)
                                      "Alignment output - " + e.getActionCommand(),\r
                                      600, 500);\r
     cap.setText(new AppletFormatAdapter().formatSequences(e.getActionCommand(),\r
-                                              viewport.getAlignment().getSequences(),\r
+                                              viewport.getAlignment(),\r
                                                       viewport.showJVSuffix));\r
   }\r
 \r
@@ -670,30 +670,52 @@ public void itemStateChanged(ItemEvent evt)
 \r
   }\r
 \r
-  public void outputAnnotations()\r
+  public String outputAnnotations(boolean displayTextbox)\r
   {\r
-    CutAndPasteTransfer cap = new CutAndPasteTransfer(false, this);\r
-    Frame frame = new Frame();\r
-    frame.add(cap);\r
-    jalview.bin.JalviewLite.addFrame(frame,\r
-                                     "Annotations",\r
-                                     600, 500);\r
-    cap.setText( new AnnotationFile().printAnnotations(\r
-      viewport.alignment.getAlignmentAnnotation() ) );\r
+    String annotation = new AnnotationFile().printAnnotations(\r
+      viewport.alignment.getAlignmentAnnotation() );\r
+\r
+    if(displayTextbox)\r
+    {\r
+\r
+      CutAndPasteTransfer cap = new CutAndPasteTransfer(false, this);\r
+      Frame frame = new Frame();\r
+      frame.add(cap);\r
+      jalview.bin.JalviewLite.addFrame(frame,\r
+                                       "Annotations",\r
+                                       600, 500);\r
+      cap.setText(annotation);\r
+    }\r
+\r
+    return annotation;\r
   }\r
 \r
-  public void outputFeatures()\r
+  public String outputFeatures(boolean displayTextbox, String format)\r
   {\r
-    CutAndPasteTransfer cap = new CutAndPasteTransfer(false, this);\r
-    Frame frame = new Frame();\r
-    frame.add(cap);\r
-    jalview.bin.JalviewLite.addFrame(frame,\r
-                                     "Features",\r
-                                     600, 500);\r
+    String features;\r
+    if (format.equalsIgnoreCase("Jalview"))\r
+      features = new FeaturesFile().printJalviewFormat(\r
+              viewport.alignment.getSequencesArray(),\r
+              viewport.featuresDisplayed);\r
+    else\r
+      features = new FeaturesFile().printGFFFormat(\r
+             viewport.alignment.getSequencesArray(),\r
+             viewport.featuresDisplayed);\r
+\r
+\r
+    if(displayTextbox)\r
+    {\r
+      CutAndPasteTransfer cap = new CutAndPasteTransfer(false, this);\r
+      Frame frame = new Frame();\r
+      frame.add(cap);\r
+      jalview.bin.JalviewLite.addFrame(frame,\r
+                                       "Features",\r
+                                       600, 500);\r
+\r
+      cap.setText(features);\r
+    }\r
 \r
-    cap.setText(new FeaturesFile().printJalviewFormat(\r
-                viewport.alignment.getSequencesArray(),\r
-                viewport.featuresDisplayed));\r
+    return features;\r
   }\r
 \r
   void launchFullApplication()\r
@@ -1338,7 +1360,7 @@ public void itemStateChanged(ItemEvent evt)
         new RemoveGapColCommand("Remove Gapped Columns",\r
                                 seqs,\r
                                 start, end,\r
-                                viewport.getGapCharacter());\r
+                                viewport.alignment);\r
 \r
     addHistoryItem(removeGapCols);\r
 \r
@@ -1380,7 +1402,7 @@ public void itemStateChanged(ItemEvent evt)
     addHistoryItem(new RemoveGapsCommand("Remove Gaps",\r
                                            seqs,\r
                                            start, end,\r
-                     viewport.getGapCharacter()));\r
+                     viewport.alignment));\r
 \r
     viewport.setStartRes(seq.findIndex(startRes)-1);\r
 \r