merge
[jalview.git] / src / jalview / gui / AppVarnaBinding.java
index 3ea8e4d..25af7d1 100644 (file)
  */
 package jalview.gui;
 
+import jalview.datamodel.SequenceI;
+import jalview.ext.varna.JalviewVarnaBinding;
+import jalview.structure.AtomSpec;
+import jalview.util.MessageManager;
+
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Dimension;
-import java.awt.Font;
 import java.awt.datatransfer.DataFlavor;
 import java.awt.datatransfer.Transferable;
 import java.awt.dnd.DnDConstants;
@@ -54,43 +58,16 @@ import javax.swing.event.ListSelectionListener;
 import fr.orsay.lri.varna.VARNAPanel;
 import fr.orsay.lri.varna.components.ReorderableJList;
 import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed;
+import fr.orsay.lri.varna.exceptions.ExceptionNAViewAlgorithm;
 import fr.orsay.lri.varna.exceptions.ExceptionNonEqualLength;
 import fr.orsay.lri.varna.models.FullBackup;
 import fr.orsay.lri.varna.models.VARNAConfig;
 import fr.orsay.lri.varna.models.rna.RNA;
 
-import jalview.datamodel.SequenceI;
-import jalview.ext.varna.JalviewVarnaBinding;
-import jalview.structure.AtomSpec;
-import jalview.util.MessageManager;
-
 public class AppVarnaBinding extends JalviewVarnaBinding
 {
   public VARNAPanel vp;
 
-  // remove unused (commented out) fields?
-  // protected JPanel _tools = new JPanel();
-  //
-  // private JPanel _input = new JPanel();
-  //
-  // private JPanel _strPanel = new JPanel();
-  //
-  // private JTextField _str = new JTextField();
-  //
-  // private JTextField _seq = new JTextField();
-  //
-  // private JLabel _strLabel = new JLabel(
-  // MessageManager.getString("label.str"));
-  //
-  // private JButton _updateButton = new JButton(
-  // MessageManager.getString("action.update"));
-  //
-  // private JButton _deleteButton = new JButton(
-  // MessageManager.getString("action.delete"));
-  //
-  // private JButton _duplicateButton = new JButton(
-  // MessageManager.getString("action.snapshot"));
-  //
   protected JPanel _listPanel = new JPanel();
 
   private ReorderableJList _sideList = null;
@@ -165,48 +142,6 @@ public class AppVarnaBinding extends JalviewVarnaBinding
 
     vp.setBackground(_backgroundColor);
 
-    Font textFieldsFont = Font.decode("MonoSpaced-PLAIN-12");
-
-    // MC commented out stuff not added to panel - remove?
-    // _seq.setFont(textFieldsFont);
-    // if (!rnaList.isEmpty())
-    // {
-    // _seq.setText(rnaList.get(0).getSeq());
-    // }
-
-    // _updateButton.addActionListener(new ActionListener()
-    // {
-    // public void actionPerformed(ActionEvent e)
-    // {
-    // FullBackup sel = (FullBackup) _sideList.getSelectedValue();
-    // sel.rna.setSequence("A");
-    // }
-    // });
-    //
-    // _strLabel.setPreferredSize(new Dimension(marginTools, 15));
-    // _strLabel.setHorizontalTextPosition(JLabel.LEFT);
-    // _str.setFont(textFieldsFont);
-    // _strPanel.setLayout(new BorderLayout());
-    // _strPanel.add(_strLabel, BorderLayout.WEST);
-    // _strPanel.add(_str, BorderLayout.CENTER);
-    //
-    // _input.setLayout(new GridLayout(1, 0));
-    // _input.add(_strPanel);
-    //
-    // JPanel goPanel = new JPanel();
-    // goPanel.setLayout(new BorderLayout());
-    //
-    // _tools.setLayout(new BorderLayout());
-    // _tools.add(_input, BorderLayout.CENTER);
-    // _tools.add(goPanel, BorderLayout.EAST);
-    //
-    // 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(
             MessageManager.getString("label.structures_manager"),
             JLabel.CENTER);
@@ -531,12 +466,9 @@ public class AppVarnaBinding extends JalviewVarnaBinding
     }
 
     /*
-     * switch display if not already shown
+     * switch display
      */
-    if (sel.rna != rna)
-    {
-      vp.showRNA(model.rna, model.config);
-    }
+    vp.showRNA(model.rna, model.config);
 
     try
     {
@@ -547,12 +479,9 @@ public class AppVarnaBinding extends JalviewVarnaBinding
       vp.toXML(filePath);
 
       /*
-       * restore the previous display if needed
+       * restore the previous display
        */
-      if (sel.rna != rna)
-      {
-        vp.showRNA(sel.rna, sel.config);
-      }
+      vp.showRNA(sel.rna, sel.config);
       
       return filePath;
     } catch (IOException e)
@@ -596,7 +525,7 @@ public class AppVarnaBinding extends JalviewVarnaBinding
    * 
    * @param selectedRna
    */
-  public void setSelectedIndex(int selectedRna)
+  public void setSelectedIndex(final int selectedRna)
   {
     /*
      * note this does nothing if, say, selecting item 3 when only 1 has been
@@ -604,7 +533,6 @@ public class AppVarnaBinding extends JalviewVarnaBinding
      */
     _sideList.setSelectedIndex(selectedRna);
     // TODO ? need a worker thread to get this to happen properly
-    showSelectedStructure();
   }
 
   /**
@@ -622,9 +550,25 @@ public class AppVarnaBinding extends JalviewVarnaBinding
    * @param rna
    * @param config
    */
-  protected void addStructure(RNA rna, VARNAConfig config)
+  protected void addStructure(final RNA rna, final VARNAConfig config)
   {
-    rna.drawRNARadiate(config);
+    drawRna(rna, config);
     _rnaList.add(config, rna, rna.getName());
   }
+
+  /**
+   * @param rna
+   * @param config
+   */
+  protected void drawRna(final RNA rna, final VARNAConfig config)
+  {
+    try
+    {
+      rna.drawRNA(rna.getDrawMode(), config);
+    } catch (ExceptionNAViewAlgorithm e)
+    {
+      // only throwable for draw mode = 3 NAView
+      System.err.println("Error drawing RNA: " + e.getMessage());
+    }
+  }
 }