X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAppVarna.java;h=5c3785a3d6b050bec34250482770efd615f54aaa;hb=6e79eb7f3978f7e4ab11b7e2aa334a6e9b739996;hp=21f809fc121d3566f0685ff99864b6e6847ceda5;hpb=a8f483d04205bb8273ee311c12968b7e86d205fa;p=jalview.git
diff --git a/src/jalview/gui/AppVarna.java b/src/jalview/gui/AppVarna.java
index 21f809f..5c3785a 100644
--- a/src/jalview/gui/AppVarna.java
+++ b/src/jalview/gui/AppVarna.java
@@ -1,34 +1,25 @@
/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
* Jalview is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
*
* Jalview is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License along with Jalview. If not, see .
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
* The Jalview Authors are detailed in the 'AUTHORS' file.
*/
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;
@@ -39,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;
@@ -55,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
@@ -81,12 +82,12 @@ public class AppVarna extends JInternalFrame implements
String struc, String name, AlignmentPanel ap)
{
-// System.out.println("1:"+sname);
-// System.out.println("2:"+seq);
-// System.out.println("3:"+strucseq);
-// System.out.println("4:"+struc);
-// System.out.println("5:"+name);
-// System.out.println("6:"+ap);
+ // System.out.println("1:"+sname);
+ // System.out.println("2:"+seq);
+ // System.out.println("3:"+strucseq);
+ // System.out.println("4:"+struc);
+ // System.out.println("5:"+name);
+ // System.out.println("6:"+ap);
this.ap = ap;
ArrayList rnaList = new ArrayList();
RNA rna1 = new RNA(name);
@@ -94,9 +95,9 @@ public class AppVarna extends JInternalFrame implements
{
rna1.setRNA(strucseq, replaceOddGaps(struc));
-// System.out.println("The sequence is :"+rna1.getSeq());
-// System.out.println("The sequence is:"+struc);
-// System.out.println("The sequence is:"+replaceOddGaps(struc).toString());
+ // System.out.println("The sequence is :"+rna1.getSeq());
+ // System.out.println("The sequence is:"+struc);
+ // System.out.println("The sequence is:"+replaceOddGaps(struc).toString());
} catch (ExceptionUnmatchedClosingParentheses e2)
{
e2.printStackTrace();
@@ -107,7 +108,7 @@ public class AppVarna extends JInternalFrame implements
RNA trim = trimRNA(rna1, "trimmed " + sname);
rnaList.add(trim);
rnaList.add(rna1);
-
+
rnas.put(seq, rna1);
rnas.put(seq, trim);
rna1.setName(sname + " (with gaps)");
@@ -115,7 +116,7 @@ public class AppVarna extends JInternalFrame implements
{
seqs.put(trim, seq);
seqs.put(rna1, seq);
-
+
/**
* if (false || seq.getStart()!=1) { for (RNA rshift:rnaList) { ShiftList
* shift=offsets.get(rshift); if (shift==null) { offsets.put(rshift,
@@ -127,16 +128,25 @@ public class AppVarna extends JInternalFrame implements
// vab = new AppVarnaBinding(seq,struc);
this.name = sname + " trimmed to " + name;
initVarna();
-
+
ssm = ap.getStructureSelectionManager();
- //System.out.println(ssm.toString());
+ // System.out.println(ssm.toString());
ssm.addStructureViewerListener(this);
ssm.addSelectionListener(this);
+ addInternalFrameListener(new InternalFrameAdapter()
+ {
+ @Override
+ public void internalFrameClosed(InternalFrameEvent evt)
+ {
+ close();
+ }
+ });
+
}
public void initVarna()
{
-
+
// vab.setFinishedInit(false);
varnaPanel = vab.get_varnaPanel();
setBackground(Color.white);
@@ -147,11 +157,12 @@ public class AppVarna extends JInternalFrame implements
// getContentPane().add(vab.getTools(), BorderLayout.NORTH);
varnaPanel.addVARNAListener(this);
varnaPanel.addSelectionListener(this);
- jalview.gui.Desktop.addInternalFrame(this, MessageManager.formatMessage("label.varna_params", new String[]{name}),
- getBounds().width, getBounds().height);
+ jalview.gui.Desktop.addInternalFrame(this,
+ MessageManager.formatMessage("label.varna_params", new String[]
+ { name }), getBounds().width, getBounds().height);
this.pack();
showPanel(true);
-
+
}
public String replaceOddGaps(String oldStr)
@@ -167,7 +178,7 @@ public class AppVarna extends JInternalFrame implements
public RNA trimRNA(RNA rna, String name)
{
ShiftList offset = new ShiftList();
-
+
RNA rnaTrim = new RNA(name);
try
{
@@ -434,14 +445,29 @@ public class AppVarna extends JInternalFrame implements
public void onTranslationChanged()
{
// TODO Auto-generated method stub
-
+
}
@Override
public void onZoomLevelChanged()
{
// TODO Auto-generated method stub
-
+
+ }
+
+ /**
+ * 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);
+ }
}
}