+ new functionality: in methods append, print, println you may declare CSS class name for output text
authorindvdum
Wed, 18 May 2011 22:18:43 +0400
changeset 7a778386e297f
parent 6 8a7e51bd3ddb
child 8 1f4c68061547
+ new functionality: in methods append, print, println you may declare CSS class name for output text
src/main/java/org/vaadin/console/Console.java
src/main/java/org/vaadin/console/client/ui/TextConsole.java
src/main/java/org/vaadin/console/client/ui/VTextConsole.java
     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));