/******************************************************************************* * Copyright 2016 Observational Health Data Sciences and Informatics * * This file is part of WhiteRabbit * * 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 org.ohdsi.whiteRabbit; import java.io.IOException; import java.io.OutputStream; import javax.swing.JTextArea; import javax.swing.text.BadLocationException; import org.ohdsi.utilities.files.WriteTextFile; public class Console extends OutputStream { private StringBuffer buffer = new StringBuffer(); private WriteTextFile debug = null; private JTextArea textArea; public void println(String string) { textArea.append(string + "\n"); textArea.repaint(); System.out.println(string); } public void setTextArea(JTextArea textArea) { this.textArea = textArea; } public void setDebugFile(String filename) { debug = new WriteTextFile(filename); } public String getText() { try { return textArea.getDocument().getText(0, textArea.getDocument().getLength()); } catch (BadLocationException e) { e.printStackTrace(); } return null; } @Override public void write(int b) throws IOException { buffer.append((char) b); if ((char) b == '\n') { if (textArea != null) { textArea.append(buffer.toString()); textArea.setCaretPosition(textArea.getDocument().getLength()); } if (debug != null) { debug.writeln(buffer.toString()); debug.flush(); } buffer = new StringBuffer(); } } }