| /** |
| * 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 |
| * |
| * Contributors: |
| * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation |
| * |
| * |
| * This copyright notice shows up in the generated Java code |
| */ |
| package org.eclipse.osbp.xtext.datainterchange.ui.contentassist; |
| |
| import com.google.common.base.Objects; |
| import com.google.inject.Inject; |
| import java.nio.charset.Charset; |
| import java.util.function.Consumer; |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.jface.text.contentassist.ICompletionProposal; |
| import org.eclipse.jface.viewers.StyledString; |
| import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper; |
| import org.eclipse.osbp.xtext.datainterchange.DataInterchangeBean; |
| import org.eclipse.osbp.xtext.datainterchange.ui.DataDSLDocumentationTranslator; |
| import org.eclipse.osbp.xtext.datainterchange.ui.contentassist.AbstractDataDSLProposalProvider; |
| import org.eclipse.osbp.xtext.datainterchange.ui.contentassist.FileNameTextApplier; |
| import org.eclipse.osbp.xtext.datainterchange.ui.contentassist.LocaleTextApplier; |
| import org.eclipse.xtext.Assignment; |
| import org.eclipse.xtext.Keyword; |
| import org.eclipse.xtext.RuleCall; |
| import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider; |
| import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal; |
| import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext; |
| import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor; |
| |
| @SuppressWarnings("all") |
| public class DataDSLProposalProvider extends AbstractDataDSLProposalProvider { |
| @Inject |
| private TerminalsProposalProvider provider; |
| |
| @Inject |
| private BasicDSLProposalProviderHelper providerHelper; |
| |
| @Override |
| protected StyledString getKeywordDisplayString(final Keyword keyword) { |
| return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword, |
| DataDSLDocumentationTranslator.instance()); |
| } |
| |
| /** |
| * This override will enable 1 length non letter characters as keyword. |
| */ |
| @Override |
| protected boolean isKeywordWorthyToPropose(final Keyword keyword) { |
| return true; |
| } |
| |
| @Override |
| public void completeDataInterchangeFileXML_FileURL(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.filePickerProposal(model, assignment, context, acceptor, "*.xml"); |
| } |
| |
| @Override |
| public void completeDataInterchangeFileCSV_FileURL(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.filePickerProposal(model, assignment, context, acceptor, "*.csv"); |
| } |
| |
| @Override |
| public void completeDataInterchangeFileEDI_FileURL(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.filePickerProposal(model, assignment, context, acceptor, "*.edi"); |
| } |
| |
| @Override |
| public void completeDataInterchangeFileEDI_MappingModel(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.mappingPickerProposal(model, assignment, context, acceptor, "*.xml"); |
| } |
| |
| @Override |
| public void completeDataInterchangeFileXML_Encoding(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| final Consumer<String> _function = (String it) -> { |
| acceptor.accept(this.createCompletionProposal((("\"" + it) + "\""), it, null, context)); |
| }; |
| Charset.availableCharsets().keySet().forEach(_function); |
| } |
| |
| @Override |
| public void completeDataInterchangeFileCSV_Encoding(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| final Consumer<String> _function = (String it) -> { |
| acceptor.accept(this.createCompletionProposal((("\"" + it) + "\""), it, null, context)); |
| }; |
| Charset.availableCharsets().keySet().forEach(_function); |
| } |
| |
| @Override |
| public void completeDataInterchangeFileEDI_Encoding(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| final Consumer<String> _function = (String it) -> { |
| acceptor.accept(this.createCompletionProposal((("\"" + it) + "\""), it, null, context)); |
| }; |
| Charset.availableCharsets().keySet().forEach(_function); |
| } |
| |
| public void filePickerProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final String fileExtensions) { |
| ICompletionProposal _createCompletionProposal = this.createCompletionProposal("Select input file...", context); |
| ConfigurableCompletionProposal fileName = ((ConfigurableCompletionProposal) _createCompletionProposal); |
| boolean _notEquals = (!Objects.equal(fileName, null)); |
| if (_notEquals) { |
| FileNameTextApplier applier = new FileNameTextApplier(); |
| applier.setExtensions(fileExtensions.split(",")); |
| applier.setContext(context); |
| fileName.setTextApplier(applier); |
| } |
| acceptor.accept(fileName); |
| } |
| |
| public void mappingPickerProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final String fileExtensions) { |
| ICompletionProposal _createCompletionProposal = this.createCompletionProposal("Select mapping file...", context); |
| ConfigurableCompletionProposal fileName = ((ConfigurableCompletionProposal) _createCompletionProposal); |
| boolean _notEquals = (!Objects.equal(fileName, null)); |
| if (_notEquals) { |
| FileNameTextApplier applier = new FileNameTextApplier(); |
| applier.setExtensions(fileExtensions.split(",")); |
| applier.setContext(context); |
| fileName.setTextApplier(applier); |
| } |
| acceptor.accept(fileName); |
| } |
| |
| public void chooseLocaleProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| ICompletionProposal _createCompletionProposal = this.createCompletionProposal("Select locale...", context); |
| ConfigurableCompletionProposal locale = ((ConfigurableCompletionProposal) _createCompletionProposal); |
| boolean _notEquals = (!Objects.equal(locale, null)); |
| if (_notEquals) { |
| LocaleTextApplier applier = new LocaleTextApplier(); |
| applier.setContext(context); |
| locale.setTextApplier(applier); |
| } |
| acceptor.accept(locale); |
| } |
| |
| @Override |
| protected boolean isValidProposal(final String proposal, final String prefix, final ContentAssistContext context) { |
| boolean result = super.isValidProposal(proposal, prefix, context); |
| EObject _currentModel = context.getCurrentModel(); |
| if ((_currentModel instanceof DataInterchangeBean)) { |
| EObject _currentModel_1 = context.getCurrentModel(); |
| return this.isBeanValidProposal(((DataInterchangeBean) _currentModel_1), proposal, result); |
| } |
| return result; |
| } |
| |
| public boolean isBeanValidProposal(final DataInterchangeBean bean, final String proposal, final boolean result) { |
| 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_INT(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.provider.complete_INT(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); |
| } |
| |
| @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_STRING(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.provider.complete_STRING(model, ruleCall, context, acceptor); |
| } |
| } |