blob: 7b202ef6d15014c0028eae4860a772be53504d16 [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 v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
*
*
* This copyright notice shows up in the generated Java code
*/
package org.eclipse.osbp.xtext.table.ui.contentassist;
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import javax.inject.Inject;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.text.contentassist.ICompletionProposal;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.osbp.infogrid.model.gridsource.CxGridNestedField;
import org.eclipse.osbp.infogrid.model.gridsource.CxGridProperty;
import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropBooleanStyle;
import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropButtonStyle;
import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropDateStyle;
import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropHtmlStyle;
import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropImageStyle;
import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropNumberStyle;
import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropPriceStyle;
import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropProgressbarStyle;
import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropQuantityStyle;
import org.eclipse.osbp.infogrid.model.gridsource.style.CxGridPropTextStyle;
import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper;
import org.eclipse.osbp.xtext.datamartdsl.AxisEnum;
import org.eclipse.osbp.xtext.datamartdsl.DatamartAxis;
import org.eclipse.osbp.xtext.datamartdsl.DatamartCube;
import org.eclipse.osbp.xtext.datamartdsl.DatamartCubeElement;
import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
import org.eclipse.osbp.xtext.datamartdsl.DatamartDerivedMeasure;
import org.eclipse.osbp.xtext.datamartdsl.DatamartElement;
import org.eclipse.osbp.xtext.datamartdsl.DatamartEntity;
import org.eclipse.osbp.xtext.datamartdsl.DatamartHierarchy;
import org.eclipse.osbp.xtext.datamartdsl.DatamartMeasure;
import org.eclipse.osbp.xtext.datamartdsl.DatamartSetAggregation;
import org.eclipse.osbp.xtext.datamartdsl.DatamartSource;
import org.eclipse.osbp.xtext.datamartdsl.DatamartTask;
import org.eclipse.osbp.xtext.datamartdsl.jvmmodel.DatamartDSLJvmModelInferrer;
import org.eclipse.osbp.xtext.gridsource.scoping.TypeHelper;
import org.eclipse.osbp.xtext.gridsource.ui.contentassist.GridSourceProposalProvider;
import org.eclipse.osbp.xtext.table.Table;
import org.eclipse.osbp.xtext.table.TableAxis;
import org.eclipse.osbp.xtext.table.TableBrokerDatamart;
import org.eclipse.osbp.xtext.table.TableDatamart;
import org.eclipse.osbp.xtext.table.TableEvent;
import org.eclipse.osbp.xtext.table.TableInterval;
import org.eclipse.osbp.xtext.table.TableLookup;
import org.eclipse.osbp.xtext.table.TablePreorder;
import org.eclipse.osbp.xtext.table.TableRangeElement;
import org.eclipse.osbp.xtext.table.TableTable;
import org.eclipse.osbp.xtext.table.TableValue;
import org.eclipse.osbp.xtext.table.ui.TableDSLDocumentationTranslator;
import org.eclipse.osbp.xtext.table.ui.contentassist.AbstractTableDSLProposalProvider;
import org.eclipse.osbp.xtext.table.ui.contentassist.ImageFileNameTextApplier;
import org.eclipse.osbp.xtext.table.ui.contentassist.MyReplacementTextApplier;
import org.eclipse.swt.graphics.Image;
import org.eclipse.xtext.AbstractElement;
import org.eclipse.xtext.Assignment;
import org.eclipse.xtext.Keyword;
import org.eclipse.xtext.ParserRule;
import org.eclipse.xtext.RuleCall;
import org.eclipse.xtext.TypeRef;
import org.eclipse.xtext.XtextPackage;
import org.eclipse.xtext.common.types.JvmOperation;
import org.eclipse.xtext.common.types.JvmType;
import org.eclipse.xtext.common.types.JvmTypeReference;
import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider;
import org.eclipse.xtext.nodemodel.ICompositeNode;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
import org.eclipse.xtext.xbase.lib.CollectionLiterals;
import org.eclipse.xtext.xbase.lib.Extension;
@SuppressWarnings("all")
public class TableDSLProposalProvider extends AbstractTableDSLProposalProvider {
@Inject
@Extension
private TypeHelper _typeHelper;
@Inject
private TerminalsProposalProvider provider;
@Inject
private BasicDSLProposalProviderHelper providerHelper;
@Inject
@Extension
private DatamartDSLJvmModelInferrer datamartInferrer;
private String imageSelectionPrompt = "Select image file...";
private String colorSelectionPrompt = "Pick color...";
@Inject
private GridSourceProposalProvider gridProposalProvider;
/**
* This override will enable 1 length non letter characters as keyword.
*/
protected boolean isKeywordWorthyToPropose(final Keyword keyword) {
return true;
}
protected StyledString getKeywordDisplayString(final Keyword keyword) {
BasicDSLDocumentationTranslator _instance = TableDSLDocumentationTranslator.instance();
return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword, _instance);
}
/**
* imageFilePickerProposal(model, assignment, context, acceptor, ".jpg,.jpeg,.png")
*/
public void imageFilePickerProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final String fileExtensions) {
ICompletionProposal _createCompletionProposal = this.createCompletionProposal(this.imageSelectionPrompt, context);
ConfigurableCompletionProposal fileName = ((ConfigurableCompletionProposal) _createCompletionProposal);
boolean _notEquals = (!Objects.equal(fileName, null));
if (_notEquals) {
ImageFileNameTextApplier applier = new ImageFileNameTextApplier();
String[] _split = fileExtensions.split(",");
applier.setExtensions(_split);
applier.setContext(context);
fileName.setTextApplier(applier);
}
acceptor.accept(fileName);
}
/**
* This method decides which proposals will be valid.
*/
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 TableAxis)) {
return this.isAxisValidProposal(context, proposal, result);
}
boolean _or = false;
if (((context.getCurrentModel() instanceof TableValue) || (context.getCurrentModel() instanceof TablePreorder))) {
_or = true;
} else {
EObject _currentModel_1 = context.getCurrentModel();
_or = (_currentModel_1 instanceof TableEvent);
}
if (_or) {
return this.isValueValidProposal(context, proposal, result);
} else {
boolean _or_1 = false;
EObject _currentModel_2 = context.getCurrentModel();
if ((_currentModel_2 instanceof TableInterval)) {
_or_1 = true;
} else {
EObject _currentModel_3 = context.getCurrentModel();
_or_1 = (_currentModel_3 instanceof TableLookup);
}
if (_or_1) {
return this.isIntervalValidProposal(context, proposal, result);
}
}
return result;
}
public void createProposals(final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
boolean _and = false;
EObject _currentModel = context.getCurrentModel();
if (!(_currentModel instanceof CxGridProperty)) {
_and = false;
} else {
boolean _lastCompleteNodeIsStyle = this.getLastCompleteNodeIsStyle(context);
_and = _lastCompleteNodeIsStyle;
}
if (_and) {
ImmutableList<AbstractElement> _firstSetGrammarElements = context.getFirstSetGrammarElements();
for (final AbstractElement element : _firstSetGrammarElements) {
EClass _eClass = element.eClass();
int _classifierID = _eClass.getClassifierID();
boolean _equals = (_classifierID == XtextPackage.KEYWORD);
if (_equals) {
Keyword keyword = ((Keyword) element);
boolean _isKeywordWorthyToPropose = this.isKeywordWorthyToPropose(keyword, context);
if (_isKeywordWorthyToPropose) {
EObject _currentModel_1 = context.getCurrentModel();
final CxGridProperty gridProp = ((CxGridProperty) _currentModel_1);
final CxGridNestedField nestedField = gridProp.getPath();
JvmOperation _field = nestedField.getField();
JvmTypeReference _returnType = _field.getReturnType();
final JvmType nestedFieldType = _returnType.getType();
EObject eObject = ((EObject) element);
while ((!(eObject instanceof ParserRule))) {
EObject _eContainer = eObject.eContainer();
eObject = _eContainer;
}
boolean _notEquals = (!Objects.equal(eObject, null));
if (_notEquals) {
ParserRule rule = ((ParserRule) eObject);
boolean _and_1 = false;
boolean _isBoolean = this._typeHelper.isBoolean(nestedFieldType);
if (!_isBoolean) {
_and_1 = false;
} else {
boolean _isBooleanStyle = this.isBooleanStyle(rule);
_and_1 = _isBooleanStyle;
}
if (_and_1) {
this.setProposal(context, acceptor, keyword);
} else {
boolean _and_2 = false;
boolean _isString = this._typeHelper.isString(nestedFieldType);
if (!_isString) {
_and_2 = false;
} else {
boolean _isTextStyle = this.isTextStyle(rule);
_and_2 = _isTextStyle;
}
if (_and_2) {
this.setProposal(context, acceptor, keyword);
} else {
boolean _isNumber = this._typeHelper.isNumber(nestedFieldType);
if (_isNumber) {
boolean _and_3 = false;
boolean _isNumberWithDigits = this._typeHelper.isNumberWithDigits(nestedFieldType);
if (!_isNumberWithDigits) {
_and_3 = false;
} else {
boolean _isProgressStyle = this.isProgressStyle(rule);
_and_3 = _isProgressStyle;
}
if (_and_3) {
this.setProposal(context, acceptor, keyword);
} else {
boolean _isNumberStyle = this.isNumberStyle(rule);
if (_isNumberStyle) {
this.setProposal(context, acceptor, keyword);
}
}
} else {
boolean _and_4 = false;
boolean _isDate = this._typeHelper.isDate(nestedFieldType);
if (!_isDate) {
_and_4 = false;
} else {
boolean _isDateStyle = this.isDateStyle(rule);
_and_4 = _isDateStyle;
}
if (_and_4) {
this.setProposal(context, acceptor, keyword);
}
}
}
}
}
}
}
}
} else {
super.createProposals(context, acceptor);
}
}
public boolean getLastCompleteNodeIsStyle(final ContentAssistContext context) {
INode _lastCompleteNode = context.getLastCompleteNode();
EObject _grammarElement = null;
if (_lastCompleteNode!=null) {
_grammarElement=_lastCompleteNode.getGrammarElement();
}
final EObject element = _grammarElement;
EClass _eClass = element.eClass();
int _classifierID = _eClass.getClassifierID();
boolean _equals = (_classifierID == XtextPackage.KEYWORD);
if (_equals) {
Keyword keyword = ((Keyword) element);
String _value = keyword.getValue();
boolean _equals_1 = "style".equals(_value);
if (_equals_1) {
return true;
}
}
return false;
}
public boolean isBooleanStyle(final ParserRule rule) {
TypeRef _type = rule.getType();
EClassifier _classifier = null;
if (_type!=null) {
_classifier=_type.getClassifier();
}
Class<?> ruleTypeClass = _classifier.getInstanceClass();
return CxGridPropBooleanStyle.class.equals(ruleTypeClass);
}
public boolean isTextStyle(final ParserRule rule) {
TypeRef _type = rule.getType();
EClassifier _classifier = null;
if (_type!=null) {
_classifier=_type.getClassifier();
}
Class<?> ruleTypeClass = _classifier.getInstanceClass();
boolean _or = false;
boolean _or_1 = false;
boolean _or_2 = false;
boolean _equals = CxGridPropTextStyle.class.equals(ruleTypeClass);
if (_equals) {
_or_2 = true;
} else {
boolean _equals_1 = CxGridPropHtmlStyle.class.equals(ruleTypeClass);
_or_2 = _equals_1;
}
if (_or_2) {
_or_1 = true;
} else {
boolean _equals_2 = CxGridPropButtonStyle.class.equals(ruleTypeClass);
_or_1 = _equals_2;
}
if (_or_1) {
_or = true;
} else {
boolean _equals_3 = CxGridPropImageStyle.class.equals(ruleTypeClass);
_or = _equals_3;
}
return _or;
}
public boolean isNumberStyle(final ParserRule rule) {
TypeRef _type = rule.getType();
EClassifier _classifier = null;
if (_type!=null) {
_classifier=_type.getClassifier();
}
Class<?> ruleTypeClass = _classifier.getInstanceClass();
boolean _or = false;
boolean _or_1 = false;
boolean _or_2 = false;
boolean _equals = CxGridPropNumberStyle.class.equals(ruleTypeClass);
if (_equals) {
_or_2 = true;
} else {
boolean _equals_1 = CxGridPropPriceStyle.class.equals(ruleTypeClass);
_or_2 = _equals_1;
}
if (_or_2) {
_or_1 = true;
} else {
boolean _equals_2 = CxGridPropQuantityStyle.class.equals(ruleTypeClass);
_or_1 = _equals_2;
}
if (_or_1) {
_or = true;
} else {
boolean _equals_3 = CxGridPropImageStyle.class.equals(ruleTypeClass);
_or = _equals_3;
}
return _or;
}
public boolean isProgressStyle(final ParserRule rule) {
TypeRef _type = rule.getType();
EClassifier _classifier = null;
if (_type!=null) {
_classifier=_type.getClassifier();
}
Class<?> ruleTypeClass = _classifier.getInstanceClass();
return CxGridPropProgressbarStyle.class.equals(ruleTypeClass);
}
public boolean isDateStyle(final ParserRule rule) {
TypeRef _type = rule.getType();
EClassifier _classifier = null;
if (_type!=null) {
_classifier=_type.getClassifier();
}
Class<?> ruleTypeClass = _classifier.getInstanceClass();
return CxGridPropDateStyle.class.equals(ruleTypeClass);
}
public void setProposal(final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final Keyword keyword) {
String _value = keyword.getValue();
StyledString _keywordDisplayString = this.getKeywordDisplayString(keyword);
Image _image = this.getImage(keyword);
final ICompletionProposal proposal = this.createCompletionProposal(_value, _keywordDisplayString, _image, context);
acceptor.accept(proposal);
}
public void completeTableIcon_Icon(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
this.imageFilePickerProposal(model, assignment, context, acceptor, ".jpg,.jpeg,.png");
}
public void completeTableValue_IconName(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
this.imageFilePickerProposal(model, assignment, context, acceptor, ".jpg,.jpeg,.png");
}
public void completeTableBrokerDatamart_Filter(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
EObject _currentModel = context.getCurrentModel();
TableBrokerDatamart datamart = ((TableBrokerDatamart) _currentModel);
HashMap<String, String> filterIdList = CollectionLiterals.<String, String>newHashMap();
DatamartDefinition _datamartDef = datamart.getDatamartDef();
this.datamartInferrer.createFilterMap(_datamartDef, filterIdList);
Set<Map.Entry<String, String>> _entrySet = filterIdList.entrySet();
for (final Map.Entry<String, String> filter : _entrySet) {
String _value = filter.getValue();
String _concat = "\"".concat(_value);
String _concat_1 = _concat.concat("\"");
String _key = filter.getKey();
ICompletionProposal _createCompletionProposal = this.createCompletionProposal(_concat_1, _key, null, context);
acceptor.accept(_createCompletionProposal);
}
}
public void completeTableFormatter_Format(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
ICompletionProposal _createCompletionProposal = this.createCompletionProposal("\"###,##0.00\" /* money */", "money", null, context);
acceptor.accept(_createCompletionProposal);
ICompletionProposal _createCompletionProposal_1 = this.createCompletionProposal("\"###,##0.00 &curren;\" /* local national currency */", "local national currency",
null, context);
acceptor.accept(_createCompletionProposal_1);
ICompletionProposal _createCompletionProposal_2 = this.createCompletionProposal("\"###,##0.00 &curren;&curren;\" /* local international currency */",
"local international currency", null, context);
acceptor.accept(_createCompletionProposal_2);
ICompletionProposal _createCompletionProposal_3 = this.createCompletionProposal("\"#0.000\" /* quantity */", "quantity", null, context);
acceptor.accept(_createCompletionProposal_3);
ICompletionProposal _createCompletionProposal_4 = this.createCompletionProposal("\"#0.00;(#0.00)\" /* negative in parentheses */", "negative in parentheses", null, context);
acceptor.accept(_createCompletionProposal_4);
ICompletionProposal _createCompletionProposal_5 = this.createCompletionProposal("\"##0.0 %\" /* ratio as percentage */", "ratio as percentage", null, context);
acceptor.accept(_createCompletionProposal_5);
ICompletionProposal _createCompletionProposal_6 = this.createCompletionProposal("\"##0.0 %%\" /* ratio as per mill */", "ratio as per mill", null, context);
acceptor.accept(_createCompletionProposal_6);
ICompletionProposal _createCompletionProposal_7 = this.createCompletionProposal("\"##0.0\'%\'\" /* percentage sign */", "percentage sign", null, context);
acceptor.accept(_createCompletionProposal_7);
ICompletionProposal _createCompletionProposal_8 = this.createCompletionProposal("\"##0.0\'?\'\" /* per mill sign */", "per mill sign", null, context);
acceptor.accept(_createCompletionProposal_8);
ICompletionProposal _createCompletionProposal_9 = this.createCompletionProposal("\"0.0000000000E00\" /* scientific */", "scientific", null, context);
acceptor.accept(_createCompletionProposal_9);
ICompletionProposal _createCompletionProposal_10 = this.createCompletionProposal("\"SHORTDATE\" /* short date */", "short date", null, context);
acceptor.accept(_createCompletionProposal_10);
ICompletionProposal _createCompletionProposal_11 = this.createCompletionProposal("\"MEDIUMDATE\" /* medium date */", "medium date", null, context);
acceptor.accept(_createCompletionProposal_11);
ICompletionProposal _createCompletionProposal_12 = this.createCompletionProposal("\"LONGDATE\" /* long date */", "long date", null, context);
acceptor.accept(_createCompletionProposal_12);
ICompletionProposal _createCompletionProposal_13 = this.createCompletionProposal("\"FULLDATE\" /* full date */", "full date", null, context);
acceptor.accept(_createCompletionProposal_13);
ICompletionProposal _createCompletionProposal_14 = this.createCompletionProposal("\"SHORTTIME\" /* short time */", "short time", null, context);
acceptor.accept(_createCompletionProposal_14);
ICompletionProposal _createCompletionProposal_15 = this.createCompletionProposal("\"MEDIUMTIME\" /* medium time */", "medium time", null, context);
acceptor.accept(_createCompletionProposal_15);
ICompletionProposal _createCompletionProposal_16 = this.createCompletionProposal("\"LONGTIME\" /* long time */", "long time", null, context);
acceptor.accept(_createCompletionProposal_16);
ICompletionProposal _createCompletionProposal_17 = this.createCompletionProposal("\"FULLTIME\" /* full time */", "full time", null, context);
acceptor.accept(_createCompletionProposal_17);
ICompletionProposal _createCompletionProposal_18 = this.createCompletionProposal("\"SHORTDATESHORTTIME\" /* short date short time */", "short date short time", null, context);
acceptor.accept(_createCompletionProposal_18);
ICompletionProposal _createCompletionProposal_19 = this.createCompletionProposal("\"SHORTDATEMEDIUMTIME\" /* short date medium time */", "short date medium time",
null, context);
acceptor.accept(_createCompletionProposal_19);
ICompletionProposal _createCompletionProposal_20 = this.createCompletionProposal("\"SHORTDATELONGTIME\" /* short date long time */", "short date long time", null, context);
acceptor.accept(_createCompletionProposal_20);
ICompletionProposal _createCompletionProposal_21 = this.createCompletionProposal("\"SHORTDATEFULLTIME\" /* short date full time */", "short date full time", null, context);
acceptor.accept(_createCompletionProposal_21);
ICompletionProposal _createCompletionProposal_22 = this.createCompletionProposal("\"MEDIUMDATESHORTTIME\" /* medium date short time */", "medium date short time",
null, context);
acceptor.accept(_createCompletionProposal_22);
ICompletionProposal _createCompletionProposal_23 = this.createCompletionProposal("\"MEDIUMDATEMEDIUMTIME\" /* medium date medium time */", "medium date medium time",
null, context);
acceptor.accept(_createCompletionProposal_23);
ICompletionProposal _createCompletionProposal_24 = this.createCompletionProposal("\"MEDIUMDATELONGTIME\" /* medium date long time */", "medium date long time", null, context);
acceptor.accept(_createCompletionProposal_24);
ICompletionProposal _createCompletionProposal_25 = this.createCompletionProposal("\"MEDIUMDATEFULLTIME\" /* medium date full time */", "medium date full time", null, context);
acceptor.accept(_createCompletionProposal_25);
ICompletionProposal _createCompletionProposal_26 = this.createCompletionProposal("\"LONGDATESHORTTIME\" /* long date short time */", "long date short time", null, context);
acceptor.accept(_createCompletionProposal_26);
ICompletionProposal _createCompletionProposal_27 = this.createCompletionProposal("\"LONGDATEMEDIUMTIME\" /* long date medium time */", "long date medium time", null, context);
acceptor.accept(_createCompletionProposal_27);
ICompletionProposal _createCompletionProposal_28 = this.createCompletionProposal("\"LONGDATELONGTIME\" /* long date long time */", "long date long time", null, context);
acceptor.accept(_createCompletionProposal_28);
ICompletionProposal _createCompletionProposal_29 = this.createCompletionProposal("\"LONGDATEFULLTIME\" /* long date full time */", "long date full time", null, context);
acceptor.accept(_createCompletionProposal_29);
ICompletionProposal _createCompletionProposal_30 = this.createCompletionProposal("\"FULLDATESHORTTIME\" /* full date short time */", "full date short time", null, context);
acceptor.accept(_createCompletionProposal_30);
ICompletionProposal _createCompletionProposal_31 = this.createCompletionProposal("\"FULLDATEMEDIUMTIME\" /* full date medium time */", "full date medium time", null, context);
acceptor.accept(_createCompletionProposal_31);
ICompletionProposal _createCompletionProposal_32 = this.createCompletionProposal("\"FULLDATELONGTIME\" /* full date long time */", "full date long time", null, context);
acceptor.accept(_createCompletionProposal_32);
ICompletionProposal _createCompletionProposal_33 = this.createCompletionProposal("\"FULLDATEFULLTIME\" /* full date full time */", "full date full time", null, context);
acceptor.accept(_createCompletionProposal_33);
}
public void completeTableTextColor_Rgb(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
this.colorPickerProposal(model, assignment, context, acceptor);
}
public void completeTableCellColor_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(this.colorSelectionPrompt, 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);
ICompletionProposal _createCompletionProposal_1 = this.createCompletionProposal("\"230,128,64\" /* orange */", "orange", null, context);
acceptor.accept(_createCompletionProposal_1);
ICompletionProposal _createCompletionProposal_2 = this.createCompletionProposal("\"255,182,182\" /* light red */", "light red", null, context);
acceptor.accept(_createCompletionProposal_2);
ICompletionProposal _createCompletionProposal_3 = this.createCompletionProposal("\"255,0,0\" /* red */", "red", null, context);
acceptor.accept(_createCompletionProposal_3);
ICompletionProposal _createCompletionProposal_4 = this.createCompletionProposal("\"204,102,102\" /* dark red */", "dark red", null, context);
acceptor.accept(_createCompletionProposal_4);
ICompletionProposal _createCompletionProposal_5 = this.createCompletionProposal("\"255,255,128\" /*light yellow */", "light yellow", null, context);
acceptor.accept(_createCompletionProposal_5);
ICompletionProposal _createCompletionProposal_6 = this.createCompletionProposal("\"255,255,0\" /* yellow */", "yellow", null, context);
acceptor.accept(_createCompletionProposal_6);
ICompletionProposal _createCompletionProposal_7 = this.createCompletionProposal("\"128,128,0\" /* dark yellow */", "dark yellow", null, context);
acceptor.accept(_createCompletionProposal_7);
ICompletionProposal _createCompletionProposal_8 = this.createCompletionProposal("\"102,204,102\" /* light green */", "light green", null, context);
acceptor.accept(_createCompletionProposal_8);
ICompletionProposal _createCompletionProposal_9 = this.createCompletionProposal("\"0,255,0\" /* green */", "green", null, context);
acceptor.accept(_createCompletionProposal_9);
ICompletionProposal _createCompletionProposal_10 = this.createCompletionProposal("\"147,183,95\" /* dark green */", "dark green", null, context);
acceptor.accept(_createCompletionProposal_10);
ICompletionProposal _createCompletionProposal_11 = this.createCompletionProposal("\"102,102,204\" /* light blue */", "light blue", null, context);
acceptor.accept(_createCompletionProposal_11);
ICompletionProposal _createCompletionProposal_12 = this.createCompletionProposal("\"0,0,255\" /* blue */", "blue", null, context);
acceptor.accept(_createCompletionProposal_12);
ICompletionProposal _createCompletionProposal_13 = this.createCompletionProposal("\"147,95,183\" /* dark blue */", "dark blue", null, context);
acceptor.accept(_createCompletionProposal_13);
ICompletionProposal _createCompletionProposal_14 = this.createCompletionProposal("\"0,0,0\" /* black */", "black", null, context);
acceptor.accept(_createCompletionProposal_14);
ICompletionProposal _createCompletionProposal_15 = this.createCompletionProposal("\"255,255,255\" /* white */", "white", null, context);
acceptor.accept(_createCompletionProposal_15);
}
public boolean isValueValidProposal(final ContentAssistContext context, final String proposal, final boolean result) {
boolean _isGrammarToken = this.isGrammarToken(proposal);
if (_isGrammarToken) {
return true;
}
EObject eObj = context.getCurrentModel();
String requestedAxisName = "";
while ((!(eObj instanceof TableDatamart))) {
{
EObject _eContainer = eObj.eContainer();
eObj = _eContainer;
if ((eObj instanceof TableAxis)) {
AxisEnum _axis = ((TableAxis) eObj).getAxis();
String _literal = _axis.getLiteral();
requestedAxisName = _literal;
}
}
}
boolean _notEquals = (!Objects.equal(eObj, null));
if (_notEquals) {
DatamartDefinition datamart = ((TableDatamart) eObj).getDatamartRef();
boolean _and = false;
boolean _notEquals_1 = (!Objects.equal(datamart, null));
if (!_notEquals_1) {
_and = false;
} else {
DatamartSource _source = datamart.getSource();
boolean _notEquals_2 = (!Objects.equal(_source, null));
_and = _notEquals_2;
}
if (_and) {
DatamartSource _source_1 = datamart.getSource();
if ((_source_1 instanceof DatamartCube)) {
DatamartSource _source_2 = datamart.getSource();
EList<DatamartCubeElement> _axisslicer = ((DatamartCube) _source_2).getAxisslicer();
for (final DatamartCubeElement axis : _axisslicer) {
if ((axis instanceof DatamartAxis)) {
AxisEnum _name = ((DatamartAxis) axis).getName();
String _literal = _name.getLiteral();
boolean _equals = _literal.equals(requestedAxisName);
if (_equals) {
boolean hasMeasures = false;
boolean hasHierarchy = false;
boolean hasAggregation = false;
boolean isCrossjoined = false;
boolean isUndefined = false;
EList<DatamartElement> _elements = ((DatamartAxis) axis).getElements();
for (final DatamartElement element : _elements) {
boolean _or = false;
if ((element instanceof DatamartMeasure)) {
_or = true;
} else {
_or = (element instanceof DatamartDerivedMeasure);
}
if (_or) {
hasMeasures = true;
}
}
EList<DatamartElement> _elements_1 = ((DatamartAxis) axis).getElements();
for (final DatamartElement element_1 : _elements_1) {
{
if ((element_1 instanceof DatamartHierarchy)) {
if (hasHierarchy) {
isCrossjoined = true;
} else {
hasHierarchy = true;
}
boolean _isAllLevels = ((DatamartHierarchy) element_1).isAllLevels();
if (_isAllLevels) {
isUndefined = true;
}
}
if ((element_1 instanceof DatamartSetAggregation)) {
if (hasAggregation) {
isCrossjoined = true;
} else {
hasAggregation = true;
}
hasAggregation = true;
}
}
}
if ((hasMeasures && (hasHierarchy || hasAggregation))) {
isCrossjoined = true;
}
if ((isCrossjoined || isUndefined)) {
boolean _equals_1 = "ordinal".equals(proposal);
if (_equals_1) {
return true;
}
boolean _equals_2 = "allColumns".equals(proposal);
if (_equals_2) {
return true;
}
boolean _equals_3 = "all".equals(proposal);
if (_equals_3) {
return true;
}
}
if ((!isUndefined)) {
EList<DatamartElement> _elements_2 = ((DatamartAxis) axis).getElements();
for (final DatamartElement element_2 : _elements_2) {
{
boolean _and_1 = false;
if (!(element_2 instanceof DatamartMeasure)) {
_and_1 = false;
} else {
boolean _equals_4 = "measure".equals(proposal);
_and_1 = _equals_4;
}
if (_and_1) {
return true;
}
boolean _and_2 = false;
if (!(element_2 instanceof DatamartDerivedMeasure)) {
_and_2 = false;
} else {
boolean _equals_5 = "derived".equals(proposal);
_and_2 = _equals_5;
}
if (_and_2) {
return true;
}
boolean _and_3 = false;
if (!(element_2 instanceof DatamartHierarchy)) {
_and_3 = false;
} else {
boolean _equals_6 = "level".equals(proposal);
_and_3 = _equals_6;
}
if (_and_3) {
return true;
}
boolean _and_4 = false;
if (!(element_2 instanceof DatamartSetAggregation)) {
_and_4 = false;
} else {
boolean _equals_7 = "aggregation".equals(proposal);
_and_4 = _equals_7;
}
if (_and_4) {
return true;
}
}
}
}
}
}
}
} else {
boolean _and_1 = false;
DatamartSource _source_3 = datamart.getSource();
if (!(_source_3 instanceof DatamartEntity)) {
_and_1 = false;
} else {
boolean _equals_4 = "property".equals(proposal);
_and_1 = _equals_4;
}
if (_and_1) {
return true;
} else {
boolean _and_2 = false;
DatamartSource _source_4 = datamart.getSource();
if (!(_source_4 instanceof DatamartTask)) {
_and_2 = false;
} else {
boolean _or_1 = false;
boolean _equals_5 = "column".equals(proposal);
if (_equals_5) {
_or_1 = true;
} else {
boolean _equals_6 = "taskId".equals(proposal);
_or_1 = _equals_6;
}
_and_2 = _or_1;
}
if (_and_2) {
return true;
}
}
}
}
}
return false;
}
public boolean isGrammarToken(final String proposal) {
boolean _equals = this.imageSelectionPrompt.equals(proposal);
if (_equals) {
return true;
}
boolean _equals_1 = "icon".equals(proposal);
if (_equals_1) {
return true;
}
boolean _equals_2 = "image".equals(proposal);
if (_equals_2) {
return true;
}
boolean _equals_3 = "using".equals(proposal);
if (_equals_3) {
return true;
}
boolean _equals_4 = "preorder".equals(proposal);
if (_equals_4) {
return true;
}
boolean _equals_5 = "intervals".equals(proposal);
if (_equals_5) {
return true;
}
boolean _equals_6 = "lookups".equals(proposal);
if (_equals_6) {
return true;
}
boolean _equals_7 = "formatter".equals(proposal);
if (_equals_7) {
return true;
}
boolean _equals_8 = "hidelabel".equals(proposal);
if (_equals_8) {
return true;
}
boolean _equals_9 = "collapse".equals(proposal);
if (_equals_9) {
return true;
}
boolean _equals_10 = "up to".equals(proposal);
if (_equals_10) {
return true;
}
boolean _equals_11 = "number".equals(proposal);
if (_equals_11) {
return true;
}
boolean _equals_12 = "string".equals(proposal);
if (_equals_12) {
return true;
}
boolean _equals_13 = "days in past".equals(proposal);
if (_equals_13) {
return true;
}
boolean _equals_14 = "to".equals(proposal);
if (_equals_14) {
return true;
}
boolean _equals_15 = "datamart".equals(proposal);
if (_equals_15) {
return true;
}
boolean _equals_16 = "{".equals(proposal);
if (_equals_16) {
return true;
}
boolean _equals_17 = "}".equals(proposal);
if (_equals_17) {
return true;
}
return false;
}
public boolean isIntervalValidProposal(final ContentAssistContext context, final String proposal, final boolean b) {
INode _currentNode = context.getCurrentNode();
ICompositeNode _parent = null;
if (_currentNode!=null) {
_parent=_currentNode.getParent();
}
EObject _semanticElement = null;
if (_parent!=null) {
_semanticElement=_parent.getSemanticElement();
}
EObject node = _semanticElement;
EObject _currentModel = context.getCurrentModel();
EObject container = _currentModel.eContainer();
if ((container instanceof TableValue)) {
if ((node instanceof TableRangeElement)) {
boolean _or = false;
boolean _or_1 = false;
boolean _or_2 = false;
boolean _or_3 = false;
boolean _equals = "textcolor".equals(proposal);
if (_equals) {
_or_3 = true;
} else {
boolean _equals_1 = "cellcolor".equals(proposal);
_or_3 = _equals_1;
}
if (_or_3) {
_or_2 = true;
} else {
boolean _equals_2 = "icon".equals(proposal);
_or_2 = _equals_2;
}
if (_or_2) {
_or_1 = true;
} else {
boolean _equals_3 = "trend".equals(proposal);
_or_1 = _equals_3;
}
if (_or_1) {
_or = true;
} else {
boolean _equals_4 = "tooltip".equals(proposal);
_or = _equals_4;
}
if (_or) {
return true;
}
} else {
return true;
}
}
return false;
}
public boolean isAxisValidProposal(final ContentAssistContext context, final String proposal, final boolean b) {
EObject eObj = context.getCurrentModel();
while ((!(eObj instanceof Table))) {
EObject _eContainer = eObj.eContainer();
eObj = _eContainer;
}
boolean _and = false;
if (!((eObj instanceof Table) && (!(((Table) eObj).getTabletype() instanceof TableTable)))) {
_and = false;
} else {
boolean _equals = "details".equals(proposal);
_and = _equals;
}
if (_and) {
return false;
}
return true;
}
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);
}
public void complete_TableQualifiedNameWithWildCard(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
this.providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this);
}
public void complete_SignedNumber(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
this.providerHelper.createNumberProposal(context, acceptor, ruleCall, this);
}
public void complete_Number(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
this.providerHelper.createNumberProposal(context, acceptor, ruleCall, this);
}
public void completePropertyButtonStyle_EventTopic(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completePropertyButtonStyle_EventTopic(model, assignment, context, acceptor);
this.gridProposalProvider.doCompletePropertyButtonStyle_EventTopic(acceptor, model, context);
}
public void completePropertyImageStyle_EventTopic(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completePropertyImageStyle_EventTopic(model, assignment, context, acceptor);
this.gridProposalProvider.doCompletePropertyImageStyle_EventTopic(acceptor, model, context);
}
public void completeStringToResourceStyleConfig_Value(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completeStringToResourceStyleConfig_Value(model, assignment, context, acceptor);
this.gridProposalProvider.doCompleteStringToResourceStyleConfig_Value(acceptor, model, context);
}
public void completeStringToResourceStyleConfig_ResourceThemePath(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completeStringToResourceStyleConfig_ResourceThemePath(model, assignment, context, acceptor);
this.gridProposalProvider.doCompleteStringToResourceStyleConfig_ResourceThemePath(acceptor, model, context);
}
public void completeNumericToResourceStyleConfig_ResourceThemePath(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completeNumericToResourceStyleConfig_ResourceThemePath(model, assignment, context, acceptor);
this.gridProposalProvider.doCompleteNumericToResourceStyleConfig_ResourceThemePath(acceptor, model, context);
}
public void completeNumericToResourceStyleConfig_Value(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completeNumericToResourceStyleConfig_Value(model, assignment, context, acceptor);
this.gridProposalProvider.doCompleteNumericToResourceStyleConfig_Value(acceptor, model, context);
}
public void completePropertyNumberStyle_NumberFormat(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completePropertyNumberStyle_NumberFormat(model, assignment, context, acceptor);
this.gridProposalProvider.doCompletePropertyNumberStyle_NumberFormat(acceptor, model, context);
}
public void completePropertyDateStyle_DateFormat(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completePropertyDateStyle_DateFormat(model, assignment, context, acceptor);
this.gridProposalProvider.doCompletePropertyDateStyle_DateFormat(acceptor, model, context);
}
public void completePropertyProgressbarStyle_MaxValue(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completePropertyProgressbarStyle_MaxValue(model, assignment, context, acceptor);
this.gridProposalProvider.doCompletePropertyProgressbarStyle_MaxValue(acceptor, model, context);
}
public void completePropertyPriceStyle_HtmlPattern(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completePropertyPriceStyle_HtmlPattern(model, assignment, context, acceptor);
this.gridProposalProvider.doCompletePropertyPriceStyle_HtmlPattern(acceptor, model, context);
}
public void completePropertyPriceStyle_ValueNumberFormat(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completePropertyPriceStyle_ValueNumberFormat(model, assignment, context, acceptor);
this.gridProposalProvider.doCompletePropertyPriceStyle_ValueNumberFormat(acceptor, model, context);
}
public void completePropertyQuantityStyle_HtmlPattern(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completePropertyQuantityStyle_HtmlPattern(model, assignment, context, acceptor);
this.gridProposalProvider.doCompletePropertyQuantityStyle_HtmlPattern(acceptor, model, context);
}
public void completePropertyQuantityStyle_ValueNumberFormat(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
super.completePropertyQuantityStyle_ValueNumberFormat(model, assignment, context, acceptor);
this.gridProposalProvider.doCompletePropertyQuantityStyle_ValueNumberFormat(acceptor, model, context);
}
public void complete_TRANSLATABLESTRING(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
this.provider.complete_STRING(model, ruleCall, context, acceptor);
}
public void complete_ID(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
this.provider.complete_ID(model, ruleCall, context, acceptor);
}
public void completeTableImage_ResizeString(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);
}
public void completeTableStringLookup_LookupValue(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);
}
}