Math2mat
|
00001 00020 package m2m.frontend.view; 00021 00022 import java.io.PrintStream; 00023 00024 import org.eclipse.jface.text.ITextListener; 00025 import org.eclipse.jface.text.TextEvent; 00026 import org.eclipse.swt.custom.StyledText; 00027 import org.eclipse.swt.graphics.Color; 00028 import org.eclipse.swt.widgets.Composite; 00029 import org.eclipse.ui.console.MessageConsole; 00030 import org.eclipse.ui.console.MessageConsoleStream; 00031 import org.eclipse.ui.console.TextConsoleViewer; 00032 import org.eclipse.ui.part.ViewPart; 00033 00034 public class M2MConsole extends ViewPart { 00035 00036 public static final String ID = "m2mgui.view.m2mConsole"; 00037 private MessageConsole console; 00038 private MessageConsoleStream stream; 00039 private MessageConsoleStream errStream; 00040 private MessageConsoleStream warStream; 00041 00042 @Override 00043 public void createPartControl(Composite parent) { 00044 // TODO Auto-generated method stub 00045 console = new MessageConsole("Console", null, false); 00046 stream = console.newMessageStream(); 00047 errStream = console.newMessageStream(); 00048 errStream.setColor(new Color(null, 255, 0, 0)); 00049 warStream = console.newMessageStream(); 00050 warStream.setColor(new Color(null, 0, 0, 255)); 00051 System.setOut(new PrintStream(stream, true)); 00052 System.setErr(new PrintStream(errStream, true)); 00053 final TextConsoleViewer consoleViewer = new TextConsoleViewer(parent, console); 00054 00055 consoleViewer.addTextListener(new ITextListener() { 00056 00057 @Override 00058 public void textChanged(TextEvent event) { 00059 // TODO Auto-generated method stub 00060 StyledText textWidget = consoleViewer.getTextWidget(); 00061 if (textWidget != null) { 00062 int lineCount = textWidget.getLineCount(); 00063 textWidget.setTopIndex(lineCount - 1); 00064 } 00065 } 00066 00067 }); 00068 } 00069 00070 @Override 00071 public void setFocus() { 00072 // TODO Auto-generated method stub 00073 00074 } 00075 00076 public void addText(String text) { 00077 stream.println(text); 00078 } 00079 00080 public void clearConsole() { 00081 console.clearConsole(); 00082 } 00083 00084 public MessageConsoleStream getErrStream() { 00085 return errStream; 00086 } 00087 00088 public MessageConsoleStream getwarStream() { 00089 return warStream; 00090 } 00091 }