| /** |
| * 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 ¤\" /* local national currency */", "local national currency", |
| null, context); |
| acceptor.accept(_createCompletionProposal_1); |
| ICompletionProposal _createCompletionProposal_2 = this.createCompletionProposal("\"###,##0.00 ¤¤\" /* 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); |
| } |
| } |