public Builder color(String color, boolean fgBright) { if (color == null) { this.color = COLOR_PALETTE[globalColorIdx++ % COLOR_PALETTE.length]; } else { try { this.color = Ansi.Color.valueOf(color.toUpperCase()); this.fgBright = fgBright; } catch (IllegalArgumentException exp) { throw new IllegalArgumentException( "Invalid color '" + color + "'. Color must be one of YELLOW, CYAN, MAGENTA, GREEN, RED, BLUE or BLACK"); } } return this; }
@Override public Color getColourFor(Style style) { List<Color> colors = new ArrayList<Color>(); for (Style.Emphasis emphasis : style.getEmphasises()) { if (emphasis.equals(Style.Emphasis.BOLD)) { colors.add(newBoldColor()); } else if (emphasis.equals(Style.Emphasis.REVERSE)) { colors.add(newReverseColor()); } else if (emphasis.equals(Style.Emphasis.ITALIC)) { colors.add(newItalicColor()); } } if (style.getColor().equals(Style.Color.GREY)) { colors.add(new BrightForegroundColor(Ansi.Color.BLACK)); } else { Ansi.Color ansiColor = Ansi.Color.valueOf(style.getColor().name().toUpperCase()); if (ansiColor != DEFAULT) { colors.add(new ForegroundColor(ansiColor)); } } return new CompositeColor(colors); }
private Color createColorFromSpec(String colorSpec) { Color cachedColor = colorBySpec.get(colorSpec); if (cachedColor != null) { return cachedColor; } if (colorSpec.equalsIgnoreCase(BOLD)) { return newBoldColor(); } if (colorSpec.equalsIgnoreCase("reverse")) { return newReverseColor(); } if (colorSpec.equalsIgnoreCase("italic")) { return newItalicColor(); } if (colorSpec.contains("-")) { String[] colors = colorSpec.split("-"); ArrayList<Color> colorList = new ArrayList(colors.length); for (String color : colors) { colorList.add(createColorFromSpec(color)); } return new CompositeColor(colorList); } Ansi.Color ansiColor = Ansi.Color.valueOf(colorSpec.toUpperCase()); if (ansiColor != DEFAULT) { return new ForegroundColor(ansiColor); } return noDecoration; }
private static void testAnsi(boolean stderr) { @SuppressWarnings( "resource" ) PrintStream s = stderr ? System.err : System.out; s.print("test on System." + (stderr ? "err" : "out") + ":"); for(Ansi.Color c: Ansi.Color.values()) { s.print(" " + ansi().fg(c) + c + ansi().reset()); } s.println(); s.print(" bright:"); for(Ansi.Color c: Ansi.Color.values()) { s.print(" " + ansi().fgBright(c) + c + ansi().reset()); } s.println(); s.print(" bold:"); for(Ansi.Color c: Ansi.Color.values()) { s.print(" " + ansi().bold().fg(c) + c + ansi().reset()); } s.println(); }
public Builder color(String color) { if (color == null) { this.color = COLOR_PALETTE[globalColorIdx++ % COLOR_PALETTE.length]; } else { try { this.color = Ansi.Color.valueOf(color.toUpperCase()); } catch (IllegalArgumentException exp) { throw new IllegalArgumentException( "Invalid color '" + color + "'. Color must be one YELLOW, CYAN, MAGENTA, GREEN, RED or BLUE"); } } return this; }
public Ansi bgBright(Color color) { attributeOptions.add(color.bgBright()); return this; }
public ColorFormatter() { // until info level information should be not so import so keep default color colors.put(Level.FINEST, color("finest", Ansi.Color.DEFAULT.name())); colors.put(Level.FINER, color("finer", Ansi.Color.DEFAULT.name())); colors.put(Level.FINE, color("fine", Ansi.Color.DEFAULT.name())); // info is the main one so white? (default is often a bit gray so less visible) colors.put(Level.INFO, color("info", Ansi.Color.WHITE.name())); // warn and more are important information so specify a visible color colors.put(Level.WARNING, color("warning", Ansi.Color.YELLOW.name())); colors.put(Level.SEVERE, color("severe", Ansi.Color.RED.name())); }
public ColorFormatter() { // until info level information should be not so import so keep default color colors.put(Level.FINEST, color("finest", Ansi.Color.DEFAULT.name())); colors.put(Level.FINER, color("finer", Ansi.Color.DEFAULT.name())); colors.put(Level.FINE, color("fine", Ansi.Color.DEFAULT.name())); // info is the main one so white? (default is often a bit gray so less visible) colors.put(Level.INFO, color("info", Ansi.Color.WHITE.name())); // warn and more are important information so specify a visible color colors.put(Level.WARNING, color("warning", Ansi.Color.YELLOW.name())); colors.put(Level.SEVERE, color("severe", Ansi.Color.RED.name())); }
public Ansi bg(Color color) { attributeOptions.add(color.bg()); return this; }