Including of VARNAv-3.9;
[jalview.git] / src / jalview / gui / AppVarnaBinding.java
index 54ca3b3..88cc288 100644 (file)
@@ -80,12 +80,12 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
         */
        //private static final long serialVersionUID = -790155708306987257L;
 
-       //private String DEFAULT_SEQUENCE = "CAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIA";
-       //private String DEFAULT_STRUCTURE1 = "..(((((...(((((...(((((...(((((.....)))))...))))).....(((((...(((((.....)))))...))))).....)))))...)))))..";
-       //private String DEFAULT_STRUCTURE2 = "..(((((...(((((...(((((........(((((...(((((.....)))))...)))))..................))))).....)))))...)))))..";
+       private String DEFAULT_SEQUENCE = "CAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIACAGCACGACACUAGCAGUCAGUGUCAGACUGCAIA";
+       private String DEFAULT_STRUCTURE1 = "..(((((...(((((...(((((...(((((.....)))))...))))).....(((((...(((((.....)))))...))))).....)))))...)))))..";
+       private String DEFAULT_STRUCTURE2 = "..(((((...(((((...(((((........(((((...(((((.....)))))...)))))..................))))).....)))))...)))))..";
        public VARNAPanel vp;
 
-       private JPanel _tools = new JPanel();
+       protected JPanel _tools = new JPanel();
        private JPanel _input = new JPanel();
 
        private JPanel _seqPanel = new JPanel();
@@ -96,10 +96,11 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
        private JLabel _strLabel = new JLabel(" Str:");
        private JLabel _seqLabel = new JLabel(" Seq:");
        private JButton _createButton = new JButton("Create");
+       private JButton _updateButton = new JButton("Update");
        private JButton _deleteButton = new JButton("Delete");
        private JButton _duplicateButton = new JButton("Snapshot");
        
-       private JPanel _listPanel = new JPanel();
+       protected JPanel _listPanel = new JPanel();
        private ReorderableJList _sideList = null;
 
 
@@ -131,9 +132,9 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
                initVarna(seq,struc);
        }
        
-       public AppVarnaBinding(ArrayList<RNA> rnalist){
+       public AppVarnaBinding(ArrayList<RNA> rnaList){
                //super("VARNA in Jalview");
-               initVarnaEdit(rnalist);
+               initVarnaEdit(rnaList);
        }
        
        
@@ -215,13 +216,13 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
                                        FullBackup  sel = (FullBackup) _sideList.getSelectedValue();
                                        Mapping map = Mapping.DefaultOutermostMapping(vp.getRNA().getSize(), sel.rna.getSize());
                                        vp.showRNAInterpolated(sel.rna,sel.config,map);
-                                       _seq.setText(sel.rna.getSeq());
+                                       //_seq.setText(sel.rna.getSeq());
                                        _str.setText(sel.rna.getStructDBN());
                                }
                        }
            });
-
            _rnaList = new BackupHolder(dlm,_sideList);
+                       
                try {
                        vp = new VARNAPanel("0",".");
                        for(int i=0;i<rnaInList.size();i++){
@@ -232,44 +233,39 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
                } 
                vp.setPreferredSize(new Dimension(400, 400));
                for(int i=0;i<rnaInList.size();i++){
-                       _rnaList.add(vp.getConfig().clone(),rnaInList.get(i),generateDefaultName(),true);
+                       if(i<rnaInList.size()-1){
+                               _rnaList.add(vp.getConfig().clone(),rnaInList.get(i),rnaInList.get(i).getName());
+                       }else{
+                               _rnaList.add(vp.getConfig().clone(),rnaInList.get(i),rnaInList.get(i).getName(),true);
+                       }
                }
+
            /*_rnaList.add(vp.getConfig().clone(),_RNA2,generateDefaultName());
            _rnaList.add(vp.getConfig().clone(),_RNA1,generateDefaultName(),true);*/
 
            JScrollPane listScroller = new JScrollPane(_sideList);
            listScroller.setPreferredSize(new Dimension(150, 0));
 
-               //TODO setBackground(_backgroundColor);
                vp.setBackground(_backgroundColor);
-
-
+               
+               
                Font textFieldsFont = Font.decode("MonoSpaced-PLAIN-12");
 
-               _seqLabel.setHorizontalTextPosition(JLabel.LEFT);
-               _seqLabel.setPreferredSize(new Dimension(marginTools, 15));
+               //_seqLabel.setHorizontalTextPosition(JLabel.LEFT);
+               //_seqLabel.setPreferredSize(new Dimension(marginTools, 15));
                _seq.setFont(textFieldsFont);
                _seq.setText(rnaInList.get(0).getSeq());
-
-               _createButton.addActionListener(new ActionListener() {
+               
+               _updateButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
-                               try {
-                               RNA nRNA = new RNA(generateDefaultName());
-                               nRNA.setRNA(_seq.getText(), _str.getText());
-                               nRNA.drawRNARadiate(vp.getConfig());
-                               _rnaList.add(new VARNAConfig(),nRNA,true);
-                               } catch (ExceptionUnmatchedClosingParentheses e1) {
-                                       JOptionPane.showMessageDialog(vp, e1.getMessage(),"Error", JOptionPane.ERROR_MESSAGE);
-                               } catch (ExceptionFileFormatOrSyntax e1) {
-                                       JOptionPane.showMessageDialog(vp, e1.getMessage(),"Error", JOptionPane.ERROR_MESSAGE);
+                               FullBackup  sel = (FullBackup) _sideList.getSelectedValue();
+                               sel.rna.setSequence("A");
                                }
-                       }
                });
