import jalview.datamodel.SequenceI;
import jalview.schemes.ColourSchemeI;
+/**
+ * This interface should be implemented by complex file parser with the ability
+ * to store linked data and complex view states in addition to Alignment data
+ *
+ *
+ */
public interface ComplexAlignFile
{
+ /**
+ * Determines if Sequence features should be shown
+ *
+ * @return
+ */
public boolean isShowSeqFeatures();
+ /**
+ * Obtains the colour scheme from a complex file parser
+ *
+ * @return
+ */
public ColourSchemeI getColourScheme();
+ /**
+ * Retrieves the Column selection/hidden column from a complex file parser
+ *
+ * @return
+ */
public ColumnSelection getColumnSelection();
+ /**
+ * Retrieves hidden sequences from a complex file parser
+ *
+ * @return
+ */
public SequenceI[] getHiddenSequences();
}
*/
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 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.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
// System.out.println(ssm.toString());
ssm.addStructureViewerListener(this);
ssm.addSelectionListener(this);
+ addInternalFrameListener(new InternalFrameAdapter()
+ {
+ @Override
+ public void internalFrameClosed(InternalFrameEvent evt)
+ {
+ close();
+ }
+ });
+
}
public void initVarna()
}
+ /**
+ * 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);
+ }
+ }
+ }
+
}
af.getViewport().setShowSequenceFeatures(showSeqFeatures);
af.changeColour(cs);
- // ((HtmlFile) source).applySettingsToAlignmentView(af);
}
- // else if (source instanceof JSONFile)
- // {
- // ColumnSelection colSel = ((JSONFile) source).getColumnSelection();
- // SequenceI[] hiddenSeqs = ((JSONFile) source).getHiddenSequences();
- // boolean showSeqFeatures = ((HtmlFile) source).isShowSeqFeatures();
- // ColourSchemeI cs = ((HtmlFile) source).getColourScheme();
- // af = new AlignFrame(al, hiddenSeqs, colSel,
- // AlignFrame.DEFAULT_WIDTH,
- // AlignFrame.DEFAULT_HEIGHT);
- // af.getViewport().setShowSequenceFeatures(showSeqFeatures);
- // af.changeColour(cs);
- // // ((JSONFile) source).applySettingsToAlignmentView(af);
- // }
else
{
af = new AlignFrame(al, AlignFrame.DEFAULT_WIDTH,
public void parseHiddenCols(JSONObject jvSettingsJson)
{
- // hiddenColumns = new ArrayList<int[]>();
String hiddenCols = (String) jvSettingsJson.get("hiddenCols");
if(hiddenCols != null && !hiddenCols.isEmpty()){
columnSelection = new ColumnSelection();
String[] rangeStrings = hiddenCols.split(";");
for(String rangeString : rangeStrings){
String[] range = rangeString.split("-");
- // hiddenColumns.add(new int[]
- // { Integer.valueOf(range[0]), Integer.valueOf(range[1]) });
columnSelection.hideColumns(Integer.valueOf(range[0]),
Integer.valueOf(range[1]));
}
String descripiton = (String) jsonFeature.get("description");
String seqRef = (String) jsonFeature.get("sequenceRef");
Float score = Float.valueOf(jsonFeature.get("score").toString());
- // Hashtable otherDetails = (Hashtable) jsonFeature
- // .get("otherDetails");
- // sequenceFeature.otherDetails = otherDetails;
Sequence seq = seqMap.get(seqRef);
SequenceFeature sequenceFeature = new SequenceFeature();