blob: bbbb37f5770f2f4312bcffc13822bdbf3d41d99a [file] [log] [blame]
package com.intellij.vcs.log.graph;
import com.intellij.ui.JBColor;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import java.awt.*;
import java.util.Map;
/**
* @author erokhins
*/
public class ColorGenerator {
private static final Map<Integer, JBColor> ourColorMap = ContainerUtil.newHashMap();
static {
ourColorMap.put(GraphColorManagerImpl.DEFAULT_COLOR, JBColor.BLACK);
}
@NotNull
public static JBColor getColor(int branchNumber) {
JBColor color = ourColorMap.get(branchNumber);
if (color == null) {
color = calcColor(branchNumber);
ourColorMap.put(branchNumber, color);
}
return color;
}
private static int rangeFix(int n) {
return Math.abs(n) % 100 + 70;
}
@NotNull
private static JBColor calcColor(int indexColor) {
int r = indexColor * 200 + 30;
int g = indexColor * 130 + 50;
int b = indexColor * 90 + 100;
try {
Color color = new Color(rangeFix(r), rangeFix(g), rangeFix(b));
return new JBColor(color, color);
}
catch (IllegalArgumentException a) {
throw new IllegalArgumentException("indexColor: " + indexColor + " " + r % 256 + " " + (g % 256) + " " + (b % 256));
}
}
}