@Override public void propertyChange(PropertyChangeEvent event) { if(event.getProperty().equals(IConsoleConstants.P_CONSOLE_OUTPUT_COMPLETE)) { fConsole.removePropertyChangeListener(this); consoleClosed(); } }
@Override public synchronized void disconnect() { try { IDocument document = fConsole.getDocument(); if (document != null) { int lastLine = document.getNumberOfLines() - 1; if (document.getLineDelimiter(lastLine) == null) { IRegion lineInformation = document.getLineInformation(lastLine); lineAppended(lineInformation); } } } catch (BadLocationException e) { } }
@Override public void connect(TextConsole console) { if (console instanceof ProcessConsole) { fConsole = (ProcessConsole)console; IConsoleLineTracker[] lineTrackers = DebugUIPlugin.getDefault().getProcessConsoleManager().getLineTrackers(fConsole.getProcess()); for (int i = 0; i < lineTrackers.length; i++) { lineTrackers[i].init(fConsole); addConsoleListener(lineTrackers[i]); } fConsole.addPropertyChangeListener(this); } }
addPatternMatchListener(new ConsoleLineNotifier());
@Override public void matchFound(PatternMatchEvent event) { try { IDocument document = fConsole.getDocument(); int lineOfOffset = document.getLineOfOffset(event.getOffset()); String delimiter = document.getLineDelimiter(lineOfOffset); int strip = delimiter==null ? 0 : delimiter.length(); Region region = new Region(event.getOffset(), event.getLength()-strip); lineAppended(region); } catch (BadLocationException e) {} }