JAL-842; Give Varna frames name for window organizer; always display
[jalview.git] / src / jalview / gui / AppVarna.java
index 7a1e206..012d0d1 100644 (file)
@@ -48,7 +48,7 @@ public class AppVarna extends JInternalFrame implements InterfaceVARNAListener//
 
   VARNAPanel varnaPanel;
   
-  String name;
+  public String name;
   
   /*public AppVarna(){
          vab = new AppVarnaBinding(); 
@@ -60,36 +60,62 @@ public class AppVarna extends JInternalFrame implements InterfaceVARNAListener//
          RNA rna1 = new RNA(name);
          try {
                  rna1.setRNA(seq,struc);
-        } catch (ExceptionUnmatchedClosingParentheses e2) {
+         } catch (ExceptionUnmatchedClosingParentheses e2) {
                e2.printStackTrace();
          } catch (ExceptionFileFormatOrSyntax e3) {
                e3.printStackTrace();
          }
          rnaList.add(rna1);
+         rnaList.add(trimRNA(rna1));
          
          vab = new AppVarnaBinding(rnaList);
          //vab = new AppVarnaBinding(seq,struc);
-         name=this.name;
+         //System.out.println("Hallo: "+name);
+         this.name=name;
          initVarna();    
   }
   
   public void initVarna(){
-         //TODO: Why is it not possible to include varnaPanel in the AppVarna-Jframe?
          //vab.setFinishedInit(false);
          varnaPanel=vab.get_varnaPanel();
          setBackground(Color.white);
+         JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,vab.getListPanel(),varnaPanel);
          getContentPane().setLayout(new BorderLayout());
-         getContentPane().add(varnaPanel, BorderLayout.CENTER);
-         
+         getContentPane().add(split, BorderLayout.CENTER);
+         //getContentPane().add(vab.getTools(), BorderLayout.NORTH);   
          varnaPanel.addVARNAListener(this);
-         jalview.gui.Desktop.addInternalFrame(this,name,getBounds().width, getBounds().height);
+         jalview.gui.Desktop.addInternalFrame(this,"VARNA -"+name,getBounds().width, getBounds().height);
          this.pack();
-         this.setVisible(true);
-         //showPanel(true);
+         showPanel(true);
   }
   
+  public RNA trimRNA(RNA rna){
+         RNA rnaTrim = new RNA(rna.getName()+"_trim");
+         String seq=rna.getSeq();
+         String struc=rna.getStructDBN();
+         String newSeq="";
+         String newStruc="";
+         for(int i=0;i<seq.length();i++){
+                 if(seq.substring(i, i+1).compareTo("-")!=0){
+                         newSeq=newSeq+seq.substring(i, i+1);
+                         newStruc=newStruc+struc.substring(i,i+1);
+                 }
+         }
+         try {
+               rnaTrim.setRNA(newSeq,newStruc);
+       } catch (ExceptionUnmatchedClosingParentheses e) {
+               // TODO Auto-generated catch block
+               e.printStackTrace();
+       } catch (ExceptionFileFormatOrSyntax e) {
+               // TODO Auto-generated catch block
+               e.printStackTrace();
+       }
+       //System.out.println(newSeq+"\t"+newStruc);
+       return rnaTrim;
+  }
+
   public void showPanel(boolean show){
-         varnaPanel.setVisible(show);
+         this.setVisible(show);
   }
   
   private boolean _started = false;