git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-2379 null references to PCA model when panel is closed
[jalview.git]
/
src
/
jalview
/
gui
/
PCAPanel.java
diff --git
a/src/jalview/gui/PCAPanel.java
b/src/jalview/gui/PCAPanel.java
index
4f5a018
..
aa01bf5
100644
(file)
--- a/
src/jalview/gui/PCAPanel.java
+++ b/
src/jalview/gui/PCAPanel.java
@@
-46,8
+46,9
@@
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JColorChooser;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JColorChooser;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JRadioButtonMenuItem;
+import javax.swing.event.InternalFrameAdapter;
+import javax.swing.event.InternalFrameEvent;
/**
* DOCUMENT ME!
/**
* DOCUMENT ME!
@@
-81,6
+82,7
@@
public class PCAPanel extends GPCAPanel implements Runnable,
*/
public PCAPanel(AlignmentPanel ap)
{
*/
public PCAPanel(AlignmentPanel ap)
{
+ super();
this.av = ap.av;
this.ap = ap;
this.av = ap.av;
this.ap = ap;
@@
-121,6
+123,16
@@
public class PCAPanel extends GPCAPanel implements Runnable,
return;
}
return;
}
+
+ addInternalFrameListener(new InternalFrameAdapter()
+ {
+ @Override
+ public void internalFrameClosed(InternalFrameEvent e)
+ {
+ close_actionPerformed();
+ }
+ });
+
pcaModel = new PCAModel(seqstrings, seqs, nucleotide);
PaintRefresher.Register(this, av.getSequenceSetId());
pcaModel = new PCAModel(seqstrings, seqs, nucleotide);
PaintRefresher.Register(this, av.getSequenceSetId());
@@
-130,6
+142,15
@@
public class PCAPanel extends GPCAPanel implements Runnable,
worker.start();
}
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()
{
@Override
protected void scoreMatrix_menuSelected()
{