From f8b26651e6c79267dc26ed55a00846691daf9563 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Tue, 22 Feb 2011 15:15:16 +0000
Subject: [PATCH] wrap sequence string

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@15584 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 .../artemis/components/variant/IOUtils.java   | 26 +++++++++++++------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/uk/ac/sanger/artemis/components/variant/IOUtils.java b/uk/ac/sanger/artemis/components/variant/IOUtils.java
index 7a84c4dc5..420adf44d 100644
--- a/uk/ac/sanger/artemis/components/variant/IOUtils.java
+++ b/uk/ac/sanger/artemis/components/variant/IOUtils.java
@@ -181,14 +181,14 @@ class IOUtils
           "Warning", JOptionPane.WARNING_MESSAGE);
       return;  
     }
-    
+
     MarkerRange marker = selection.getMarkerRange();
     Range range = marker.getRawRange();
     int direction = ( marker.isForwardMarker() ? Bases.FORWARD : Bases.REVERSE);
     FeatureVector features = entryGroup.getAllFeatures();
     FileWriter writer = null;
     String fastaFiles = "";
-    
+
     String name = entryGroup.getActiveEntries().elementAt(0).getName();
     int sbeg = range.getStart();
     int send = range.getEnd();
@@ -196,7 +196,6 @@ class IOUtils
     StringBuffer buffSeq = null;
     try
     {
-      
       if(!view)
       {
         File newfile = new File(
@@ -222,16 +221,14 @@ class IOUtils
 
         if(view) // sequence viewer
         {
-          buffSeq.append(">");
-          buffSeq.append(header.toString());
-          buffSeq.append("\n");
-          buffSeq.append(basesStr);
+          buffSeq.append(">").append(header.toString()).append("\n");
+          wrapString(basesStr, buffSeq);
           buffSeq.append("\n");
         }
         else    // write to file
           writeSequence(writer, header.toString(), basesStr);
       }
-      
+
       if(writer != null)
         writer.close();
     }
@@ -397,6 +394,19 @@ class IOUtils
     return basesStr;
   }
   
+  
+  private static void wrapString(String bases, StringBuffer buff)
+  {
+    final int SEQUENCE_LINE_BASE_COUNT = 60;
+    for(int k=0; k<bases.length(); k+=SEQUENCE_LINE_BASE_COUNT)
+    {
+      int end = k + SEQUENCE_LINE_BASE_COUNT;
+      if(end > bases.length())
+        end = bases.length();
+      buff.append ( bases.substring(k,end) ).append("\n");
+    }
+  }
+  
   private static void writeSequence(FileWriter writer, String header, String bases) throws IOException
   {
     writer.write (">" + header + "\n");
-- 
GitLab