Fix \t handling bug in Bundle
[nikiroo-utils.git] / src / be / nikiroo / utils / resources / Bundle.java
index 2039d578e3c581a98efabad7369dbd0c879ed626..ca61f6d8e509c2616f307f3d2076a1475575d2ad 100644 (file)
@@ -1,5 +1,6 @@
 package be.nikiroo.utils.resources;
 
+import java.awt.Color;
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileInputStream;
@@ -178,6 +179,31 @@ public class Bundle<E extends Enum<E>> {
                return ' ';
        }
 
+       /**
+        * Return the value associated to the given id as a {@link Color}.
+        * 
+        * @param the
+        *            id of the value to get
+        * 
+        * @return the associated value
+        */
+       public Color getColor(E id) {
+               Color color = null;
+
+               String bg = getString(id).trim();
+               if (bg.startsWith("#") && bg.length() == 7) {
+                       try {
+                               color = new Color(Integer.parseInt(bg.substring(1, 3), 16),
+                                               Integer.parseInt(bg.substring(3, 5), 16),
+                                               Integer.parseInt(bg.substring(5, 7), 16));
+                       } catch (NumberFormatException e) {
+                               color = null; // no changes
+                       }
+               }
+
+               return color;
+       }
+
        /**
         * Create/update the .properties file.
         * <p>
@@ -374,7 +400,7 @@ public class Bundle<E extends Enum<E>> {
                        value = "";
                }
 
-               String[] lines = value.replaceAll("\t", "\\t").split("\n");
+               String[] lines = value.replaceAll("\t", "\\\\\\t").split("\n");
                for (int i = 0; i < lines.length; i++) {
                        writer.write(lines[i]);
                        if (i < lines.length - 1) {