From 9b8d80670352ab4a6b512ce2e0a84041c0fb361c Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Tue, 7 Jul 2009 14:37:44 +0000
Subject: [PATCH] read line colours from the header

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@11331 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 .../artemis/plot/UserDataAlgorithm.java       | 51 +++++++++++++++++--
 1 file changed, 48 insertions(+), 3 deletions(-)

diff --git a/uk/ac/sanger/artemis/plot/UserDataAlgorithm.java b/uk/ac/sanger/artemis/plot/UserDataAlgorithm.java
index 1f4156546..70ce68b33 100644
--- a/uk/ac/sanger/artemis/plot/UserDataAlgorithm.java
+++ b/uk/ac/sanger/artemis/plot/UserDataAlgorithm.java
@@ -20,7 +20,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  *
- * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/plot/UserDataAlgorithm.java,v 1.8 2009-06-24 14:42:33 tjc Exp $
+ * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/plot/UserDataAlgorithm.java,v 1.9 2009-07-07 14:37:44 tjc Exp $
  */
 
 package uk.ac.sanger.artemis.plot;
@@ -41,7 +41,7 @@ import java.util.regex.Pattern;
  *  set in the constructor.
  *
  *  @author Kim Rutherford <kmr@sanger.ac.uk>
- *  @version $Id: UserDataAlgorithm.java,v 1.8 2009-06-24 14:42:33 tjc Exp $
+ *  @version $Id: UserDataAlgorithm.java,v 1.9 2009-07-07 14:37:44 tjc Exp $
  **/
 
 public class UserDataAlgorithm extends BaseAlgorithm
@@ -78,6 +78,8 @@ public class UserDataAlgorithm extends BaseAlgorithm
   /** Format type for this instance */
   private int FORMAT = BASE_PER_LINE_FORMAT;
   
+  private LineAttributes lines[];
+  
   /**
    *  Create a new UserDataAlgorithm object. This reads a file
    *  which can be one of two types of formats:
@@ -103,10 +105,15 @@ public class UserDataAlgorithm extends BaseAlgorithm
     String first_line = pushback_reader.readLine ();
     if(first_line.startsWith("#"))
     {
+      readLineAttributes(first_line);
       FORMAT = BASE_SPECIFIED_FORMAT;
       first_line = pushback_reader.readLine ().trim();
-      while(first_line.equals("") || first_line.equals("#"))
+      readLineAttributes(first_line);
+      while(first_line.equals("") || first_line.startsWith("#"))
+      {
         first_line = pushback_reader.readLine ().trim();
+        readLineAttributes(first_line);
+      }
     }
     else
       FORMAT = BASE_PER_LINE_FORMAT;
@@ -261,6 +268,44 @@ public class UserDataAlgorithm extends BaseAlgorithm
     }
   }
 
+  /**
+   * Read the line colour from the header. There should be
+   * one per line and space separated.
+   * @param line
+   */
+  private void readLineAttributes(String line)
+  {
+    if(line.indexOf("colour") == -1 &&
+       line.indexOf("color")  == -1)
+      return;
+    
+    int index = line.indexOf("colour");
+    if(index == -1)
+      index = line.indexOf("color");
+    
+    index = line.indexOf(" ", index+1);
+    line = line.substring(index).trim();
+    String rgbValues[] = line.split(" ");
+    
+    try
+    {
+      lines = new LineAttributes[rgbValues.length];   
+      for(int i=0; i<rgbValues.length; i++)
+        lines[i] = new LineAttributes(LineAttributes.parse(rgbValues[i]));
+    }
+    catch(Exception e){ e.printStackTrace(); }
+  }
+  
+  /**
+   * Return any LineAttributes read from the header (for
+   * BASE_SPECIFIED_FORMAT).
+   * @return
+   */
+  public LineAttributes[] getLineAttributes()
+  {
+    return lines;
+  }
+  
   /**
    *  Return the number of values a call to getValues () will return - one
    *  in this case.
-- 
GitLab