/******************************************************************************* * Copyright (c) 2010 Martin Schnabel <mb0@mb0.org>. * 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 ******************************************************************************/ package org.axdt.asdoc.ui.proposal; import org.axdt.asdoc.access.IDocRootProvider; import org.axdt.asdoc.model.AsdocRoot; import org.axdt.avm.model.AvmType; import org.axdt.avm.ui.proposal.AbstractAvmProposalProvider; import org.axdt.avm.util.SuperTypeCollector; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor; import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalFactory; import com.google.inject.Inject; public class AsdocProposalProvider extends AbstractAvmProposalProvider { @Inject private SuperTypeCollector superTypeCollector; @Inject private IDocRootProvider docRootProvider; public void createTypeProposals(ICompletionProposalFactory proposalFactory, ContentAssistContext context, Filter filter, ICompletionProposalAcceptor acceptor) { EObject model = context.getCurrentModel(); if (model == null || model.eResource() == null || model.eResource().getResourceSet() == null) return; Iterable<AsdocRoot> asdocRoots = docRootProvider.getDocRoots(model.eResource().getResourceSet()); createTypeProposals(asdocRoots, proposalFactory, context, filter, acceptor); } protected void createTypeProposals(Iterable<AsdocRoot> asdocRoots, ICompletionProposalFactory proposalFactory, ContentAssistContext context, Filter filter, ICompletionProposalAcceptor acceptor) { } public void createSubTypeProposals(AvmType superType, ICompletionProposalFactory proposalFactory, ContentAssistContext context, Filter filter, ICompletionProposalAcceptor acceptor) { } public SuperTypeCollector getSuperTypeCollector() { return superTypeCollector; } public void setSuperTypeCollector(SuperTypeCollector superTypeCollector) { this.superTypeCollector = superTypeCollector; } public IDocRootProvider getDocRootProvider() { return docRootProvider; } public void setDocRootProvider(IDocRootProvider docRootProvider) { this.docRootProvider = docRootProvider; } }