/******************************************************************************* * Copyright (c) 2016 Red Hat Inc. 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: * - Mickael Istria (Red Hat Inc.) *******************************************************************************/ package org.eclipse.ui.genericeditor.tests.contributions; import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.contentassist.CompletionProposal; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.jface.text.contentassist.IContentAssistProcessor; import org.eclipse.jface.text.contentassist.IContextInformation; import org.eclipse.jface.text.contentassist.IContextInformationValidator; public class LongRunningBarContentAssistProcessor implements IContentAssistProcessor { public static final String PROPOSAL = "s are also good for soft drink cocktails."; public static final int DELAY = 2000; @Override public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) { try { Thread.sleep(DELAY); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } String text = viewer.getDocument().get(); if (text.length() >= 3 && text.substring(offset - 3, offset).equals("bar")) { String message = PROPOSAL; CompletionProposal proposal = new CompletionProposal(message, offset, 0, message.length()); return new ICompletionProposal[] { proposal }; } return new ICompletionProposal[0]; } @Override public IContextInformation[] computeContextInformation(ITextViewer viewer, int offset) { return null; } @Override public char[] getCompletionProposalAutoActivationCharacters() { return null; } @Override public char[] getContextInformationAutoActivationCharacters() { return null; } @Override public String getErrorMessage() { return null; } @Override public IContextInformationValidator getContextInformationValidator() { return null; } }