package org.sakaiproject.tool.assessment.audio;
import java.util.Properties;
import java.io.FileInputStream;
import java.io.*;
import java.util.Enumeration;
import java.util.ResourceBundle;
import java.util.Locale;
import java.util.HashMap;
import java.awt.Color;
import java.util.StringTokenizer;
public class ColorModel
{
private static final String RESOURCE_PACKAGE = "org.sakaiproject.tool.assessment.bundle";
private static final String RESOURCE_NAME = "colors";
private static ResourceBundle colors = ResourceBundle.getBundle(RESOURCE_PACKAGE + "." +
RESOURCE_NAME, Locale.getDefault());
private static HashMap map = new HashMap();
ColorModel()
{
if (map.size()==0)
{
// System.out.println("Map size zero.");
Enumeration cEnum = colors.getKeys();
while (cEnum.hasMoreElements())
{
String colorName = (String) cEnum.nextElement();
String colorString = (String) colors.getString(colorName);
// System.out.println(colorName + "=" + colorString);
Color color = makeColor(colorString);
map.put(colorName, color);
// System.out.println("DEBUG: " + getColor(colorName));
}
}
else
{
// System.out.println("map.size()="+map.size());
}
}
public Color getColor(String colorName)
{
return (Color) map.get(colorName);
}
/**
* Make a Color from a comma delimited RGB value
* @param colorString comma delimited decimal or hex values
*
* @return a Color
*/
private Color makeColor(String colorString)
{
int colorArray[] = { 0, 0, 0 };
String colorNames[] = {"RED", "GREEN", "BLUE" };
StringTokenizer st = new StringTokenizer(colorString, ",");
for (int i=0; st.hasMoreElements(); i++)
{
try
{
String val = st.nextToken();
if (val.startsWith("0x"))
{
colorArray[i] = Integer.parseInt(val.substring(2), 16);
}
else
{
colorArray[i] = Integer.parseInt(val);
}
}
catch (NumberFormatException ex)
{
System.out.println("Unable to read color " + colorNames[i] + " value.");
}
}
return new Color(colorArray[0],colorArray[1],colorArray[2]);
}
// test
public static void main(String s[])
{
new ColorModel();
new ColorModel();
}
}