Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleLineNotifier.java')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleLineNotifier.java161
1 files changed, 0 insertions, 161 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleLineNotifier.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleLineNotifier.java
deleted file mode 100644
index a51c68d14..000000000
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/console/ConsoleLineNotifier.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.ui.views.console;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.debug.internal.ui.DebugUIPlugin;
-import org.eclipse.debug.ui.console.IConsoleLineTracker;
-import org.eclipse.debug.ui.console.IConsoleLineTrackerExtension;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IPatternMatchListener;
-import org.eclipse.ui.console.PatternMatchEvent;
-import org.eclipse.ui.console.TextConsole;
-
-/**
- * Tracks text appended to the console and notifies listeners in terms of whole
- * lines.
- */
-public class ConsoleLineNotifier implements IPatternMatchListener, IPropertyChangeListener {
- /**
- * Console listeners
- */
- private List fListeners = new ArrayList(2);
-
- /**
- * The console this notifier is tracking
- */
- private ProcessConsole fConsole = null;
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListenerDelegate#connect(org.eclipse.ui.console.TextConsole)
- */
- 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);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListener#disconnect()
- */
- 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) {
- }
- }
-
- /**
- * Notification the console's streams have been closed
- */
- public synchronized void consoleClosed() {
- int size = fListeners.size();
- for (int i = 0; i < size; i++) {
- IConsoleLineTracker tracker = (IConsoleLineTracker) fListeners.get(i);
- if (tracker instanceof IConsoleLineTrackerExtension) {
- ((IConsoleLineTrackerExtension) tracker).consoleClosed();
- }
- tracker.dispose();
- }
-
- fConsole = null;
- fListeners = null;
- }
-
- /**
- * Adds the given listener to the list of listeners notified when a line of
- * text is appended to the console.
- *
- * @param listener
- */
- public void addConsoleListener(IConsoleLineTracker listener) {
- if (!fListeners.contains(listener))
- fListeners.add(listener);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListener#matchFound(org.eclipse.ui.console.PatternMatchEvent)
- */
- 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) {}
- }
-
- public void lineAppended(IRegion region) {
- int size = fListeners.size();
- for (int i=0; i<size; i++) {
- IConsoleLineTracker tracker = (IConsoleLineTracker) fListeners.get(i);
- tracker.lineAppended(region);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
- public void propertyChange(PropertyChangeEvent event) {
- if(event.getProperty().equals(IConsoleConstants.P_CONSOLE_OUTPUT_COMPLETE)) {
- fConsole.removePropertyChangeListener(this);
- consoleClosed();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListener#getPattern()
- */
- public String getPattern() {
- return ".*\\r(\\n?)|.*\\n"; //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListener#getCompilerFlags()
- */
- public int getCompilerFlags() {
- return 0;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.console.IPatternMatchListener#getLineQualifier()
- */
- public String getLineQualifier() {
- return "\\n|\\r"; //$NON-NLS-1$
- }
-
-}

Back to the top