Index: applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/preferences/GraphViewPreferences.java
===================================================================
--- applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/preferences/GraphViewPreferences.java	(revision 27359)
+++ applications/editors/josm/plugins/graphview/src/org/openstreetmap/josm/plugins/graphview/plugin/preferences/GraphViewPreferences.java	(revision 27760)
@@ -1,3 +1,5 @@
 package org.openstreetmap.josm.plugins.graphview.plugin.preferences;
+
+import static org.openstreetmap.josm.tools.I18n.marktr;
 
 import static org.openstreetmap.josm.plugins.graphview.core.property.VehiclePropertyTypes.AXLELOAD;
@@ -234,8 +236,4 @@
         currentColorScheme = new PreferencesColorScheme(this);
 
-        nodeColor = Color.WHITE;
-        segmentColor = Color.WHITE;
-        arrowheadFillColor = Color.BLACK;
-
         separateDirections = false;
 
@@ -262,7 +260,7 @@
         }
 
-        Main.pref.put("graphview.defaultNodeColor", createColorString(nodeColor));
-        Main.pref.put("graphview.defaultSegmentColor", createColorString(segmentColor));
-        Main.pref.put("graphview.defaultArrowheadCoreColor", createColorString(arrowheadFillColor));
+        Main.pref.putColor(marktr("graphview default node"), Color.WHITE);
+        Main.pref.putColor(marktr("graphview default segment"), Color.WHITE);
+        Main.pref.putColor(marktr("graphview arrowhead core"), Color.BLACK);
 
         Main.pref.put("graphview.separateDirections", separateDirections);
@@ -274,10 +272,10 @@
     private void readPreferences() {
 
-        if (Main.pref.hasKey("graphview.parameterBookmarks")) {
+        if (!Main.pref.get("graphview.parameterBookmarks").isEmpty()) {
             String bookmarksString = Main.pref.get("graphview.parameterBookmarks");
             parameterBookmarks = parseAccessParameterBookmarksString(bookmarksString);
         }
 
-        if (Main.pref.hasKey("graphview.activeBookmark")) {
+        if (!Main.pref.get("graphview.activeBookmark").isEmpty()) {
             currentParameterBookmarkName = Main.pref.get("graphview.activeBookmark");
         }
@@ -289,14 +287,14 @@
         useInternalRulesets = Main.pref.getBoolean("graphview.useInternalRulesets", true);
 
-        if (Main.pref.hasKey("graphview.rulesetFolder")) {
+        if (!Main.pref.get("graphview.rulesetFolder").isEmpty()) {
             String dirString = Main.pref.get("graphview.rulesetFolder");
             rulesetFolder = new File(dirString);
         }
-        if (Main.pref.hasKey("graphview.rulesetFile")) {
+        if (!Main.pref.get("graphview.rulesetFile").isEmpty()) {
             String fileString = Main.pref.get("graphview.rulesetFile");
             currentRulesetFile = new File(fileString);
         }
 
-        if (Main.pref.hasKey("graphview.rulesetResource")) {
+        if (!Main.pref.get("graphview.rulesetResource").isEmpty()) {
             String rulesetString = Main.pref.get("graphview.rulesetResource");
             //get the enum value for the string
@@ -310,23 +308,7 @@
         }
 
-        if (Main.pref.hasKey("graphview.defaultNodeColor")) {
-            Color color = parseColorString(Main.pref.get("graphview.defaultNodeColor"));
-            if (color != null) {
-                nodeColor = color;
-            }
-        }
-        if (Main.pref.hasKey("graphview.defaultSegmentColor")) {
-            Color color = parseColorString(Main.pref.get("graphview.defaultSegmentColor"));
-            if (color != null) {
-                segmentColor = color;
-            }
-        }
-        if (Main.pref.hasKey("graphview.defaultArrowheadCoreColor")) {
-            Color color = parseColorString(Main.pref.get("graphview.defaultArrowheadCoreColor"));
-            if (color != null) {
-            	arrowheadFillColor = color;
-            }
-        }
-
+        nodeColor = Main.pref.getColor(marktr("graphview default node"), Color.WHITE);
+        segmentColor = Main.pref.getColor(marktr("graphview default segment"), Color.WHITE);
+        arrowheadFillColor = Main.pref.getColor(marktr("graphview arrowhead core"), Color.BLACK);
         separateDirections = Main.pref.getBoolean("graphview.separateDirections", false);
 
@@ -503,23 +485,3 @@
         }
     }
-
-    private static final Pattern COLOR_PATTERN =
-        Pattern.compile("^(\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})$");
-
-    private String createColorString(Color color) {
-        return color.getRed() + ", " + color.getGreen() + ", " + color.getBlue();
-    }
-
-    private Color parseColorString(String string) {
-        Matcher matcher = COLOR_PATTERN.matcher(string);
-        if (!matcher.matches()) {
-            return null;
-        } else {
-            int r = Integer.parseInt(matcher.group(1));
-            int g = Integer.parseInt(matcher.group(2));
-            int b = Integer.parseInt(matcher.group(3));
-            return new Color(r, g, b);
-        }
-    }
-
 }
