diff --git a/uk/ac/sanger/artemis/FeatureVector.java b/uk/ac/sanger/artemis/FeatureVector.java index 99ae0deb4d382d5416f3f2471410948a13d6cc18..4f1c4c6a8feac0fc6e7fd950c0ef4ea96aaec39e 100644 --- a/uk/ac/sanger/artemis/FeatureVector.java +++ b/uk/ac/sanger/artemis/FeatureVector.java @@ -25,6 +25,7 @@ package uk.ac.sanger.artemis; +import uk.ac.sanger.artemis.io.IndexedGFFDocumentEntry; import uk.ac.sanger.artemis.util.FastVector; import java.util.*; @@ -84,6 +85,9 @@ public class FeatureVector { * Return true if this object contains the given Feature. **/ public boolean contains (Feature feature) { + if(feature.getEntry().getEMBLEntry() instanceof IndexedGFFDocumentEntry) + return IndexedGFFDocumentEntry.contains(feature, this); + return vector.contains (feature); } diff --git a/uk/ac/sanger/artemis/SimpleEntryGroup.java b/uk/ac/sanger/artemis/SimpleEntryGroup.java index ba38647571b18d6acdd2bcf4359e4d38367f9e45..b9ad835280375077fd2bc90cccd4309f0d855e47 100644 --- a/uk/ac/sanger/artemis/SimpleEntryGroup.java +++ b/uk/ac/sanger/artemis/SimpleEntryGroup.java @@ -26,6 +26,7 @@ package uk.ac.sanger.artemis; import uk.ac.sanger.artemis.sequence.*; +import uk.ac.sanger.artemis.io.IndexedGFFDocumentEntry; import uk.ac.sanger.artemis.io.Range; import uk.ac.sanger.artemis.io.StreamSequence; import uk.ac.sanger.artemis.io.SimpleDocumentEntry; @@ -460,7 +461,6 @@ public class SimpleEntryGroup extends EntryVector if(index < 0) throw new Error("internal error - index out of range: " + index); - int feature_count_of_previous_entries = 0; final int active_entries_size = active_entries.size(); for(int entry_index = 0; entry_index < active_entries_size; @@ -642,6 +642,9 @@ public class SimpleEntryGroup extends EntryVector **/ public void add(final Entry entry) { + if(entry.getEMBLEntry() instanceof IndexedGFFDocumentEntry) + ((IndexedGFFDocumentEntry)entry.getEMBLEntry()).setEntryGroup(this); + addElement(entry); } @@ -871,7 +874,7 @@ public class SimpleEntryGroup extends EntryVector targets = (Vector)listeners.clone(); } - boolean seen_chado_manager = false; + //boolean seen_chado_manager = false; final int targets_size = targets.size(); for(int i = 0; i < targets_size; ++i) {