From: amwaterhouse Date: Fri, 19 Nov 2004 17:21:46 +0000 (+0000) Subject: checks for new selection before adding a new group X-Git-Tag: Release_2_0~904 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=f288996f4b49bfb065e167f18639c5941dbfcef2;p=jalview.git checks for new selection before adding a new group --- diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index b650c9a..3df1dac 100755 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -303,9 +303,9 @@ public class SeqPanel extends JPanel sg.setConservation(c); ConservationColourScheme ccs = (ConservationColourScheme)sg.cs; ccs.conserve = c; - // sg.cs = new ConservationColourScheme(sg); } + public void setColourScheme(ColourSchemeI cs, boolean showConservation) { if (av.getSelection().size() == 0) @@ -336,22 +336,27 @@ public class SeqPanel extends JPanel sg.setConservation(c); sg.cs = new ConservationColourScheme(sg); } - - } } else { - SequenceGroup sg = av.alignment.addGroup(); - sg.cs = cs; + SequenceGroup sg = av.alignment.findGroup((Sequence)av.sel.sequenceAt(0)); - for (int i=0; i < av.getSelection().size(); i++) + if( isNewSelection(sg) ) { - av.alignment.removeFromGroup(av.alignment.findGroup((Sequence)av.sel.sequenceAt(i)), - (Sequence)av.sel.sequenceAt(i)); - av.alignment.addToGroup(sg,(Sequence)av.sel.sequenceAt(i)); + sg = av.getAlignment().addGroup(); + for (int i=0; i < av.getSelection().size(); i++) + { + av.alignment.removeFromGroup(av.alignment.findGroup( (Sequence) av. + sel.sequenceAt(i)), + (Sequence) av.sel.sequenceAt(i)); + av.alignment.addToGroup(sg, (Sequence) av.sel.sequenceAt(i)); + } } + + sg.cs = cs; + // Selection is made, we only want to change the conservationColour for selected group if( showConservation && !(sg.cs instanceof ConservationColourScheme) @@ -381,6 +386,18 @@ public class SeqPanel extends JPanel repaint(); } + boolean isNewSelection(SequenceGroup sg) + { + if(sg.getSize()!=av.getSelection().size()) + return true; + + for(int i=0; i