/*\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
Vector 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
\r
// get the alignment's group list and make a copy\r
- Vector grps = new Vector(alignment.getGroups());\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
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
{\r
for (int sg = 0; sg < sgrps.length; sg++)\r
{\r
- if (((Vector) grps.get(sg)).contains(selseqs[i]))\r
+ if (((Vector) grps.elementAt(sg)).contains(selseqs[i]))\r
{\r
sequences[csi].setGroupMembership(sgrps[sg]);\r
sgrps[sg].sg.deleteSequence(selseqs[i], false);\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