00001
00025 package org.objectweb.cjdbc.console.text;
00026
00027
import java.io.PrintStream;
00028
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
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
stdColor =
PREFIX +
ATTR_DIM +
SEPARATOR
00069 +
FG_BLACK +
SUFFIX;
00070 private static final String
errColor =
PREFIX +
ATTR_BRIGHT +
SEPARATOR
00071 +
FG_RED +
SUFFIX;
00072 private static final String
verboseColor =
PREFIX +
ATTR_BRIGHT +
SEPARATOR
00073 +
FG_BLACK +
SUFFIX;
00074 private static final String
infoColor =
PREFIX +
ATTR_BRIGHT +
SEPARATOR
00075 +
FG_BLACK +
SUFFIX;
00076 private static final String
statusColor =
PREFIX +
ATTR_DIM +
SEPARATOR
00077 +
FG_MAGENTA +
SUFFIX;
00078 private static final String
promptColor =
PREFIX +
ATTR_BRIGHT +
SEPARATOR
00079 +
FG_BLUE +
SUFFIX;
00080
00081
00082
00083
00084
00085
00086
00087
00091 public static final int STD = 0;
00095 public static final int ERROR = 1;
00099 public static final int INFO = 2;
00103 public static final int STATUS = 3;
00107 public static final int PROMPT = 4;
00108
00112 public static final void printMessage(
final String message,
00113
final PrintStream stream,
final int color)
00114 {
00115
printMessage(message, stream, color,
true);
00116 }
00117
00121 public static final void printMessage(
final String message,
00122
final PrintStream stream,
final int color,
boolean endline)
00123 {
00124
00125
final StringBuffer msg =
new StringBuffer(message);
00126
switch (color)
00127 {
00128
case STD :
00129 msg.insert(0,
stdColor);
00130 msg.append(
END_COLOR);
00131
break;
00132
case ERROR :
00133 msg.insert(0,
errColor);
00134 msg.append(
END_COLOR);
00135
break;
00136
case INFO :
00137 msg.insert(0,
infoColor);
00138 msg.append(
END_COLOR);
00139
break;
00140
case STATUS :
00141 msg.insert(0,
statusColor);
00142 msg.append(
END_COLOR);
00143
break;
00144
case PROMPT :
00145 msg.insert(0,
promptColor);
00146 msg.append(
END_COLOR);
00147
break;
00148 }
00149
final String strmessage = msg.toString();
00150
if (endline)
00151 stream.println(strmessage);
00152
else
00153 stream.print(strmessage);
00154 }
00155 }