\r
SequenceGroup sg = viewport.getSelectionGroup();\r
copiedSequences = new StringBuffer();\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
- for(int i=0; i<sg.getSize(); i++)\r
+ int index=0;\r
+ for(int i=0; i<sg.getSize(); i++)\r
+ {\r
+ SequenceI seq = null;\r
+ while( seq == null )\r
+ {\r
+ if(orderedSeqs.containsKey(index+""))\r
{\r
- SequenceI seq = sg.getSequenceAt(i);\r
+ seq = (SequenceI) orderedSeqs.get(index + "");\r
+ index++;\r
+ break;\r
+ }\r
+ else\r
+ index++;\r
+ }\r
+\r
copiedSequences.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
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