X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPCAPanel.java;h=58ed0080d5ebd87d0f587b04da2b19aee1c73ac8;hb=7e71cd91595a05c75e8491e3ef3fb09f7913ea55;hp=288ef1f0c9af9734ef5af554a2da3a23f5db459d;hpb=ebb1c48911e4c1d3aaff6e98367cd846baa5074b;p=jalview.git diff --git a/src/jalview/gui/PCAPanel.java b/src/jalview/gui/PCAPanel.java index 288ef1f..58ed008 100644 --- a/src/jalview/gui/PCAPanel.java +++ b/src/jalview/gui/PCAPanel.java @@ -47,6 +47,8 @@ import javax.swing.JCheckBoxMenuItem; import javax.swing.JColorChooser; import javax.swing.JMenuItem; import javax.swing.JRadioButtonMenuItem; +import javax.swing.event.InternalFrameAdapter; +import javax.swing.event.InternalFrameEvent; /** * DOCUMENT ME! @@ -80,6 +82,7 @@ public class PCAPanel extends GPCAPanel implements Runnable, */ public PCAPanel(AlignmentPanel ap) { + super(); this.av = ap.av; this.ap = ap; @@ -120,6 +123,16 @@ public class PCAPanel extends GPCAPanel implements Runnable, return; } + + addInternalFrameListener(new InternalFrameAdapter() + { + @Override + public void internalFrameClosed(InternalFrameEvent e) + { + close_actionPerformed(); + } + }); + pcaModel = new PCAModel(seqstrings, seqs, nucleotide); PaintRefresher.Register(this, av.getSequenceSetId()); @@ -129,6 +142,15 @@ public class PCAPanel extends GPCAPanel implements Runnable, worker.start(); } + /** + * Ensure references to potentially very large objects (the PCA matrices) are + * nulled when the frame is closed + */ + protected void close_actionPerformed() + { + pcaModel = null; + } + @Override protected void scoreMatrix_menuSelected() {