diff options
Diffstat (limited to 'bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsoleDocument.java')
-rw-r--r-- | bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsoleDocument.java | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsoleDocument.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsoleDocument.java deleted file mode 100644 index 48c40882a..000000000 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/ConsoleDocument.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2002 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM - Initial implementation - ******************************************************************************/ -package org.eclipse.team.internal.ccvs.ui; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.jface.text.AbstractDocument; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.DefaultLineTracker; -import org.eclipse.jface.text.GapTextStore; -import org.eclipse.team.internal.ccvs.core.CVSException; -import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin; -import org.eclipse.team.internal.ccvs.core.CVSStatus; - -public class ConsoleDocument extends AbstractDocument { - public static final int COMMAND = 0; // command text - public static final int MESSAGE = 1; // message received - public static final int ERROR = 2; // error received - public static final int STATUS = 3; // status text - public static final int DELIMITER = 4; // delimiter text between runs - - private int[] lineTypes = null; - private int currentLine = 0; - - /** - * Creates an empty console document. - */ - public ConsoleDocument() { - setTextStore(new GapTextStore(512, 1024)); - setLineTracker(new DefaultLineTracker()); - completeInitialization(); - } - - /** - * Clears the console document. - */ - public void clear() { - lineTypes = null; - currentLine = 0; - set(""); //$NON-NLS-1$ - } - - /** - * Gets the line type for the line containing the specified offset. - */ - public int getLineType(int offset) { - try { - int line = getLineOfOffset(offset); - if (line < currentLine) return lineTypes[line]; - } catch (BadLocationException e) { - CVSProviderPlugin.log(CVSException.wrapException(e)); - } - return 0; - } - - /** - * Appends a line of the specified type to the end of the console. - */ - public void appendConsoleLine(int type, String line, boolean purgeExcess) { - if (lineTypes == null) { - lineTypes = new int[16]; - } else if (currentLine >= lineTypes.length) { - int[] oldLineTypes = lineTypes; - lineTypes = new int[oldLineTypes.length * 2]; - System.arraycopy(oldLineTypes, 0, lineTypes, 0, oldLineTypes.length); - } - lineTypes[currentLine++] = type; - try { - replace(getLength(), 0, line + "\n"); //$NON-NLS-1$ - if (purgeExcess && type == COMMAND) { - keepPreviousCommands(2); - } - } catch (BadLocationException e) { - CVSProviderPlugin.log(CVSException.wrapException(e)); - } - } - - /** - * Return the indicies of the lines that contain command strings - */ - private int[] getCommandLines() { - List commandLineList = new ArrayList(); - for (int i = 0; i < currentLine; i++) { - if (lineTypes[i] == COMMAND) { - commandLineList.add(new Integer(i)); - } - } - int[] commandLines = new int[commandLineList.size()]; - int i = 0; - for (Iterator iter = commandLineList.iterator(); iter.hasNext(); ) { - commandLines[i++] = ((Integer) iter.next()).intValue(); - } - return commandLines; - } - - /** - * Purge all but the output of the last N commands from the document - */ - private void keepPreviousCommands(int number) throws BadLocationException{ - // Get the index of the line and character to keep - int[] commandLines = getCommandLines(); - if (commandLines.length <= number) return; - int lineIndex = commandLines[commandLines.length - number]; - int characterIndex = getLineOffset(lineIndex); - - // Keep everything from the character to the end - set(get(characterIndex, getLength() - characterIndex)); - - // Adjust the line types - int[] oldLineTypes = lineTypes; - lineTypes = new int[oldLineTypes.length]; - System.arraycopy(oldLineTypes, lineIndex, lineTypes, 0, oldLineTypes.length - lineIndex); - currentLine -= lineIndex; - } -} |