blob: 85457028acff83afd2229c392b005a0f86f57278 [file] [log] [blame]
/**
* 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.common.base.Objects;
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 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);
boolean _notEquals = (!Objects.equal(pickColor, null));
if (_notEquals) {
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,182,182\" /* 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("\"0,0,0\" /* black */", "black", null, context));
acceptor.accept(this.createCompletionProposal("\"255,255,255\" /* white */", "white", 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_Angle(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);
}
}