package org.nightlabs.jfire.reporting.admin.parameter.ui.util;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.draw2d.ColorConstants;
import org.eclipse.swt.graphics.Color;
/**
* @author Daniel.Mazurek [at] NightLabs [dot] de
*
*/
public class PageColorUtil
{
private static List<Color> pageColors = new ArrayList<Color>();
private static Color paramColor = new Color(null, 163, 163, 163);
private static List<Color> headerColors = new ArrayList<Color>();
private static Color paramHeaderColor = new Color(null, 78, 77, 77);
private static List<Color> borderColors = new ArrayList<Color>();
private static Color paramBorderColor = ColorConstants.black;;
private static List<Color> fontColors = new ArrayList<Color>();
private static Color paramFontColor = ColorConstants.black;
private static List<Color> headerFontColors = new ArrayList<Color>();
private static Color paramHeaderFontColor = ColorConstants.white;
static {
fontColors.add(new Color(null, 57, 57, 57));
borderColors.add(new Color(null, 114, 114, 114));
headerFontColors.add(new Color(null, 57, 57, 57));
headerColors.add(new Color(null, 170, 183, 156));
pageColors.add(new Color(null, 216, 226, 206));
headerColors.add(new Color(null, 162, 162, 192));
pageColors.add(new Color(null, 213, 213, 227));
headerColors.add(new Color(null, 186, 131, 131));
pageColors.add(new Color(null, 228, 180, 180));
headerColors.add(new Color(null, 209, 188, 125));
pageColors.add(new Color(null, 238, 223, 177));
headerColors.add(new Color(null, 170, 139, 139));
pageColors.add(new Color(null, 212, 188, 226));
}
private static Color getColor(int colorIndex, List<Color> list) {
if (colorIndex < 0) {
if (list == pageColors)
return paramColor;
else if (list == headerColors)
return paramHeaderColor;
else if (list == borderColors)
return paramBorderColor;
else if (list == fontColors)
return paramFontColor;
else if (list == headerFontColors)
return paramHeaderFontColor;
}
int index = colorIndex % list.size();
return list.get(index);
}
public static Color getPageColor(int colorIndex)
{
return getColor(colorIndex, pageColors);
}
public static Color getHeaderColor(int colorIndex)
{
return getColor(colorIndex, headerColors);
}
public static Color getBorderColor(int colorIndex)
{
return getColor(colorIndex, borderColors);
}
public static Color getFontColor(int colorIndex)
{
return getColor(colorIndex, fontColors);
}
public static Color getHeaderFontColor(int colorIndex)
{
return getColor(colorIndex, headerFontColors);
}
}