JAL-842; Text element containing the structure is not visible anymore
[jalview.git] / src / jalview / gui / AppVarna.java
index 7617574..35e9d35 100644 (file)
@@ -18,6 +18,8 @@
 package jalview.gui;
 
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.awt.*;
 
 import javax.swing.*;
@@ -61,11 +63,13 @@ public class AppVarna extends JInternalFrame implements InterfaceVARNAListener,S
          initVarna();
   }*/
   
+  
   public AppVarna(String seq,String struc,String name,AlignmentPanel ap){
          ArrayList<RNA> rnaList = new ArrayList<RNA>();
          RNA rna1 = new RNA(name);
          try {
-                 rna1.setRNA(seq,struc);
+                 rna1.setRNA(seq,replaceOddGaps(struc));
          } catch (ExceptionUnmatchedClosingParentheses e2) {
                e2.printStackTrace();
          } catch (ExceptionFileFormatOrSyntax e3) {
@@ -92,17 +96,26 @@ public class AppVarna extends JInternalFrame implements InterfaceVARNAListener,S
          JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,vab.getListPanel(),varnaPanel);
          getContentPane().setLayout(new BorderLayout());
          getContentPane().add(split, BorderLayout.CENTER);
-         getContentPane().add(vab.getTools(), BorderLayout.NORTH);     
+         //getContentPane().add(vab.getTools(), BorderLayout.NORTH);   
          varnaPanel.addVARNAListener(this);
          jalview.gui.Desktop.addInternalFrame(this,"VARNA -"+name,getBounds().width, getBounds().height);
          this.pack();
          showPanel(true);
   }
   
+  public String replaceOddGaps(String oldStr){
+         String patternStr = "[^([{<>}])]";
+      String replacementStr = ".";
+      Pattern pattern = Pattern.compile(patternStr);
+      Matcher matcher = pattern.matcher(oldStr);
+      String newStr=matcher.replaceAll(replacementStr);
+         return newStr;
+  }
+  
   public RNA trimRNA(RNA rna){
          RNA rnaTrim = new RNA("trim_"+rna.getName());
          try {
-                 rnaTrim.setRNA(rna.getSeq(),rna.getStructDBN());
+                 rnaTrim.setRNA(rna.getSeq(),replaceOddGaps(rna.getStructDBN()));
          } catch (ExceptionUnmatchedClosingParentheses e2) {
                e2.printStackTrace();
          } catch (ExceptionFileFormatOrSyntax e3) {