X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=aaad2aed632c844ebad2b1c199613378fa44daa4;hb=6de402db90987d3645f3429d9073c13678d8e980;hp=0b9af01ca9a08ee2b0b749eb09f40fe9cec2d190;hpb=890bd0eac47a4b0f55bd062a359c16a43c3780a0;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index 0b9af01..aaad2ae 100755 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -86,20 +86,20 @@ public class SeqPanel * @param avp DOCUMENT ME! * @param p DOCUMENT ME! */ - public SeqPanel(AlignViewport avp, AlignmentPanel p) + public SeqPanel(AlignViewport av, AlignmentPanel ap) { linkImageURL = getClass().getResource("/images/link.gif"); ToolTipManager.sharedInstance().registerComponent(this); ToolTipManager.sharedInstance().setInitialDelay(0); ToolTipManager.sharedInstance().setDismissDelay(10000); - this.av = avp; + this.av = av; setBackground(Color.white); - seqCanvas = new SeqCanvas(avp); + seqCanvas = new SeqCanvas(ap); setLayout(new BorderLayout()); add(seqCanvas, BorderLayout.CENTER); - ap = p; + this.ap = ap; if (!av.isDataset()) { @@ -204,6 +204,13 @@ public class SeqPanel continue; } + if (features[i].featureGroup != null + && seqCanvas.fr.featureGroups!=null + && seqCanvas.fr.featureGroups.containsKey(features[i].featureGroup) + && !((Boolean)seqCanvas.fr.featureGroups.get(features[i].featureGroup)).booleanValue()) + continue; + + if ( (features[i].getBegin() <= res) && (features[i].getEnd() >= res)) { @@ -213,36 +220,11 @@ public class SeqPanel } features = new SequenceFeature[tmp.size()]; - for (int i = 0; i < tmp.size(); i++) - { - features[i] = (SequenceFeature) tmp.elementAt(i); - } + tmp.copyInto(features); return features; } - Vector getAllFeaturesAtRes(SequenceI seq, int res) - { - Vector allFeatures = new Vector(); - int index = 0; - if (seq.getSequenceFeatures() != null && av.featuresDisplayed != null) - { - while (index < seq.getSequenceFeatures().length) - { - SequenceFeature sf = seq.getSequenceFeatures()[index]; - if (sf.getBegin() <= res && - sf.getEnd() >= res) - { - if (av.featuresDisplayed.containsKey(sf.getType())) - { - allFeatures.addElement(sf); - } - } - index++; - } - } - return allFeatures; - } void endEditing() { @@ -534,8 +516,6 @@ public class SeqPanel } endEditing(); - - ap.paintAlignment(true); } /** @@ -1486,17 +1466,16 @@ public class SeqPanel if (javax.swing.SwingUtilities.isRightMouseButton(evt)) { - Vector allFeatures = getAllFeaturesAtRes(sequence.getDatasetSequence(), + SequenceFeature [] allFeatures = findFeaturesAtRes(sequence.getDatasetSequence(), sequence.findPosition(res)); Vector links = new Vector(); - for (int i = 0; i < allFeatures.size(); i++) + for (int i = 0; i < allFeatures.length; i++) { - SequenceFeature sf = (SequenceFeature) allFeatures.elementAt(i); - if (sf.links != null) + if (allFeatures[i].links != null) { - for (int j = 0; j < sf.links.size(); j++) + for (int j = 0; j < allFeatures[i].links.size(); j++) { - links.addElement(sf.links.elementAt(j)); + links.addElement(allFeatures[i].links.elementAt(j)); } } } @@ -1594,13 +1573,14 @@ public class SeqPanel SliderPanel.setPIDSliderSource(ap, stretchGroup.cs, stretchGroup.getName()); } + PaintRefresher.Refresh(this, av.getSequenceSetId()); + ap.paintAlignment(true); } + changeEndRes = false; changeStartRes = false; stretchGroup = null; - PaintRefresher.Refresh(this, av.getSequenceSetId()); - ap.paintAlignment(true); } /**