| /** |
| * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * ============================================================================ |
| * Initial contribution: |
| * Loetz GmbH & Co. KG |
| * |
| * generated by xtext |
| */ |
| package org.eclipse.osbp.xtext.dialogdsl.ui.contentassist; |
| |
| import com.google.inject.Inject; |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.jface.viewers.StyledString; |
| import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper; |
| import org.eclipse.osbp.xtext.dialogdsl.ui.DialogDSLDocumentationTranslator; |
| import org.eclipse.osbp.xtext.dialogdsl.ui.contentassist.AbstractDialogDslProposalProvider; |
| import org.eclipse.xtext.Keyword; |
| import org.eclipse.xtext.RuleCall; |
| import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider; |
| import org.eclipse.xtext.nodemodel.INode; |
| import org.eclipse.xtext.nodemodel.impl.AbstractNode; |
| import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; |
| import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor; |
| |
| /** |
| * see http://www.eclipse.org/Xtext/documentation.html#contentAssist on how to customize content assistant |
| */ |
| @SuppressWarnings("all") |
| public class DialogDslProposalProvider extends AbstractDialogDslProposalProvider { |
| @Inject |
| private TerminalsProposalProvider provider; |
| |
| @Inject |
| private BasicDSLProposalProviderHelper providerHelper; |
| |
| @Override |
| protected StyledString getKeywordDisplayString(final Keyword keyword) { |
| return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword, |
| DialogDSLDocumentationTranslator.instance()); |
| } |
| |
| /** |
| * This override will enable 1 length non letter characters as keyword. |
| */ |
| @Override |
| protected boolean isKeywordWorthyToPropose(final Keyword keyword) { |
| return true; |
| } |
| |
| @Override |
| protected boolean isValidProposal(final String proposal, final String prefix, final ContentAssistContext context) { |
| boolean result = super.isValidProposal(proposal, prefix, context); |
| boolean _existsConflict = this.existsConflict(result, proposal, context); |
| boolean _not = (!_existsConflict); |
| result = _not; |
| return result; |
| } |
| |
| @Override |
| public void complete_QualifiedName(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this); |
| } |
| |
| @Override |
| public void complete_TRANSLATABLESTRING(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.provider.complete_STRING(model, ruleCall, context, acceptor); |
| } |
| |
| @Override |
| public void complete_ID(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.provider.complete_ID(model, ruleCall, context, acceptor); |
| } |
| |
| @Override |
| public void complete_TRANSLATABLEID(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.provider.complete_ID(model, ruleCall, context, acceptor); |
| } |
| |
| private boolean existsConflict(final boolean isValidProposal, final String proposal, final ContentAssistContext context) { |
| boolean _xblockexpression = false; |
| { |
| boolean _equals = "toolbar".equals(proposal); |
| if (_equals) { |
| INode lastCompleteNode = context.getLastCompleteNode(); |
| if ((lastCompleteNode instanceof AbstractNode)) { |
| lastCompleteNode = ((AbstractNode) lastCompleteNode); |
| EObject grammarElement = lastCompleteNode.getGrammarElement(); |
| if ((grammarElement instanceof Keyword)) { |
| String lastCompleteNodeValue = ((Keyword) grammarElement).getValue(); |
| boolean _equals_1 = "embedded".equals(lastCompleteNodeValue); |
| if (_equals_1) { |
| return true; |
| } |
| } |
| } |
| } |
| _xblockexpression = (!isValidProposal); |
| } |
| return _xblockexpression; |
| } |
| } |