| /** |
| * 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.chart.ui.contentassist; |
| |
| import com.google.inject.Inject; |
| 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.chart.ChartAxis; |
| import org.eclipse.osbp.xtext.chart.ui.ChartDSLDocumentationTranslator; |
| import org.eclipse.osbp.xtext.chart.ui.contentassist.AbstractChartDSLProposalProvider; |
| import org.eclipse.osbp.xtext.chart.ui.contentassist.MyReplacementTextApplier; |
| import org.eclipse.xtext.AbstractElement; |
| 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 ChartDSLProposalProvider extends AbstractChartDSLProposalProvider { |
| @Inject |
| private TerminalsProposalProvider provider; |
| |
| @Inject |
| private BasicDSLProposalProviderHelper providerHelper; |
| |
| @Override |
| protected StyledString getKeywordDisplayString(final Keyword keyword) { |
| return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword, |
| ChartDSLDocumentationTranslator.instance()); |
| } |
| |
| /** |
| * This override will enable 1 length non letter characters as keyword. |
| */ |
| @Override |
| protected boolean isKeywordWorthyToPropose(final Keyword keyword) { |
| return true; |
| } |
| |
| @Override |
| public void completeChartAxis_TickTextColor(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.colorPickerProposal(model, assignment, context, acceptor); |
| } |
| |
| @Override |
| public void completeChartAxis_LabelTextColor(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.colorPickerProposal(model, assignment, context, acceptor); |
| } |
| |
| @Override |
| public void completeChartLegend_TextColor(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.colorPickerProposal(model, assignment, context, acceptor); |
| } |
| |
| @Override |
| public void completeChartPackage_Colors(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.colorPickerProposal(model, assignment, context, acceptor); |
| } |
| |
| @Override |
| public void completeChartSegmentColor_Rgb(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.colorPickerProposal(model, assignment, context, acceptor); |
| } |
| |
| public void colorPickerProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| ICompletionProposal _createCompletionProposal = this.createCompletionProposal("Pick color...", context); |
| ConfigurableCompletionProposal pickColor = ((ConfigurableCompletionProposal) _createCompletionProposal); |
| if ((pickColor != null)) { |
| MyReplacementTextApplier applier = new MyReplacementTextApplier(); |
| applier.setContext(context); |
| pickColor.setTextApplier(applier); |
| } |
| acceptor.accept(pickColor); |
| acceptor.accept(this.createCompletionProposal("\"230,128,64\" /* orange */", "orange", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"255,82,82\" /* light red */", "light red", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"255,0,0\" /* red */", "red", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"204,102,102\" /* dark red */", "dark red", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"255,255,128\" /*light yellow */", "light yellow", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"255,255,0\" /* yellow */", "yellow", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"128,128,0\" /* dark yellow */", "dark yellow", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"102,204,102\" /* light green */", "light green", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"0,255,0\" /* green */", "green", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"147,183,95\" /* dark green */", "dark green", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"102,102,204\" /* light blue */", "light blue", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"0,0,255\" /* blue */", "blue", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"147,95,183\" /* dark blue */", "dark blue", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"0,0,0\" /* black */", "black", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"255,255,255\" /* white */", "white", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"0,0,255\" /* blue */", "blue", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"0,0,128\" /* dark blue */", "dark blue", null, context)); |
| acceptor.accept(this.createCompletionProposal("\"82,182,255\" /* light blue */", "light blue", null, context)); |
| } |
| |
| @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 ChartAxis)) { |
| return true; |
| } |
| 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 completeChartAxis_TickAngle(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| AbstractElement _terminal = assignment.getTerminal(); |
| RuleCall ruleCall = ((RuleCall) _terminal); |
| String feature = this.providerHelper.getAssignedFeature(ruleCall); |
| this.providerHelper.createIntProposal(context, acceptor, ruleCall, feature, 0, "value between -360 and 360", this); |
| } |
| |
| @Override |
| public void completeChartAxis_LabelAngle(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| AbstractElement _terminal = assignment.getTerminal(); |
| RuleCall ruleCall = ((RuleCall) _terminal); |
| String feature = this.providerHelper.getAssignedFeature(ruleCall); |
| this.providerHelper.createIntProposal(context, acceptor, ruleCall, feature, 0, "value between -360 and 360", this); |
| } |
| |
| @Override |
| public void completeChartBubble_MultiplierValue(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| AbstractElement _terminal = assignment.getTerminal(); |
| this.providerHelper.createNumberProposal(context, acceptor, ((RuleCall) _terminal), this); |
| } |
| |
| @Override |
| public void completeChartNumberInterval_NumberIntervalValue(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| AbstractElement _terminal = assignment.getTerminal(); |
| this.provider.complete_INT(model, ((RuleCall) _terminal), context, acceptor); |
| } |
| |
| @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_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_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_TRANSLATABLEID(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| this.provider.complete_ID(model, ruleCall, context, acceptor); |
| } |
| |
| @Override |
| public void completeChartGauge_LabelValue(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) { |
| AbstractElement _terminal = assignment.getTerminal(); |
| this.provider.complete_STRING(model, ((RuleCall) _terminal), context, acceptor); |
| } |
| } |