diff --git a/uk/ac/sanger/artemis/components/FeatureList.java b/uk/ac/sanger/artemis/components/FeatureList.java index 42157a26d49c490f5724c5389578d87ffbe62d3a..abda3a9b745e9342d8b3644ff12e19c8fdcb90d6 100644 --- a/uk/ac/sanger/artemis/components/FeatureList.java +++ b/uk/ac/sanger/artemis/components/FeatureList.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/FeatureList.java,v 1.26 2007-10-04 10:26:24 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/FeatureList.java,v 1.27 2008-10-23 14:38:55 tjc Exp $ */ package uk.ac.sanger.artemis.components; @@ -29,7 +29,7 @@ import uk.ac.sanger.artemis.*; import uk.ac.sanger.artemis.sequence.*; import uk.ac.sanger.artemis.plot.CodonUsageAlgorithm; -import uk.ac.sanger.artemis.io.DatabaseDocumentEntry; +import uk.ac.sanger.artemis.components.genebuilder.GeneUtils; import uk.ac.sanger.artemis.io.GFFStreamFeature; import uk.ac.sanger.artemis.io.Qualifier; import uk.ac.sanger.artemis.io.InvalidRelationException; @@ -63,7 +63,7 @@ import javax.swing.JComponent; * Features. * * @author Kim Rutherford - * @version $Id: FeatureList.java,v 1.26 2007-10-04 10:26:24 tjc Exp $ + * @version $Id: FeatureList.java,v 1.27 2008-10-23 14:38:55 tjc Exp $ * **/ @@ -73,17 +73,10 @@ public class FeatureList extends EntryGroupPanel SelectionChangeListener, DisplayComponent { - /** - * This variable is true if correlation scores should be shown in the list. - **/ + /** true if correlation scores should be shown */ private boolean show_correlation_scores = false; - /** Index of the first visible feature in the list. */ - private int first_index; - - /** - * This is set to true by selectionChanged() and used by paintComponent(). - **/ + /** set to true by selectionChanged() and used by paintComponent(). */ private boolean selection_changed_flag = false; /** colour used to draw the background. */ @@ -132,12 +125,8 @@ public class FeatureList extends EntryGroupPanel { super(entry_group, selection, goto_event_source, base_plot_group); - for(int i=0; i<getEntryGroup().size(); i++) - { - if(getEntryGroup().elementAt(i).getEMBLEntry() instanceof DatabaseDocumentEntry) - isDatabaseGroup = true; - } - + isDatabaseGroup = GeneUtils.isDatabaseEntry(getEntryGroup()); + addMouseListener(new MouseAdapter() { private FeaturePopup popup = null; @@ -394,40 +383,9 @@ public class FeatureList extends EntryGroupPanel } /** - * Return a vector containing the text that is shown in the list - one - * String per line. - **/ - public StringVector getListStrings() - { - final StringVector return_vector = new StringVector(); - final FeatureEnumeration test_enumerator = getEntryGroup().features(); - - while(test_enumerator.hasMoreFeatures()) - { - final Feature this_feature = test_enumerator.nextFeature(); - return_vector.add(makeFeatureString(this_feature, true)); - } - - return return_vector; - } - - - /** - * Set the first visible index. - **/ - public void setFirstIndex(final int first_index) - { - this.first_index = first_index; - repaint(); - } - - - /** - * * Return the JViewport that this component is contained in. - * */ - protected JViewport getViewport() + private JViewport getViewport() { if(viewport != null) return viewport; @@ -568,8 +526,9 @@ public class FeatureList extends EntryGroupPanel final int index_of_first_selected_feature = entry_group.indexOf(first_selected_feature); - if(index_of_first_selected_feature < first_line_in_view || - index_of_first_selected_feature >= first_line_in_view + numberLines) + if( index_of_first_selected_feature > -1 && + (index_of_first_selected_feature < first_line_in_view || + index_of_first_selected_feature >= first_line_in_view + numberLines)) { getViewport().setViewPosition(new Point(0, index_of_first_selected_feature * getLineHeight()));