-
-
-               _seqPanel.setLayout(new BorderLayout());
-               _seqPanel.add(_seqLabel, BorderLayout.WEST);
-               _seqPanel.add(_seq, BorderLayout.CENTER);
+               
+               //_seqPanel.setLayout(new BorderLayout());
+               //_seqPanel.add(_seqLabel, BorderLayout.WEST);
+               //_seqPanel.add(_seq, BorderLayout.CENTER);
 
                _strLabel.setPreferredSize(new Dimension(marginTools, 15));
                _strLabel.setHorizontalTextPosition(JLabel.LEFT);
@@ -278,8 +274,8 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
                _strPanel.add(_strLabel, BorderLayout.WEST);
                _strPanel.add(_str, BorderLayout.CENTER);
 
-               _input.setLayout(new GridLayout(2, 0));
-               _input.add(_seqPanel);
+               _input.setLayout(new GridLayout(1, 0));
+               //_input.add(_seqPanel);
                _input.add(_strPanel);
 
                JPanel goPanel = new JPanel();
@@ -287,10 +283,10 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
 
                _tools.setLayout(new BorderLayout());
                _tools.add(_input, BorderLayout.CENTER);
-               _tools.add(_info, BorderLayout.SOUTH);
+               //_tools.add(_info, BorderLayout.SOUTH);
                _tools.add(goPanel, BorderLayout.EAST);
 
-               _deleteButton.addActionListener(new ActionListener() {
+               /*_deleteButton.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                                _rnaList.removeSelected();
                        }
@@ -299,22 +295,25 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
                        public void actionPerformed(ActionEvent e) {
                                        _rnaList.add((VARNAConfig)vp.getConfig().clone(),vp.getRNA().clone(),vp.getRNA().getName()+"-"+DateFormat.getTimeInstance(DateFormat.LONG).format(new Date()),true); 
                        }});
+               */
+               goPanel.add(_updateButton, BorderLayout.CENTER);
+               
                
                JPanel ops = new JPanel();
                ops.setLayout(new GridLayout(1,2));
                ops.add(_deleteButton);
                ops.add(_duplicateButton);
-
+               
                JLabel j = new JLabel("Structures Manager",JLabel.CENTER);
                _listPanel.setLayout(new BorderLayout());
                
                _listPanel.add(ops,BorderLayout.SOUTH);
                _listPanel.add(j,BorderLayout.NORTH);
                _listPanel.add(listScroller,BorderLayout.CENTER);
-
-               goPanel.add(_createButton, BorderLayout.CENTER);
-
-               JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,_listPanel,vp);
+               
+               
+               
+               //JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,_listPanel,vp);
                /**TODO
                getContentPane().setLayout(new BorderLayout());
                getContentPane().add(split, BorderLayout.CENTER);
@@ -326,9 +325,34 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
                
                vp.addVARNAListener(this);
        }
+       
+       public JPanel getTools(){
+               return _tools;
+       }
+       
+       public JPanel getListPanel(){
+               return _listPanel;
+       }
+       
+       /**
+        * TODO: Is it effective to transfer the whole RNA?
+        * @return Currently selected RNA
+        */
+       public RNA getSelectedRNA(){
+               return _rnaList.getElementAt(_sideList.getSelectedIndex()).rna;
+       }
+       
+       /**
+        * Substitute currently selected RNA with the edited one
+        * @param rnaEdit
+        */
+       public void updateSelectedRNA(RNA rnaEdit){
+               vp.repaint();
+               vp.showRNA(rnaEdit);
+       }
 
-
-       /*private void RNAPanelDemoInit() 
+       /*
+       private void RNAPanelDemoInit() 
        {
            DefaultListModel dlm = new DefaultListModel(); 
            
@@ -465,8 +489,8 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
                DropTarget dt = new DropTarget(vp, this);
                
                vp.addVARNAListener(this);
-       }*/
-       
+       }
+       */
        public static String generateDefaultName()
        {
                return "User file #"+_nextID++;
@@ -837,6 +861,13 @@ public class AppVarnaBinding extends jalview.ext.varna.JalviewVarnaBinding imple
                // TODO Auto-generated method stub
                
        }
+
+  @Override
+  public void onStructureRedrawn()
+  {
+    // TODO Auto-generated method stub
+    
+  }
 }