blob: 41859b308a8913f317afc8d2d3dd058da3aeed3f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2008 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.jface.text.tests;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.DocumentEvent;
import org.eclipse.jface.text.IAutoIndentStrategy;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IDocumentListener;
import org.eclipse.jface.text.IEventConsumer;
import org.eclipse.jface.text.IFindReplaceTarget;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextDoubleClickStrategy;
import org.eclipse.jface.text.ITextHover;
import org.eclipse.jface.text.ITextInputListener;
import org.eclipse.jface.text.ITextListener;
import org.eclipse.jface.text.ITextOperationTarget;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.IUndoManager;
import org.eclipse.jface.text.IViewportListener;
import org.eclipse.jface.text.TextEvent;
import org.eclipse.jface.text.TextPresentation;
import org.eclipse.jface.text.source.Annotation;
import org.eclipse.jface.text.source.IAnnotationHover;
import org.eclipse.jface.text.source.IAnnotationModel;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.jface.text.source.SourceViewerConfiguration;
public class TestTextViewer implements ISourceViewer, IDocumentListener {
protected IDocument fDocument;
protected List fInputListeners= new ArrayList();
protected List fTextListeners= new ArrayList();
protected TextPresentation fTextPresentation;
protected Point fSelection= new Point(-1, -1);
protected String fDeletion;
/**
* @see ITextViewer#setDocument(IDocument, int, int)
*/
public void setDocument(IDocument document, int p1, int p2) {
setDocument(document);
}
/**
* @see ITextViewer#getDocument()
*/
public IDocument getDocument() {
return fDocument;
}
/**
* @see ITextViewer#setDocument(IDocument)
*/
public void setDocument(IDocument document) {
IDocument oldDoc= fDocument;
fireTextInputChanged(oldDoc, document, true);
if (oldDoc != null)
oldDoc.removeDocumentListener(this);
fDocument= document;
if (fDocument != null) {
fireTextChanged(new TestTextEvent(fDocument.get()));
fDocument.addDocumentListener(this);
}
fireTextInputChanged(oldDoc, document, false);
}
/**
* @see ITextViewer#removeTextInputListener(ITextInputListener)
*/
public void removeTextInputListener(ITextInputListener listener) {
fInputListeners.remove(listener);
}
/**
* @see ITextViewer#addTextInputListener(ITextInputListener)
*/
public void addTextInputListener(ITextInputListener listener) {
if (!fInputListeners.contains(listener))
fInputListeners.add(listener);
}
protected void fireTextInputChanged(IDocument oldDoc, IDocument newDoc, boolean about) {
Iterator e= new ArrayList(fInputListeners).iterator();
while (e.hasNext()) {
ITextInputListener l= (ITextInputListener) e.next();
if (about)
l.inputDocumentAboutToBeChanged(oldDoc, newDoc);
else
l.inputDocumentChanged(oldDoc, newDoc);
}
}
/**
* @see ITextViewer#changeTextPresentation(TextPresentation, boolean)
*/
public void changeTextPresentation(TextPresentation presentation, boolean p1) {
fTextPresentation= presentation;
}
/**
* @see ITextViewer#invalidateTextPresentation()
*/
public void invalidateTextPresentation() {
}
public TextPresentation getTextPresentation() {
return fTextPresentation;
}
public void documentAboutToBeChanged(DocumentEvent event) {
try {
fDeletion= fDocument.get(event.getOffset(), event.getLength());
} catch (BadLocationException x) {
}
}
public void documentChanged(DocumentEvent event) {
fireTextChanged(new TestTextEvent(event, fDeletion));
}
/**
* @see ITextViewer#getFindReplaceTarget()
*/
public IFindReplaceTarget getFindReplaceTarget() {
return null;
}
/**
* @see ITextViewer#getTextOperationTarget()
*/
public ITextOperationTarget getTextOperationTarget() {
return null;
}
/**
* @see ITextViewer#setTextColor(Color, int, int, boolean)
*/
public void setTextColor(Color p0, int p1, int p2, boolean p3) {
}
/**
* @see ITextViewer#setTextColor(Color)
*/
public void setTextColor(Color p0) {
}
/**
* @see ITextViewer#overlapsWithVisibleRegion(int, int)
*/
public boolean overlapsWithVisibleRegion(int p0, int p1) {
return false;
}
/**
* @see ITextViewer#getVisibleRegion()
*/
public IRegion getVisibleRegion() {
return null;
}
/**
* @see ITextViewer#resetVisibleRegion()
*/
public void resetVisibleRegion() {
}
/**
* @see ITextViewer#setVisibleRegion(int, int)
*/
public void setVisibleRegion(int p0, int p1) {
}
/**
* @see ITextViewer#setIndentPrefixes(String[], String)
*/
public void setIndentPrefixes(String[] p0, String p1) {
}
/**
* @see ITextViewer#setDefaultPrefixes(String[], String)
*/
public void setDefaultPrefixes(String[] p0, String p1) {
}
/**
* @see ITextViewer#setAutoIndentStrategy(IAutoIndentStrategy, String)
*/
public void setAutoIndentStrategy(IAutoIndentStrategy p0, String p1) {
}
/**
* @see ITextViewer#setTextDoubleClickStrategy(ITextDoubleClickStrategy, String)
*/
public void setTextDoubleClickStrategy(ITextDoubleClickStrategy p0, String p1) {
}
/**
* @see ITextViewer#setUndoManager(IUndoManager)
*/
public void setUndoManager(IUndoManager p0) {
}
/**
* @see ITextViewer#getTextWidget()
*/
public StyledText getTextWidget() {
return null;
}
public void setTextHover(ITextHover p0, String p1) {
}
/**
* @see ITextViewer#activatePlugins()
*/
public void activatePlugins() {
}
/**
* @see ITextViewer#resetPlugins()
*/
public void resetPlugins() {
}
/**
* @see ITextViewer#getTopInset()
*/
public int getTopInset() {
return 0;
}
/**
* @see ITextViewer#getBottomIndexEndOffset()
*/
public int getBottomIndexEndOffset() {
return 0;
}
/**
* @see ITextViewer#getBottomIndex()
*/
public int getBottomIndex() {
return 0;
}
/**
* @see ITextViewer#getTopIndexStartOffset()
*/
public int getTopIndexStartOffset() {
return 0;
}
/**
* @see ITextViewer#getTopIndex()
*/
public int getTopIndex() {
return 0;
}
/**
* @see ITextViewer#setTopIndex(int)
*/
public void setTopIndex(int p0) {
}
/**
* @see ITextViewer#revealRange(int, int)
*/
public void revealRange(int p0, int p1) {
}
/**
* @see ITextViewer#getSelectedRange()
*/
public Point getSelectedRange() {
return fSelection;
}
/**
* @see ITextViewer#setSelectedRange(int, int)
*/
public void setSelectedRange(int offset, int length) {
fSelection.x= offset;
fSelection.y= length;
}
/**
* @see ITextViewer#isEditable()
*/
public boolean isEditable() {
return true;
}
/**
* @see ITextViewer#setEditable(boolean)
*/
public void setEditable(boolean p0) {
}
/**
* @see ITextViewer#setEventConsumer(IEventConsumer)
*/
public void setEventConsumer(IEventConsumer p0) {
}
/**
* @see ITextViewer#removeTextListener(ITextListener)
*/
public void removeTextListener(ITextListener listener) {
fTextListeners.remove(listener);
}
protected void fireTextChanged(TextEvent event) {
Iterator e= new ArrayList(fTextListeners).iterator();
while (e.hasNext()) {
ITextListener l= (ITextListener) e.next();
l.textChanged(event);
}
}
/**
* @see ITextViewer#addTextListener(ITextListener)
*/
public void addTextListener(ITextListener listener) {
if (!fTextListeners.contains(listener))
fTextListeners.add(listener);
}
/**
* @see ITextViewer#removeViewportListener(IViewportListener)
*/
public void removeViewportListener(IViewportListener p0) {
}
/**
* @see ITextViewer#addViewportListener(IViewportListener)
*/
public void addViewportListener(IViewportListener p0) {
}
/**
* @see ISourceViewer#getSelectionProvider()
*/
public ISelectionProvider getSelectionProvider() {
return null;
}
/**
* @see ISourceViewer#showAnnotations(boolean)
*/
public void showAnnotations(boolean p0) {
}
/**
* @see ISourceViewer#removeRangeIndication()
*/
public void removeRangeIndication() {
}
/**
* @see ISourceViewer#getRangeIndication()
*/
public IRegion getRangeIndication() {
return null;
}
/**
* @see ISourceViewer#setRangeIndication(int, int, boolean)
*/
public void setRangeIndication(int p0, int p1, boolean p2) {
}
/**
* @see ISourceViewer#setRangeIndicator(Annotation)
*/
public void setRangeIndicator(Annotation p0) {
}
/**
* @see ISourceViewer#getAnnotationModel()
*/
public IAnnotationModel getAnnotationModel() {
return null;
}
/**
* @see ISourceViewer#setDocument(IDocument, IAnnotationModel, int, int)
*/
public void setDocument(IDocument p0, IAnnotationModel p1, int p2, int p3) {
}
/**
* @see ISourceViewer#setDocument(IDocument, IAnnotationModel)
*/
public void setDocument(IDocument p0, IAnnotationModel p1) {
}
/**
* @see ISourceViewer#setAnnotationHover(IAnnotationHover)
*/
public void setAnnotationHover(IAnnotationHover p0) {
}
/**
* @see ISourceViewer#configure(SourceViewerConfiguration)
*/
public void configure(SourceViewerConfiguration p0) {
}
}