+ new functionality: in methods append, print, println you may declare CSS class name for output text
1.1 --- a/src/main/java/org/vaadin/console/Console.java Wed May 18 15:04:22 2011 +0400
1.2 +++ b/src/main/java/org/vaadin/console/Console.java Wed May 18 22:18:43 2011 +0400
1.3 @@ -492,6 +492,14 @@
1.4 client.call("print", output);
1.5 }
1.6
1.7 + /**
1.8 + * @param output
1.9 + * @param className CSS class name for string
1.10 + */
1.11 + public void print(final String output, final String className) {
1.12 + client.call("print", output, className);
1.13 + }
1.14 +
1.15 public String getGreeting() {
1.16 return config.greeting;
1.17 }
1.18 @@ -560,11 +568,27 @@
1.19 public void println(final String string) {
1.20 client.call("println", string);
1.21 }
1.22 +
1.23 + /**
1.24 + * @param string
1.25 + * @param className CSS class name for string
1.26 + */
1.27 + public void println(final String string, final String className) {
1.28 + client.call("println", string, className);
1.29 + }
1.30
1.31 public void append(final String string) {
1.32 client.call("append", string);
1.33 }
1.34
1.35 + /**
1.36 + * @param string
1.37 + * @param className CSS class name for string
1.38 + */
1.39 + public void append(final String string, final String className) {
1.40 + client.call("append", string, className);
1.41 + }
1.42 +
1.43 public void newLine() {
1.44 client.call("newLine");
1.45 }
2.1 --- a/src/main/java/org/vaadin/console/client/ui/TextConsole.java Wed May 18 15:04:22 2011 +0400
2.2 +++ b/src/main/java/org/vaadin/console/client/ui/TextConsole.java Wed May 18 22:18:43 2011 +0400
2.3 @@ -529,6 +529,41 @@
2.4
2.5 reducePrompt(linesAdded);
2.6 }
2.7 +
2.8 + public void print(String string, String className) {
2.9 + if (isPromptActive()) {
2.10 + setPromtActive(false);
2.11 + if (!bufferIsEmpty() && !bufferEndsWithNewLine()) {
2.12 + newLine();
2.13 + reducePrompt(-1);
2.14 + }
2.15 + string = getCurrentPromptContent() + string;
2.16 + }
2.17 + final boolean doWrap = config.isWrap();
2.18 + // _log("print original: '" + string + "' (" + doWrap + ")");
2.19 + String str = string.replaceAll("\t", tabs);
2.20 + int linesAdded = 0;
2.21 +
2.22 + Element classedChild = Document.get().createElement("span");
2.23 + classedChild.addClassName(className);
2.24 + buffer.appendChild(classedChild);
2.25 + // Split by the newlines anyway
2.26 + int s = 0, e = str.indexOf('\n');
2.27 + while (e >= s) {
2.28 + final String line = str.substring(s, e);
2.29 + linesAdded += appendLine(classedChild, line, doWrap ? cols : -1);
2.30 + classedChild.appendChild(createBr());
2.31 + s = e + 1;
2.32 + e = str.indexOf('\n', s);
2.33 + }
2.34 +
2.35 + // Print the remaining string
2.36 + if (s < str.length()) {
2.37 + linesAdded += appendLine(classedChild, str.substring(s), doWrap ? cols : -1);
2.38 + }
2.39 +
2.40 + reducePrompt(linesAdded);
2.41 + }
2.42
2.43 public void append(String string) {
2.44 if (isPromptActive()) {
2.45 @@ -566,6 +601,36 @@
2.46 reducePrompt(linesAdded);
2.47 }
2.48
2.49 + public void append(String string, String className) {
2.50 + if (isPromptActive()) {
2.51 + setPromtActive(false);
2.52 + }
2.53 + final boolean doWrap = config.isWrap();
2.54 +// _log("print original: '" + string + "' (" + doWrap + ")");
2.55 + String str = string.replaceAll("\t", tabs);
2.56 + int linesAdded = 0;
2.57 +
2.58 + Element classedChild = Document.get().createElement("span");
2.59 + classedChild.addClassName(className);
2.60 + buffer.appendChild(classedChild);
2.61 + // Split by the newlines anyway
2.62 + int s = 0, e = str.indexOf('\n');
2.63 + while (e >= s) {
2.64 + final String line = str.substring(s, e);
2.65 + linesAdded += appendLine(classedChild, line, doWrap ? cols : -1);
2.66 + classedChild.appendChild(createBr());
2.67 + s = e + 1;
2.68 + e = str.indexOf('\n', s);
2.69 + }
2.70 +
2.71 + // Print the remaining string
2.72 + if (s < str.length()) {
2.73 + linesAdded += appendLine(classedChild, str.substring(s), doWrap ? cols : -1);
2.74 + }
2.75 +
2.76 + reducePrompt(linesAdded);
2.77 + }
2.78 +
2.79 private String getCurrentPromptContent() {
2.80 return prompt.getInnerText() + getInput();
2.81 }
2.82 @@ -648,6 +713,10 @@
2.83 print(string + "\n");
2.84 }
2.85
2.86 + public void println(final String string, final String className) {
2.87 + print(string + "\n", className);
2.88 + }
2.89 +
2.90 @Override
2.91 public void setHeight(final String height) {
2.92 final int oldh = term.getClientHeight();
3.1 --- a/src/main/java/org/vaadin/console/client/ui/VTextConsole.java Wed May 18 15:04:22 2011 +0400
3.2 +++ b/src/main/java/org/vaadin/console/client/ui/VTextConsole.java Wed May 18 22:18:43 2011 +0400
3.3 @@ -65,26 +65,30 @@
3.4 setCols((Integer) data[0]);
3.5 }
3.6 });
3.7 - comm.register("print", new Method() {
3.8 - public void invoke(final String methodName, final Object[] data) {
3.9 - print((String) data[0]);
3.10 - }
3.11 - });
3.12 - comm.register("println", new Method() {
3.13 - public void invoke(final String methodName, final Object[] data) {
3.14 - println((String) data[0]);
3.15 - }
3.16 - });
3.17 - comm.register("println", new Method() {
3.18 - public void invoke(final String methodName, final Object[] data) {
3.19 - println((String) data[0]);
3.20 - }
3.21 - });
3.22 - comm.register("append", new Method() {
3.23 - public void invoke(final String methodName, final Object[] data) {
3.24 - append((String) data[0]);
3.25 - }
3.26 - });
3.27 + comm.register("print", new Method() {
3.28 + public void invoke(final String methodName, final Object[] data) {
3.29 + if (data.length == 2)
3.30 + print((String) data[0], (String) data[1]);
3.31 + else
3.32 + print((String) data[0]);
3.33 + }
3.34 + });
3.35 + comm.register("println", new Method() {
3.36 + public void invoke(final String methodName, final Object[] data) {
3.37 + if (data.length == 2)
3.38 + println((String) data[0], (String) data[1]);
3.39 + else
3.40 + println((String) data[0]);
3.41 + }
3.42 + });
3.43 + comm.register("append", new Method() {
3.44 + public void invoke(final String methodName, final Object[] data) {
3.45 + if (data.length == 2)
3.46 + append((String) data[0], (String) data[1]);
3.47 + else
3.48 + append((String) data[0]);
3.49 + }
3.50 + });
3.51 comm.register("prompt", new Method() {
3.52 public void invoke(final String methodName, final Object[] data) {
3.53 prompt((String) (data.length > 0 ? data[0] : null));