sg.setConservation(c);\r
ConservationColourScheme ccs = (ConservationColourScheme)sg.cs;\r
ccs.conserve = c;\r
- // sg.cs = new ConservationColourScheme(sg);\r
}\r
\r
+\r
public void setColourScheme(ColourSchemeI cs, boolean showConservation)\r
{\r
if (av.getSelection().size() == 0)\r
sg.setConservation(c);\r
sg.cs = new ConservationColourScheme(sg);\r
}\r
-\r
-\r
}\r
}\r
else\r
{\r
- SequenceGroup sg = av.alignment.addGroup();\r
- sg.cs = cs;\r
+ SequenceGroup sg = av.alignment.findGroup((Sequence)av.sel.sequenceAt(0));\r
\r
- for (int i=0; i < av.getSelection().size(); i++)\r
+ if( isNewSelection(sg) )\r
{\r
- av.alignment.removeFromGroup(av.alignment.findGroup((Sequence)av.sel.sequenceAt(i)),\r
- (Sequence)av.sel.sequenceAt(i));\r
- av.alignment.addToGroup(sg,(Sequence)av.sel.sequenceAt(i));\r
+ sg = av.getAlignment().addGroup();\r
+ for (int i=0; i < av.getSelection().size(); i++)\r
+ {\r
+ av.alignment.removeFromGroup(av.alignment.findGroup( (Sequence) av.\r
+ sel.sequenceAt(i)),\r
+ (Sequence) av.sel.sequenceAt(i));\r
+ av.alignment.addToGroup(sg, (Sequence) av.sel.sequenceAt(i));\r
+ }\r
}\r
\r
+\r
+ sg.cs = cs;\r
+\r
// Selection is made, we only want to change the conservationColour for selected group\r
if( showConservation\r
&& !(sg.cs instanceof ConservationColourScheme)\r
repaint();\r
}\r
\r
+ boolean isNewSelection(SequenceGroup sg)\r
+ {\r
+ if(sg.getSize()!=av.getSelection().size())\r
+ return true;\r
+\r
+ for(int i=0; i<sg.getSize(); i++)\r
+ if( !av.getSelection().contains( sg.getSequenceAt(i) ))\r
+ return true;\r
+\r
+ return false;\r
+ }\r
+\r
\r
public ColourSchemeI getColourScheme()\r
{\r