package com.sap.furcas.ide.editor.contentassist.stubs;
import static org.junit.Assert.fail;
import java.io.IOException;
import java.io.InputStream;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
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.TextPresentation;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
import com.sap.furcas.ide.editor.contentassist.TestCtsContentAssistParsingHandler;
import com.sap.furcas.ide.editor.test.utils.StringReplacement;
/**
* Stub loading document from Filepath.
*/
public class TextViewerStub implements ITextViewer {
private final String fixturePath;
private final StringReplacement postFixtureReplacement;
public TextViewerStub(String fixturePath, StringReplacement postFixtureReplacement) {
Assert.isNotNull(fixturePath);
this.fixturePath = fixturePath;
this.postFixtureReplacement = postFixtureReplacement;
}
@Override
public IDocument getDocument() {
InputStream in = TestCtsContentAssistParsingHandler.class.getResourceAsStream(fixturePath);
StringBuilder out = new StringBuilder();
byte[] b = new byte[4096];
try {
for (int n; (n = in.read(b)) != -1;) {
out.append(new String(b, 0, n));
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
Document result = new Document(out.toString());
if (postFixtureReplacement != null) {
try {
postFixtureReplacement.applyTo(result);
} catch (BadLocationException e) {
System.out.println("post fixture replacement failed: " + e);
return new Document(out.toString());
}
}
return result;
}
@Override
public ISelectionProvider getSelectionProvider() {
fail("not implemented");
return null;
}
@Override
public Point getSelectedRange() {
fail("not implemented");
return null;
}
@Override
public StyledText getTextWidget() {
return null;
}
@Override
public void activatePlugins() {
fail("not implemented");
}
@Override
public void addTextInputListener(ITextInputListener listener) {
fail("not implemented");
}
@Override
public void addTextListener(ITextListener listener) {
fail("not implemented");
}
@Override
public void addViewportListener(IViewportListener listener) {
fail("not implemented");
}
@Override
public void changeTextPresentation(TextPresentation presentation, boolean controlRedraw) {
fail("not implemented");
}
@Override
public int getBottomIndex() {
fail("not implemented");
return 0;
}
@Override
public int getBottomIndexEndOffset() {
fail("not implemented");
return 0;
}
@Override
public IFindReplaceTarget getFindReplaceTarget() {
fail("not implemented");
return null;
}
@Override
public ITextOperationTarget getTextOperationTarget() {
fail("not implemented");
return null;
}
@Override
public int getTopIndex() {
fail("not implemented");
return 0;
}
@Override
public int getTopIndexStartOffset() {
fail("not implemented");
return 0;
}
@Override
public int getTopInset() {
fail("not implemented");
return 0;
}
@Override
public IRegion getVisibleRegion() {
fail("not implemented");
return null;
}
@Override
public void invalidateTextPresentation() {
fail("not implemented");
}
@Override
public boolean isEditable() {
fail("not implemented");
return false;
}
@Override
public boolean overlapsWithVisibleRegion(int offset, int length) {
fail("not implemented");
return false;
}
@Override
public void removeTextInputListener(ITextInputListener listener) {
fail("not implemented");
}
@Override
public void removeTextListener(ITextListener listener) {
fail("not implemented");
}
@Override
public void removeViewportListener(IViewportListener listener) {
fail("not implemented");
}
@Override
public void resetPlugins() {
fail("not implemented");
}
@Override
public void resetVisibleRegion() {
fail("not implemented");
}
@Override
public void revealRange(int offset, int length) {
fail("not implemented");
}
@Deprecated
@Override
public void setAutoIndentStrategy(org.eclipse.jface.text.IAutoIndentStrategy strategy, String contentType) {
fail("not implemented");
}
@Override
public void setDefaultPrefixes(String[] defaultPrefixes, String contentType) {
fail("not implemented");
}
@Override
public void setDocument(IDocument document) {
fail("not implemented");
}
@Override
public void setDocument(IDocument document, int modelRangeOffset, int modelRangeLength) {
fail("not implemented");
}
@Override
public void setEditable(boolean editable) {
fail("not implemented");
}
@Override
public void setEventConsumer(IEventConsumer consumer) {
fail("not implemented");
}
@Override
public void setIndentPrefixes(String[] indentPrefixes, String contentType) {
fail("not implemented");
}
@Override
public void setSelectedRange(int offset, int length) {
fail("not implemented");
}
@Override
public void setTextDoubleClickStrategy(ITextDoubleClickStrategy strategy, String contentType) {
fail("not implemented");
}
@Override
public void setTextColor(Color color) {
fail("not implemented");
}
@Override
public void setTextColor(Color color, int offset, int length, boolean controlRedraw) {
fail("not implemented");
}
@Override
public void setTextHover(ITextHover textViewerHover, String contentType) {
fail("not implemented");
}
@Override
public void setTopIndex(int index) {
fail("not implemented");
}
@Override
public void setUndoManager(IUndoManager undoManager) {
fail("not implemented");
}
@Override
public void setVisibleRegion(int offset, int length) {
fail("not implemented");
}
}