git://source.jalview.org
/
jalview.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a8e76ac
)
JAL-1778 deregister as a listener when panel closed
author
gmungoc
<g.m.carstairs@dundee.ac.uk>
Mon, 15 Jun 2015 11:18:55 +0000
(12:18 +0100)
committer
gmungoc
<g.m.carstairs@dundee.ac.uk>
Mon, 15 Jun 2015 11:18:55 +0000
(12:18 +0100)
src/jalview/gui/AppVarna.java
patch
|
blob
|
history
diff --git
a/src/jalview/gui/AppVarna.java
b/src/jalview/gui/AppVarna.java
index
5f38313
..
35cd3e5
100644
(file)
--- a/
src/jalview/gui/AppVarna.java
+++ b/
src/jalview/gui/AppVarna.java
@@
-20,17
+20,6
@@
*/
package jalview.gui;
*/
package jalview.gui;
-import jalview.bin.Cache;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.structure.SecondaryStructureListener;
-import jalview.structure.SelectionListener;
-import jalview.structure.SelectionSource;
-import jalview.structure.StructureSelectionManager;
-import jalview.structure.VamsasSource;
-import jalview.util.ShiftList;
-
import java.awt.BorderLayout;
import java.awt.Color;
import java.util.ArrayList;
import java.awt.BorderLayout;
import java.awt.Color;
import java.util.ArrayList;
@@
-41,10
+30,8
@@
import java.util.regex.Pattern;
import javax.swing.JInternalFrame;
import javax.swing.JSplitPane;
import javax.swing.JInternalFrame;
import javax.swing.JSplitPane;
-
-import jalview.bin.Cache;
-import jalview.util.MessageManager;
-import jalview.util.ShiftList;
+import javax.swing.event.InternalFrameAdapter;
+import javax.swing.event.InternalFrameEvent;
import fr.orsay.lri.varna.VARNAPanel;
import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax;
import fr.orsay.lri.varna.VARNAPanel;
import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax;
@@
-57,6
+44,18
@@
import fr.orsay.lri.varna.models.annotations.HighlightRegionAnnotation;
import fr.orsay.lri.varna.models.rna.ModeleBase;
import fr.orsay.lri.varna.models.rna.RNA;
import fr.orsay.lri.varna.models.rna.ModeleBase;
import fr.orsay.lri.varna.models.rna.RNA;
+import jalview.bin.Cache;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.structure.SecondaryStructureListener;
+import jalview.structure.SelectionListener;
+import jalview.structure.SelectionSource;
+import jalview.structure.StructureSelectionManager;
+import jalview.structure.VamsasSource;
+import jalview.util.MessageManager;
+import jalview.util.ShiftList;
+
public class AppVarna extends JInternalFrame implements
InterfaceVARNAListener, SelectionListener,
SecondaryStructureListener// implements
public class AppVarna extends JInternalFrame implements
InterfaceVARNAListener, SelectionListener,
SecondaryStructureListener// implements
@@
-134,6
+133,15
@@
public class AppVarna extends JInternalFrame implements
// System.out.println(ssm.toString());
ssm.addStructureViewerListener(this);
ssm.addSelectionListener(this);
// System.out.println(ssm.toString());
ssm.addStructureViewerListener(this);
ssm.addSelectionListener(this);
+ addInternalFrameListener(new InternalFrameAdapter()
+ {
+ @Override
+ public void internalFrameClosed(InternalFrameEvent evt)
+ {
+ close();
+ }
+ });
+
}
public void initVarna()
}
public void initVarna()
@@
-447,4
+455,23
@@
public class AppVarna extends JInternalFrame implements
}
}
+ /**
+ * Tidy up as necessary when the viewer panel is closed
+ */
+ protected void close()
+ {
+ /*
+ * Deregister as a listener, to free references to this object
+ */
+ if (ap != null)
+ {
+ StructureSelectionManager ssm = ap.getStructureSelectionManager();
+ if (ssm != null)
+ {
+ ssm.removeStructureViewerListener(AppVarna.this, null);
+ ssm.removeSelectionListener(AppVarna.this);
+ }
+ }
+ }
+
}
}