/* VARNA is a tool for the automated drawing, visualization and annotation of the secondary structure of RNA, designed as a companion software for web servers and databases. Copyright (C) 2008 Kevin Darty, Alain Denise and Yann Ponty. electronic mail : Yann.Ponty@lri.fr paper mail : LRI, bat 490 Université Paris-Sud 91405 Orsay Cedex France This file is part of VARNA version 3.1. VARNA version 3.1 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. VARNA version 3.1 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 VARNA version 3.1. If not, see http://www.gnu.org/licenses. */ package fr.orsay.lri.varna.applications; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import fr.orsay.lri.varna.VARNAPanel; import fr.orsay.lri.varna.controlers.ControleurInterpolator; import fr.orsay.lri.varna.exceptions.ExceptionDrawingAlgorithm; import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax; import fr.orsay.lri.varna.exceptions.ExceptionModeleStyleBaseSyntaxError; import fr.orsay.lri.varna.exceptions.ExceptionNAViewAlgorithm; import fr.orsay.lri.varna.exceptions.ExceptionNonEqualLength; import fr.orsay.lri.varna.exceptions.ExceptionParameterError; import fr.orsay.lri.varna.exceptions.ExceptionUnmatchedClosingParentheses; import fr.orsay.lri.varna.exceptions.MappingException; import fr.orsay.lri.varna.models.VARNAConfig; import fr.orsay.lri.varna.models.rna.Mapping; import fr.orsay.lri.varna.models.rna.ModeleBase; import fr.orsay.lri.varna.models.rna.ModelBaseStyle; import fr.orsay.lri.varna.models.rna.RNA; import fr.orsay.lri.varna.interfaces.InterfaceVARNAListener;; public class SuperpositionDemo extends JFrame implements InterfaceVARNAListener { /** * */ private static final long serialVersionUID = -790155708306987257L; private static final String DEFAULT_SEQUENCE1 = "CGCGCACGCGAUAUUUCGCGUCGCGCAUUUGCGCGUAGCGCG"; private static final String DEFAULT_SEQUENCE2 = "CGCGCACGCGAUAUUUCGCGUCGCGCAUUUGCGCGUAGCGCG"; private static final String DEFAULT_STRUCTURE1 = "(((((.(((((----....----))))).(((((....)))))..)))))"; private static final String DEFAULT_STRUCTURE2 = "(((((.(((((((((....))))))))).--------------..)))))"; // private static final String DEFAULT_STRUCTURE1 = "((((....))))"; // private static final String DEFAULT_STRUCTURE2 = // "((((..(((....)))..))))"; private VARNAPanel _vpMaster; private VARNAPanel _vpSlave; private JPanel _tools = new JPanel(); private JPanel _input = new JPanel(); private JPanel _seqPanel = new JPanel(); private JPanel _struct1Panel = new JPanel(); private JPanel _struct2Panel = new JPanel(); private JLabel _info = new JLabel(); private JTextField _struct1 = new JTextField(DEFAULT_STRUCTURE1); private JTextField _struct2 = new JTextField(DEFAULT_STRUCTURE2); private JTextField _seq1 = new JTextField(DEFAULT_SEQUENCE1); private JTextField _seq2 = new JTextField(DEFAULT_SEQUENCE2); private JLabel _struct1Label = new JLabel(" Str1:"); private JLabel _struct2Label = new JLabel(" Str2:"); private JLabel _seqLabel = new JLabel(" Seq:"); private JButton _goButton = new JButton("Go"); private JButton _switchButton = new JButton("Switch"); private String _str1Backup = ""; private String _str2Backup = ""; private RNA _RNA1 = new RNA(); private RNA _RNA2 = new RNA(); private static String errorOpt = "error"; @SuppressWarnings("unused") private boolean _error; private Color _backgroundColor = Color.white; @SuppressWarnings("unused") private int _algoCode; private int _currentDisplay = 1; public static ModelBaseStyle createStyle(String txt) { ModelBaseStyle result = new ModelBaseStyle(); try { result.assignParameters(txt); } catch (ExceptionModeleStyleBaseSyntaxError e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ExceptionParameterError e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } public void applyTo(VARNAPanel vp, ModelBaseStyle mb, int[] indices) { for(int i=0;i