if (lineSettings != null) {
for (String plot : lineSettings.split("\n")) {
Map<String, LineSettings> settingsMap = new HashMap<String, LineSettings>();
for (String line : plot.split("\t")) {
LineSettings settings = new LineSettings();
String[] tokens = line.split(" ");
try {
int i = 0;
if (tokens.length > i) settings.setIdentifier ( tokens[i++] );
if (tokens.length > i) settings.setColorIndex (Integer.parseInt (tokens[i++]));
if (tokens.length > i) settings.setThickness (Integer.parseInt (tokens[i++]));
if (tokens.length > i) settings.setMarker (Integer.parseInt (tokens[i++]));
if (tokens.length > i) settings.setCharacter ( tokens[i++] );
if (tokens.length > i) settings.setUseCharacter (Boolean.parseBoolean(tokens[i++]));
if (tokens.length > i) settings.setHasRegression (Boolean.parseBoolean(tokens[i++]));
if (tokens.length > i) settings.setRegressionPoints(Integer.parseInt (tokens[i++]));
} catch (Exception e) {
logger.error("Could not parse plot line settings from persistence", e);
}
if (!settings.getIdentifier().isEmpty()) {
settingsMap.put(settings.getIdentifier(), settings);
}
}
lineSettingAssignments.add(settingsMap);
}
}
/* Merge in color assignments, if specified */
List<Map<String, Integer>> colorAssignments = getColorAssignments();
for (int i = 0; i < Math.min(colorAssignments.size(), lineSettingAssignments.size()); i++) {
Map<String, LineSettings> settingsMap = lineSettingAssignments.get(i);
for (Entry<String, Integer> e : colorAssignments.get(i).entrySet()) {
if (!settingsMap.containsKey(e.getKey())) { // Only override unspecified settings
LineSettings settings = new LineSettings();
settings.setIdentifier(e.getKey());
settings.setColorIndex(e.getValue());
settings.setMarker(e.getValue()); // Use same index for markers by default
settingsMap.put(e.getKey(), settings);
}
}
}