X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignmentPanel.java;h=4db029c48254460a1b1065475e561cb766bb1366;hb=4dc7619bed1c475c35f328601b5d7d46116327a6;hp=87d5933a70fddf9974753e87f2ba1d7e4988d1e2;hpb=b7c070c8110258c023fdd6e3b49ad9aab7ad2fa5;p=jalview.git diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index 87d5933..4db029c 100644 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -101,6 +101,8 @@ public class AlignmentPanel extends GAlignmentPanel implements */ private boolean dontScrollComplement; + private PropertyChangeListener propertyChangeListener; + /** * Creates a new AlignmentPanel object. * @@ -135,7 +137,7 @@ public class AlignmentPanel extends GAlignmentPanel implements vscroll.addAdjustmentListener(this); final AlignmentPanel ap = this; - av.addPropertyChangeListener(new PropertyChangeListener() + propertyChangeListener = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) @@ -146,7 +148,8 @@ public class AlignmentPanel extends GAlignmentPanel implements alignmentChanged(); } } - }); + }; + av.addPropertyChangeListener(propertyChangeListener); fontChanged(); adjustAnnotationHeight(); updateLayout(); @@ -1278,7 +1281,7 @@ public class AlignmentPanel extends GAlignmentPanel implements if (file != null) { alignFrame.setProgressBar(MessageManager.formatMessage( - "status.saving_file", new Object[] { type.getLabel() }), + "status.saving_file", new Object[] { type.getLabel() }), pSessionId); } } @@ -1307,8 +1310,8 @@ public class AlignmentPanel extends GAlignmentPanel implements im = new jalview.util.ImageMaker(this, type, imageAction, aDimension.getWidth(), aDimension.getHeight() - + boarderBottomOffset, file, - imageTitle, alignFrame, pSessionId, headless); + + boarderBottomOffset, file, imageTitle, + alignFrame, pSessionId, headless); if (av.getWrapAlignment()) { if (im.getGraphics() != null) @@ -1595,8 +1598,18 @@ public class AlignmentPanel extends GAlignmentPanel implements PaintRefresher.RemoveComponent(getSeqPanel().seqCanvas); PaintRefresher.RemoveComponent(getIdPanel().getIdCanvas()); PaintRefresher.RemoveComponent(this); + + /* + * try to ensure references are nulled + */ + if (annotationPanel != null) + { + annotationPanel.dispose(); + } + if (av != null) { + av.removePropertyChangeListener(propertyChangeListener); jalview.structure.StructureSelectionManager ssm = av .getStructureSelectionManager(); ssm.removeStructureViewerListener(getSeqPanel(), null); @@ -1604,7 +1617,7 @@ public class AlignmentPanel extends GAlignmentPanel implements ssm.removeCommandListener(av); ssm.removeStructureViewerListener(getSeqPanel(), null); ssm.removeSelectionListener(getSeqPanel()); - av.setAlignment(null); + av.dispose(); av = null; } else