/* * Copyright 2010 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.corp.compatibility; import java.io.OutputStream; import java.io.PrintStream; /** Print stream for GWT that prints to the browser console. * * @author Stefan Haustein */ public class ConsolePrintStream extends PrintStream { StringBuilder buf = new StringBuilder(); public ConsolePrintStream () { super((OutputStream)null); } public void print (String s) { while (true) { int cut = s.indexOf('\n'); if (cut == -1) { break; } println(s.substring(0, cut)); s = s.substring(cut + 1); } buf.append(s); } public native void consoleLog (String msg) /*-{ if (window.console) { window.console.log(msg); } else { document.title = "LOG:" + msg; } }-*/; public void print (char c) { if (c == '\n') { println(""); } else { buf.append(c); } } public void println () { println(""); } @Override public void println (String s) { buf.append(s); consoleLog(buf.toString()); buf.setLength(0); } }