/*\r
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)\r
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle\r
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)\r
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle\r
* \r
* This file is part of Jalview.\r
* \r
\r
import java.io.PrintStream;\r
import java.util.Enumeration;\r
+import java.util.List;\r
import java.util.Vector;\r
\r
/**\r
SequenceI[] selseqs;\r
if (selection != null)\r
{\r
- Vector sel = selection.getSequences(null);\r
+ List<SequenceI> sel = selection.getSequences(null);\r
this.selected = new Vector();\r
- selseqs = selection.getSequencesInOrder(alignment, false);\r
+ selseqs = selection.getSequencesInOrder(alignment, selectedRegionOnly);\r
}\r
else\r
{\r
\r
// get the alignment's group list and make a copy\r
Vector grps = new Vector();\r
- Vector gg = alignment.getGroups();\r
- Enumeration gge = gg.elements();\r
- while (gge.hasMoreElements())\r
- {\r
- grps.addElement(gge.nextElement());\r
- }\r
+ List<SequenceGroup> gg = alignment.getGroups();\r
+ grps.addAll(gg);\r
ScGroup[] sgrps = null;\r
boolean addedgps[] = null;\r
if (grps != null)\r
// visible and selected region\r
int ssel = selection.getStartRes(), esel = selection.getEndRes();\r
Vector isg = new Vector();\r
- Enumeration<?> en = grps.elements();\r
+ Enumeration en = grps.elements();\r
while (en.hasMoreElements())\r
{\r
sg = (SequenceGroup) en.nextElement();\r
{\r
sg.setEndRes(esel);\r
}\r
+ sg.setStartRes(sg.getStartRes()-ssel+1);\r
+ sg.setEndRes(sg.getEndRes()-ssel+1);\r
+ \r
isg.addElement(sg);\r
}\r
}\r
* prune any groups to the visible coordinates of the alignment.\r
*/\r
{\r
- int nvg = scGroups != null ? scGroups.size() : 0;\r
+ int nvg = (scGroups != null) ? scGroups.size() : 0;\r
if (nvg > 0)\r
{\r
SequenceGroup[] nsg = new SequenceGroup[nvg];\r
continue;\r
}\r
}\r
+\r
+ // clone group properties\r
+ nsg[g] = new SequenceGroup(sg);\r
+\r
// may need to shift/trim start and end ?\r
if (r && !viscontigs)\r
{\r
+ // Not fully tested code - routine not yet called with viscontigs==false\r
if (nsg[g].getStartRes() < gstart)\r
{\r
nsg[g].setStartRes(0);\r
nsg[g].setStartRes(nsg[g].getStartRes() - gstart);\r
nsg[g].setEndRes(nsg[g].getEndRes() - gstart);\r
}\r
- if (nsg[g].getEndRes() > gend)\r
+ if (nsg[g].getEndRes() > (gend-gstart))\r
{\r
- nsg[g].setEndRes(gend);\r
+ nsg[g].setEndRes(gend-gstart);\r
}\r
}\r
-\r
- // clone group properties\r
- nsg[g] = new SequenceGroup(sg);\r
}\r
if (viscontigs)\r
{\r
public static void summariseAlignmentView(AlignmentView view,\r
PrintStream os)\r
{\r
- os.println("View has " + view.sequences.length + " of which "\r
- + (view.selected == null ? "None" : view.selected.size())\r
- + " are selected.");\r
+ os.print("View has " + view.sequences.length + " of which ");\r
+ if (view.selected == null) {\r
+ os.print("None");\r
+ } else {\r
+ os.print(" "+view.selected.size());\r
+ }\r
+ os.println(" are selected.");\r
os.print("View is " + view.getWidth() + " columns wide");\r
int viswid = 0;\r
int[] contigs = view.getContigs();\r
+ " wide and has " + visal.getHeight() + " seqs.");\r
if (visal.getGroups() != null && visal.getGroups().size() > 0)\r
{\r
- SequenceGroup sg;\r
- Enumeration en = visal.getGroups().elements();\r
+ \r
int i = 1;\r
- while (en.hasMoreElements())\r
+ for (SequenceGroup sg:visal.getGroups())\r
{\r
- sg = (SequenceGroup) en.nextElement();\r
os.println("Group " + (i++) + " begins at column "\r
+ sg.getStartRes() + " and ends at " + sg.getEndRes());\r
}\r