X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAppVarna.java;fp=src%2Fjalview%2Fgui%2FAppVarna.java;h=5c3785a3d6b050bec34250482770efd615f54aaa;hb=2a9991ef1eb02d97e9c8ed1644f292117ae6f600;hp=5f383138651e92f905792dbce77f5982089892e8;hpb=2ce465aaa3047e1ef758a26af2fbfcf8626b4a69;p=jalview.git diff --git a/src/jalview/gui/AppVarna.java b/src/jalview/gui/AppVarna.java index 5f38313..5c3785a 100644 --- a/src/jalview/gui/AppVarna.java +++ b/src/jalview/gui/AppVarna.java @@ -20,17 +20,6 @@ */ 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; @@ -41,10 +30,8 @@ import java.util.regex.Pattern; 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; @@ -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 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 @@ -134,6 +133,15 @@ public class AppVarna extends JInternalFrame implements // System.out.println(ssm.toString()); ssm.addStructureViewerListener(this); ssm.addSelectionListener(this); + addInternalFrameListener(new InternalFrameAdapter() + { + @Override + public void internalFrameClosed(InternalFrameEvent evt) + { + close(); + } + }); + } public void initVarna() @@ -447,4 +455,19 @@ 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 (ssm != null) + { + ssm.removeStructureViewerListener(AppVarna.this, null); + ssm.removeSelectionListener(AppVarna.this); + } + } + }