DEFAULT_FILE_FORMAT added
[jalview.git] / src / jalview / gui / AlignFrame.java
index 3302fff..725a702 100755 (executable)
@@ -287,21 +287,42 @@ public class AlignFrame extends GAlignFrame
 \r
   protected void copy_actionPerformed(ActionEvent e)\r
   {\r
-   if(viewport.getSelectionGroup()==null)\r
-     return;\r
+     if(viewport.getSelectionGroup()==null)\r
+       return;\r
 \r
-   SequenceGroup sg = viewport.getSelectionGroup();\r
+     SequenceGroup sg = viewport.getSelectionGroup();\r
 \r
      Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();\r
      StringBuffer buffer= new StringBuffer();\r
 \r
-       for(int i=0; i<sg.getSize(); i++)\r
+     Hashtable orderedSeqs = new Hashtable();\r
+     for(int i=0; i<sg.getSize(); i++)\r
+     {\r
+        SequenceI seq = sg.getSequenceAt(i);\r
+        int index = viewport.alignment.findIndex(seq);\r
+        orderedSeqs.put(index+"", seq);\r
+     }\r
+\r
+     int index=0;\r
+     for(int i=0; i<sg.getSize(); i++)\r
+     {\r
+       SequenceI seq = null;\r
+       while( seq == null )\r
        {\r
-         SequenceI seq = sg.getSequenceAt(i);\r
+         if(orderedSeqs.containsKey(index+""))\r
+         {\r
+           seq = (SequenceI) orderedSeqs.get(index + "");\r
+           index++;\r
+           break;\r
+         }\r
+         else\r
+           index++;\r
+       }\r
+\r
          buffer.append( seq.getName()+"\t"+seq.findPosition( sg.getStartRes() ) +"\t"\r
                         +seq.findPosition( sg.getEndRes() )+ "\t"\r
                         +sg.getSequenceAt(i).getSequence(sg.getStartRes(), sg.getEndRes()+1)+"\n");\r
-       }\r
+     }\r
      c.setContents( new StringSelection( buffer.toString()) , null ) ;\r
 \r
   }\r