1 22 23 package org.continuent.sequoia.console.text; 24 25 import java.io.PrintStream ; 26 27 35 public class ColorPrinter 36 { 37 private static final int ATTR_BRIGHT = 1; 39 private static final int ATTR_DIM = 2; 40 45 private static final int FG_BLACK = 30; 46 private static final int FG_RED = 31; 47 private static final int FG_GREEN = 32; 48 private static final int FG_BLUE = 34; 50 private static final int FG_MAGENTA = 35; 51 54 63 private static final String PREFIX = "\u001b["; 64 private static final String SUFFIX = "m"; 65 private static final char SEPARATOR = ';'; 66 private static final String END_COLOR = PREFIX + SUFFIX; 67 68 private static final String STD_COLOR = PREFIX + ATTR_DIM + SEPARATOR 69 + FG_BLACK + SUFFIX; 70 private static final String ERR_COLOR = PREFIX + ATTR_BRIGHT + SEPARATOR 71 + FG_RED + SUFFIX; 72 private static final String INFO_COLOR = PREFIX + ATTR_BRIGHT + SEPARATOR 75 + FG_GREEN + SUFFIX; 76 private static final String STATUS_COLOR = PREFIX + ATTR_DIM + SEPARATOR 77 + FG_MAGENTA + SUFFIX; 78 private static final String PROMPT_COLOR = PREFIX + ATTR_BRIGHT + SEPARATOR 79 + FG_BLUE + SUFFIX; 80 81 88 91 public static final int STD = 0; 92 95 public static final int ERROR = 1; 96 99 public static final int INFO = 2; 100 103 public static final int STATUS = 3; 104 107 public static final int PROMPT = 4; 108 109 116 public static final void printMessage(final String message, 117 final PrintStream stream, final int color) 118 { 119 printMessage(message, stream, color, true); 120 } 121 122 130 public static final void printMessage(final String message, 131 final PrintStream stream, final int color, boolean endline) 132 { 133 final String strmessage = ColorPrinter.getColoredMessage(message, color); 134 if (endline) 135 stream.println(strmessage); 136 else 137 stream.print(strmessage); 138 } 139 140 147 public static final String getColoredMessage(final String message, 148 final int color) 149 { 150 final StringBuffer msg = new StringBuffer (message); 151 switch (color) 152 { 153 case STD : 154 msg.insert(0, STD_COLOR); 155 msg.append(END_COLOR); 156 break; 157 case ERROR : 158 msg.insert(0, ERR_COLOR); 159 msg.append(END_COLOR); 160 break; 161 case INFO : 162 msg.insert(0, INFO_COLOR); 163 msg.append(END_COLOR); 164 break; 165 case STATUS : 166 msg.insert(0, STATUS_COLOR); 167 msg.append(END_COLOR); 168 break; 169 case PROMPT : 170 msg.insert(0, PROMPT_COLOR); 171 msg.append(END_COLOR); 172 break; 173 default : msg.insert(0, STD_COLOR); 175 msg.append(END_COLOR); 176 break; 177 } 178 return msg.toString(); 179 } 180 } 181 | Popular Tags |