package fr.openwide.core.wicket.more.jqplot.util;
import java.awt.Color;
import java.util.Locale;
import java.util.Set;
import com.google.common.collect.ImmutableSet;
public final class ChartColors {
private ChartColors() { }
public static final Color TRANSPARENT = toColor(0xFFFFFF, 0x00);
private static final int DEFAULT_ALPHA = 0xFF; // IE8 compatibility => no transparency
public static final Color BACKGROUND = TRANSPARENT;
public static final Color SUCCESS = toColor(0x5BB75B);
public static final Color DANGER = toColor(0xB94A48);
public static final Color ONGOING = toColor(0xD76D00);
public static final Color INFO = toColor(0x3A87AD);
public static final Color DARK_GREY = toColor(0x999999);
public static final Color BLUE = toColor(0x376091);
public static final Color RED = toColor(0x953735);
public static final Color GREEN = toColor(0x4F6228);
public static final Color POSITIVE = toColor(0x97bf0d);
public static final Color NEGATIVE = toColor(0xd95152);
public static final Set<Color> BLUE_PALETTE = toColors(
0x254061, 0x376091, 0x95B3D7, 0xB8CCE4,
0x3F3151, 0x60497B, 0xB3A1C7, 0xCCC0DA
);
public static final Set<Color> RED_PALETTE = toColors(
0x632527, 0x953735, 0xD99795, 0xE6B9B8
);
public static final Set<Color> ORANGE_PALETTE = toColors(
0x974807, 0xE46D0A, 0xFAC090, 0xFCD5B4
);
public static final Set<Color> GREEN_PALETTE = toColors(
0x4F6228, 0x75923C, 0xC2D69A, 0xD7E4BC
);
public static final Set<Color> SCATTERED_PALETTE = toColors(
0x4bb2c5, 0xEAA228, 0xc5b47f, 0x579575, 0x839557,
0x958c12, 0x953579, 0x4b5de4, 0xd8b83f, 0xff5800,
0x0085cc, 0xc747a3, 0xcddf54, 0xFBD178, 0x26B4E3,
0xbd70c7
);
public static Color toColor(int rgb) {
return toColor(rgb, DEFAULT_ALPHA);
}
public static Color toColor(int rgb, int alpha) {
int alphaBits = (alpha << 24); // Shift 8*3 = 24 bits, 8bits for each component in R, G, B
return new Color(rgb & 0x00FFFFFF | alphaBits, true);
}
public static Set<Color> toColors(int ... rgbList) {
ImmutableSet.Builder<Color> builder = ImmutableSet.builder();
for (int rgb : rgbList) {
builder.add(toColor(rgb));
}
return builder.build();
}
@SafeVarargs
public static Set<Color> concat(Iterable<Color> ... palettes) {
ImmutableSet.Builder<Color> builder = ImmutableSet.builder();
for (Iterable<Color> palette : palettes) {
builder.addAll(palette);
}
return builder.build();
}
public static String toCssString(Color color) {
float alpha = color.getRGBComponents(null)[3];
if (alpha == 1.0f) { // Compatibilité IE8 : les couleurs avec alpha = 1.0 seront ainsi supportées.
return String.format(Locale.ROOT, "rgb(%d, %d, %d)", color.getRed(), color.getGreen(), color.getBlue());
} else {
return String.format(Locale.ROOT, "rgba(%d, %d, %d, %.3f)", color.getRed(), color.getGreen(), color.getBlue(), alpha);
}
}
}