package org.f2o.absurdum.puck.gui.graph;
import java.awt.Color;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.f2o.absurdum.puck.gui.config.PuckConfiguration;
import org.f2o.absurdum.puck.util.ColorUtils;
public class GraphColorSettings
{
private static GraphColorSettings instance;
/**
* Map of color settings, containing things like the background color, grid color, etc.
*/
private Map colorSettings = Collections.synchronizedMap ( new HashMap() );
private GraphColorSettings()
{
;
}
public static GraphColorSettings getInstance()
{
if ( instance == null ) instance = new GraphColorSettings();
return instance;
}
/**
* Obtains the color setting with the given name.
* @param name
* @return
*/
public Color getColorSetting ( String name )
{
Color result;
result = (Color) colorSettings.get(name);
if ( result != null ) return result;
String configString = PuckConfiguration.getInstance().getProperty("mapColor."+name);
if ( configString != null )
{
result = ColorUtils.stringToColor(configString);
colorSettings.put(name, result);
return result;
}
return null;
}
/**
* Sets the given color setting. Also sets it in the configuration file.
* @param name
* @param color
*/
public void setColorSetting ( String name , Color color )
{
colorSettings.put(name,color);
PuckConfiguration.getInstance().setProperty("mapColor."+name,ColorUtils.colorToString(color));
}
}