/******************************************************************************* * Copyright (c) 2017 Pivotal, Inc. * 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: * Pivotal, Inc. - initial API and implementation *******************************************************************************/ package org.springframework.ide.eclipse.boot.wizard; import static org.springframework.ide.eclipse.boot.wizard.BootWizardImages.*; import java.util.List; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.jface.text.contentassist.IContextInformation; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.ui.PlatformUI; import org.eclipse.wst.sse.ui.contentassist.CompletionProposalInvocationContext; import org.eclipse.wst.sse.ui.contentassist.ICompletionProposalComputer; import org.springframework.ide.eclipse.boot.core.BootPropertyTester; import org.springframework.ide.eclipse.boot.util.Log; import org.springframework.ide.eclipse.editor.support.util.DocumentUtil; import com.google.common.collect.ImmutableList; public class BootPomCompletionProposalComputer implements ICompletionProposalComputer { Image BOOT_ICN = getImage(BOOT_SMALL_ICON); public BootPomCompletionProposalComputer() { } @Override public void sessionStarted() { } @Override public List computeCompletionProposals(CompletionProposalInvocationContext context, IProgressMonitor monitor) { IProject project = DocumentUtil.getProject(context.getDocument()); if (BootPropertyTester.isBootProject(project)) { return ImmutableList.of(editStartersCompletion(project)); } return ImmutableList.of(); } private ICompletionProposal editStartersCompletion(IProject project) { return new ICompletionProposal() { @Override public void apply(IDocument document) { try { EditStartersDialog.openFor(project, PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()); } catch (CoreException e) { Log.log(e); } } @Override public Point getSelection(IDocument document) { return null; } @Override public String getAdditionalProposalInfo() { return "Open 'Edit Spring Starters' Dialog"; } @Override public String getDisplayString() { return "Edit Starters..."; } @Override public Image getImage() { return BOOT_ICN; } @Override public IContextInformation getContextInformation() { return null; } }; } @Override public List computeContextInformation(CompletionProposalInvocationContext context, IProgressMonitor monitor) { return null; } @Override public String getErrorMessage() { // TODO Auto-generated method stub return null; } @Override public void sessionEnded() { } }