import javax.swing.JPanel;
+import jalview.api.AlignmentViewPanel;
import jalview.bin.Cache;
+import jalview.datamodel.AlignmentI;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
FeatureRenderer fr = null;
@Override
- public jalview.api.FeatureRenderer getFeatureRenderer()
+ public jalview.api.FeatureRenderer getFeatureRenderer(AlignmentViewPanel alignment)
{
- if (appJmolWindow.ap.av.showSequenceFeatures)
+ AlignmentPanel ap = (alignment==null) ? appJmolWindow.ap : (AlignmentPanel) alignment;
+ if (ap.av.showSequenceFeatures)
{
if (fr == null)
{
- fr = new FeatureRenderer(appJmolWindow.ap);
+ fr = new FeatureRenderer((AlignmentPanel)alignment);
}
- fr.transferSettings(appJmolWindow.ap.seqPanel.seqCanvas
- .getFeatureRenderer());
+ fr.transferSettings(((AlignmentPanel)alignment).
+ seqPanel.seqCanvas.getFeatureRenderer());
}
return fr;
}
@Override
- public jalview.api.SequenceRenderer getSequenceRenderer()
+ public jalview.api.SequenceRenderer getSequenceRenderer(AlignmentViewPanel alignment)
{
- return new SequenceRenderer(appJmolWindow.ap.av);
+ return new SequenceRenderer(((AlignmentPanel)alignment).av);
}
public void sendConsoleEcho(String strEcho)
public void updateColours(Object source)
{
- AlignmentPanel ap = (AlignmentPanel) source;
- if (appJmolWindow.ap.alignFrame.getCurrentView() != ap.av)
+ AlignmentPanel ap = (AlignmentPanel) source,topap;
+ // ignore events from unrelated or non-user interactive frames
+ if ((topap=appJmolWindow.getAlignmentPanelFor(ap.av.getAlignment()))==null || topap.alignFrame.getCurrentView() != ap.av || appJmolWindow.isUsedforcolourby(ap))
return;
-
- colourBySequence(ap.av.getShowSequenceFeatures(), ap.av.alignment);
+ if (!isLoadingFromArchive()) {
+ colourBySequence(ap.av.getShowSequenceFeatures(), ap);
+ }
}
public void notifyScriptTermination(String strStatus, int msWalltime)
}
}
+
+ @Override
+ public void releaseReferences(Object svl)
+ {
+ if (svl instanceof SeqPanel) {
+ appJmolWindow.removeAlignmentPanel(((SeqPanel) svl).ap);
+
+ };
+ }
}