diff --git a/uk/ac/sanger/artemis/components/AddMenu.java b/uk/ac/sanger/artemis/components/AddMenu.java index 6df327cd838d0a4248e4b2a4229d76659dd00730..4e8da4c5ca7af6320025880094f2a8bfede15a76 100644 --- a/uk/ac/sanger/artemis/components/AddMenu.java +++ b/uk/ac/sanger/artemis/components/AddMenu.java @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/AddMenu.java,v 1.35 2008-02-06 12:17:53 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/AddMenu.java,v 1.36 2008-03-12 20:57:24 tjc Exp $ */ package uk.ac.sanger.artemis.components; @@ -73,7 +73,7 @@ import javax.swing.KeyStroke; * should have been called CreateMenu. * * @author Kim Rutherford - * @version $Id: AddMenu.java,v 1.35 2008-02-06 12:17:53 tjc Exp $ + * @version $Id: AddMenu.java,v 1.36 2008-03-12 20:57:24 tjc Exp $ **/ public class AddMenu extends SelectionMenu { @@ -898,6 +898,18 @@ public class AddMenu extends SelectionMenu if(i==0 && r.getStart()==1) { prevEnd = r.getEnd(); + + // check for overlapping CDS + if(i<cdsRanges.size()-1) + { + int next = i+1; + while(((Range)cdsRanges.get(next)).getStart() <= prevEnd) + { + prevEnd = ((Range)cdsRanges.get(next)).getEnd(); + i = next; + next++; + } + } continue; } @@ -917,7 +929,19 @@ public class AddMenu extends SelectionMenu location, qualifiers); prevEnd = r.getEnd(); - if(i==cdsRanges.size()-1) + // check for overlapping CDS + if(i<cdsRanges.size()-1) + { + int next = i+1; + while( next < cdsRanges.size() && + ((Range)cdsRanges.get(next)).getStart() <= prevEnd) + { + prevEnd = ((Range)cdsRanges.get(next)).getEnd(); + i = next; + next++; + } + } + else if(i==cdsRanges.size()-1) { if(entry_group.getSequenceLength() > r.getEnd()) {