00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 package org.objectweb.cjdbc.console.text;
00026
00027 import java.io.PrintStream;
00028
00029
00030
00031
00032
00033
00034
00035 public class ColorPrinter
00036 {
00037
00038 private static final int ATTR_BRIGHT = 1;
00039 private static final int ATTR_DIM = 2;
00040
00041
00042
00043
00044
00045 private static final int FG_BLACK = 30;
00046 private static final int FG_RED = 31;
00047 private static final int FG_GREEN = 32;
00048
00049 private static final int FG_BLUE = 34;
00050 private static final int FG_MAGENTA = 35;
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063 private static final String PREFIX = "\u001b[";
00064 private static final String SUFFIX = "m";
00065 private static final char SEPARATOR = ';';
00066 private static final String END_COLOR = PREFIX + SUFFIX;
00067
00068 private static final String STD_COLOR = PREFIX + ATTR_DIM + SEPARATOR
00069 + FG_BLACK + SUFFIX;
00070 private static final String ERR_COLOR = PREFIX + ATTR_BRIGHT + SEPARATOR
00071 + FG_RED + SUFFIX;
00072
00073
00074 private static final String INFO_COLOR = PREFIX + ATTR_BRIGHT + SEPARATOR
00075 + FG_GREEN + SUFFIX;
00076 private static final String STATUS_COLOR = PREFIX + ATTR_DIM + SEPARATOR
00077 + FG_MAGENTA + SUFFIX;
00078 private static final String PROMPT_COLOR = PREFIX + ATTR_BRIGHT + SEPARATOR
00079 + FG_BLUE + SUFFIX;
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091 public static final int STD = 0;
00092
00093
00094
00095 public static final int ERROR = 1;
00096
00097
00098
00099 public static final int INFO = 2;
00100
00101
00102
00103 public static final int STATUS = 3;
00104
00105
00106
00107 public static final int PROMPT = 4;
00108
00109
00110
00111
00112
00113
00114
00115
00116 public static final void printMessage(final String message,
00117 final PrintStream stream, final int color)
00118 {
00119 printMessage(message, stream, color, true);
00120 }
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130 public static final void printMessage(final String message,
00131 final PrintStream stream, final int color, boolean endline)
00132 {
00133
00134 final StringBuffer msg = new StringBuffer(message);
00135 switch (color)
00136 {
00137 default :
00138 case STD :
00139 msg.insert(0, STD_COLOR);
00140 msg.append(END_COLOR);
00141 break;
00142 case ERROR :
00143 msg.insert(0, ERR_COLOR);
00144 msg.append(END_COLOR);
00145 break;
00146 case INFO :
00147 msg.insert(0, INFO_COLOR);
00148 msg.append(END_COLOR);
00149 break;
00150 case STATUS :
00151 msg.insert(0, STATUS_COLOR);
00152 msg.append(END_COLOR);
00153 break;
00154 case PROMPT :
00155 msg.insert(0, PROMPT_COLOR);
00156 msg.append(END_COLOR);
00157 break;
00158 }
00159 final String strmessage = msg.toString();
00160 if (endline)
00161 stream.println(strmessage);
00162 else
00163 stream.print(strmessage);
00164 }
00165 }