Skip to content

Commit

Permalink
Fix grey colors.
Browse files Browse the repository at this point in the history
  • Loading branch information
uhafner committed May 15, 2023
1 parent ef2a8d3 commit fc60555
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 36 deletions.
58 changes: 24 additions & 34 deletions src/main/java/io/jenkins/plugins/echarts/JenkinsPalette.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import java.util.List;
import java.util.Locale;

import org.apache.commons.lang3.StringUtils;

/**
* Jenkins color palette. Each color is represented as a CSS variable that will be rendered according to the selected
* theme.
Expand All @@ -13,35 +15,28 @@
* colors</a>
*/
public enum JenkinsPalette {
BLACK(Variation.NO_VARIATION),
BLACK(StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY),
BLUE,
BROWN,
CYAN,
GREY,
GREY("light-", "medium-", "dark-"),
GREEN,
INDIGO,
ORANGE,
PINK,
PURPLE,
RED,
WHITE(Variation.NO_VARIATION),
WHITE(StringUtils.EMPTY, StringUtils.EMPTY, StringUtils.EMPTY),
YELLOW;

private static final List<JenkinsPalette> CHART_COLORS = List.of(JenkinsPalette.RED, JenkinsPalette.BLUE,
static final List<JenkinsPalette> CHART_COLORS = List.of(JenkinsPalette.RED, JenkinsPalette.BLUE,
JenkinsPalette.YELLOW, JenkinsPalette.GREEN, JenkinsPalette.CYAN, JenkinsPalette.INDIGO,
JenkinsPalette.ORANGE, JenkinsPalette.PINK, JenkinsPalette.PURPLE, JenkinsPalette.BROWN);

/**
* Returns a list of different colors that can be used for charts.
*
* @return a list of colors
*/
public static List<JenkinsPalette> chartColors() {
return CHART_COLORS;
}

/**
* Returns a chart color that can be used to render element {@code n} in a chart.
* Returns a chart color that can be used to render element {@code n} in a chart. If {@code n} is greater than
* the number of available colors then the color will be selected from the beginning of the list,
* and so on.
*
* @param n
* the n-th element to render
Expand All @@ -52,32 +47,31 @@ public static JenkinsPalette chartColor(final int n) {
return CHART_COLORS.get(n % CHART_COLORS.size());
}

private final Variation variation;
private final String infixLight;
private final String infixNormal;
private final String infixDark;

JenkinsPalette() {
this(Variation.VARIATION);
}

JenkinsPalette(final Variation variation) {
this.variation = variation;
this(LIGHT_INFIX, StringUtils.EMPTY, DARK_INFIX);
}

private enum Variation {
NO_VARIATION,
VARIATION
JenkinsPalette(final String infixLight, final String infixNormal, final String infixDark) {
this.infixLight = infixLight;
this.infixNormal = infixNormal;
this.infixDark = infixDark;
}

private static final String PREFIX = "--";
private static final String DARK_ID = "dark-";
private static final String LIGHT_ID = "light-";
private static final String DARK_INFIX = "dark-";
private static final String LIGHT_INFIX = "light-";

/**
* Returns the CSS variable name for this color (light variation).
*
* @return the CSS variable name
*/
public String light() {
return getVariation(LIGHT_ID);
return compose(infixLight);
}

/**
Expand All @@ -86,7 +80,7 @@ public String light() {
* @return the CSS variable name
*/
public String normal() {
return PREFIX + cssName();
return compose(infixNormal);
}

/**
Expand All @@ -95,14 +89,10 @@ public String normal() {
* @return the CSS variable name
*/
public String dark() {
return getVariation(DARK_ID);
}

private String getVariation(final String prefix) {
return variation == Variation.NO_VARIATION ? normal() : PREFIX + prefix + cssName();
return compose(infixDark);
}

private String cssName() {
return name().toLowerCase(Locale.ENGLISH);
private String compose(final String infix) {
return PREFIX + infix + name().toLowerCase(Locale.ENGLISH);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@
class JenkinsPaletteTest {
@Test
void shouldCreateRotatingPalette() {
var palette = JenkinsPalette.chartColors();
var palette = JenkinsPalette.CHART_COLORS;

for (int i = 0; i < palette.size(); i++) {
assertThat(JenkinsPalette.chartColor(i)).isEqualTo(palette.get(i));
assertThat(JenkinsPalette.chartColor(i)).isEqualTo(JenkinsPalette.chartColor(i + 10));
assertThat(JenkinsPalette.chartColor(i + palette.size())).isEqualTo(palette.get(i));
}

assertThat(JenkinsPalette.GREY.light()).isEqualTo("--light-grey");
assertThat(JenkinsPalette.GREY.normal()).isEqualTo("--medium-grey");
assertThat(JenkinsPalette.GREY.dark()).isEqualTo("--dark-grey");
}
}

0 comments on commit fc60555

Please sign in to comment.