diff options
Diffstat (limited to 'plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor')
6 files changed, 247 insertions, 27 deletions
diff --git a/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/GroupDescriptionPreprocessor.java b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/GroupDescriptionPreprocessor.java index 9061023a1c..ecc54aca76 100644 --- a/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/GroupDescriptionPreprocessor.java +++ b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/GroupDescriptionPreprocessor.java @@ -18,17 +18,18 @@ import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.sirius.common.interpreter.api.IInterpreter; import org.eclipse.sirius.common.interpreter.api.IVariableManager; -import org.eclipse.sirius.properties.GroupDescription; +import org.eclipse.sirius.properties.AbstractGroupDescription; import org.eclipse.sirius.properties.GroupValidationSetDescription; import org.eclipse.sirius.properties.PropertiesFactory; import org.eclipse.sirius.properties.PropertiesPackage; import org.eclipse.sirius.properties.PropertyValidationRule; +import org.eclipse.sirius.properties.core.api.OverridesProvider; import org.eclipse.sirius.properties.core.api.PreconfiguredPreprocessor; import org.eclipse.sirius.properties.core.api.TransformationCache; import org.eclipse.sirius.viewpoint.description.validation.SemanticValidationRule; /** - * Preprocessor for {@link GroupDescription}. + * Preprocessor for {@link AbstractGroupDescription}. * <ul> * <li>The {@code filterConditionalStylesFromExtendedGroupExpression} attribute is ignored.</li> * <li>The {@code filterControlsFromExtendedGroupExpression} attribute is ignored.</li> @@ -42,7 +43,7 @@ import org.eclipse.sirius.viewpoint.description.validation.SemanticValidationRul * @author flatombe * @author mbats */ -public class GroupDescriptionPreprocessor extends PreconfiguredPreprocessor<GroupDescription> { +public class GroupDescriptionPreprocessor extends PreconfiguredPreprocessor<AbstractGroupDescription> { /** * The validation set feature is handled separately. */ @@ -52,16 +53,16 @@ public class GroupDescriptionPreprocessor extends PreconfiguredPreprocessor<Grou * The constructor. */ public GroupDescriptionPreprocessor() { - super(GroupDescription.class, PropertiesPackage.Literals.GROUP_DESCRIPTION); + super(AbstractGroupDescription.class, PropertiesPackage.Literals.GROUP_DESCRIPTION); } @Override - protected void processMonoValuedEReference(EReference eReference, GroupDescription processedDescription, GroupDescription currentDescription, TransformationCache cache, IInterpreter interpreter, - IVariableManager variableManager) { + protected void processMonoValuedEReference(EReference eReference, AbstractGroupDescription processedDescription, AbstractGroupDescription currentDescription, TransformationCache cache, + IInterpreter interpreter, IVariableManager variableManager, OverridesProvider overridesProvider) { if (!eReference.equals(VALIDATIONSET_FEATURE)) { - super.processMonoValuedEReference(eReference, processedDescription, currentDescription, cache, interpreter, variableManager); + super.processMonoValuedEReference(eReference, processedDescription, currentDescription, cache, interpreter, variableManager, overridesProvider); } else { - processValidationSet(processedDescription, currentDescription, cache, interpreter, variableManager); + processValidationSet(processedDescription, currentDescription, cache, interpreter, variableManager, overridesProvider); } } @@ -79,9 +80,11 @@ public class GroupDescriptionPreprocessor extends PreconfiguredPreprocessor<Grou * the interpreter. * @param variableManager * the variable manager. + * @param overridesProvider + * Utility class used to provide the override descriptions. */ - private void processValidationSet(GroupDescription processedDescription, GroupDescription currentDescription, TransformationCache cache, IInterpreter interpreter, - IVariableManager variableManager) { + private void processValidationSet(AbstractGroupDescription processedDescription, AbstractGroupDescription currentDescription, TransformationCache cache, IInterpreter interpreter, + IVariableManager variableManager, OverridesProvider overridesProvider) { if (currentDescription.eIsSet(VALIDATIONSET_FEATURE)) { GroupValidationSetDescription validationSet = Optional.ofNullable(processedDescription.getValidationSet()).orElse(PropertiesFactory.eINSTANCE.createGroupValidationSetDescription()); processedDescription.setValidationSet(validationSet); @@ -91,7 +94,8 @@ public class GroupDescriptionPreprocessor extends PreconfiguredPreprocessor<Grou // Copy all the semantic validation rules List<SemanticValidationRule> newSemanticValidationRules = new ArrayList<>(); currentDescription.getValidationSet().getSemanticValidationRules().forEach(rule -> { - if (!this.isFiltered(PropertiesPackage.eINSTANCE.getGroupValidationSetDescription_SemanticValidationRules(), processedDescription, rule, interpreter, variableManager)) { + if (!this.isFiltered(PropertiesPackage.eINSTANCE.getGroupValidationSetDescription_SemanticValidationRules(), processedDescription, rule, cache, interpreter, variableManager, + overridesProvider)) { newSemanticValidationRules.add(EcoreUtil.copy(rule)); } }); @@ -102,7 +106,8 @@ public class GroupDescriptionPreprocessor extends PreconfiguredPreprocessor<Grou // Copy all the property validation rules List<PropertyValidationRule> newPropertyValidationRules = new ArrayList<>(); currentDescription.getValidationSet().getPropertyValidationRules().forEach(rule -> { - if (!this.isFiltered(PropertiesPackage.eINSTANCE.getGroupValidationSetDescription_PropertyValidationRules(), processedDescription, rule, interpreter, variableManager)) { + if (!this.isFiltered(PropertiesPackage.eINSTANCE.getGroupValidationSetDescription_PropertyValidationRules(), processedDescription, rule, cache, interpreter, variableManager, + overridesProvider)) { newPropertyValidationRules.add(EcoreUtil.copy(rule)); } }); diff --git a/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/GroupOverrideDescriptionPreprocessor.java b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/GroupOverrideDescriptionPreprocessor.java new file mode 100644 index 0000000000..764859c541 --- /dev/null +++ b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/GroupOverrideDescriptionPreprocessor.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2017 Obeo. + * 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: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.sirius.properties.core.internal.preprocessor; + +import org.eclipse.emf.ecore.EReference; +import org.eclipse.sirius.common.interpreter.api.IInterpreter; +import org.eclipse.sirius.common.interpreter.api.IVariableManager; +import org.eclipse.sirius.properties.AbstractGroupDescription; +import org.eclipse.sirius.properties.core.api.OverridesProvider; +import org.eclipse.sirius.properties.core.api.TransformationCache; + +/** + * Preprocessor for + * {@link org.eclipse.sirius.properties.GroupOverrideDescription}. + * <ul> + * <li>The {@code overrides} containment is ignored.</li> + * </ul> + * + * @author mbats + */ +public class GroupOverrideDescriptionPreprocessor extends GroupDescriptionPreprocessor { + @Override + protected void processMonoValuedEReference(EReference eReference, AbstractGroupDescription processedDescription, AbstractGroupDescription currentDescription, TransformationCache cache, + IInterpreter interpreter, IVariableManager variableManager, OverridesProvider overridesProvider) { + if (!eReference.equals(currentDescription.eClass().getEStructuralFeature("overrides"))) { //$NON-NLS-1$ + super.processMonoValuedEReference(eReference, processedDescription, currentDescription, cache, interpreter, variableManager, overridesProvider); + } + } +} diff --git a/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/OverrideDescriptionPreprocessor.java b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/OverrideDescriptionPreprocessor.java new file mode 100644 index 0000000000..8110d7c492 --- /dev/null +++ b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/OverrideDescriptionPreprocessor.java @@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2017 Obeo. + * 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: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.sirius.properties.core.internal.preprocessor; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.sirius.common.interpreter.api.IInterpreter; +import org.eclipse.sirius.common.interpreter.api.IVariableManager; +import org.eclipse.sirius.properties.core.api.OverridesProvider; +import org.eclipse.sirius.properties.core.api.PreconfiguredPreprocessor; +import org.eclipse.sirius.properties.core.api.TransformationCache; + +/** + * Preprocessor for + * {@link org.eclipse.sirius.properties.AbstractOverrideDescription}. + * <ul> + * <li>The {@code overrides} containment is ignored.</li> + * </ul> + * + * @author mbats + */ +public class OverrideDescriptionPreprocessor<SIRIUS extends EObject> extends PreconfiguredPreprocessor<SIRIUS> { + /** + * The constructor. + * + * @param descriptionClass + * the SIRIUS class + * @param eClass + * the EClass of the Sirius object + */ + public OverrideDescriptionPreprocessor(Class<SIRIUS> descriptionClass, EClass eClass) { + super(descriptionClass, eClass); + } + + @Override + protected void processMonoValuedEReference(EReference eReference, SIRIUS processedDescription, SIRIUS currentDescription, TransformationCache cache, IInterpreter interpreter, + IVariableManager variableManager, OverridesProvider overridesProvider) { + if (!eReference.equals(currentDescription.eClass().getEStructuralFeature("overrides"))) { //$NON-NLS-1$ + super.processMonoValuedEReference(eReference, processedDescription, currentDescription, cache, interpreter, variableManager, overridesProvider); + } + } +} diff --git a/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PageDescriptionPreprocessor.java b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PageDescriptionPreprocessor.java index 637c39c155..3f8f75d97a 100644 --- a/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PageDescriptionPreprocessor.java +++ b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PageDescriptionPreprocessor.java @@ -19,6 +19,7 @@ import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.sirius.common.interpreter.api.IInterpreter; import org.eclipse.sirius.common.interpreter.api.IVariableManager; +import org.eclipse.sirius.properties.AbstractPageDescription; import org.eclipse.sirius.properties.DialogModelOperation; import org.eclipse.sirius.properties.GroupDescription; import org.eclipse.sirius.properties.PageDescription; @@ -29,6 +30,7 @@ import org.eclipse.sirius.properties.ViewExtensionDescription; import org.eclipse.sirius.properties.WizardModelOperation; import org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessorWithFiltering; import org.eclipse.sirius.properties.core.api.IDescriptionPreprocessor; +import org.eclipse.sirius.properties.core.api.OverridesProvider; import org.eclipse.sirius.properties.core.api.PreconfiguredPreprocessorUtils; import org.eclipse.sirius.properties.core.api.TransformationCache; import org.eclipse.sirius.properties.core.internal.SiriusPropertiesCorePlugin; @@ -47,7 +49,7 @@ import org.eclipse.sirius.viewpoint.description.validation.SemanticValidationRul * @author flatombe * @author mbats */ -public class PageDescriptionPreprocessor extends DefaultDescriptionPreprocessorWithFiltering<PageDescription> { +public class PageDescriptionPreprocessor extends DefaultDescriptionPreprocessorWithFiltering<AbstractPageDescription> { /** * This feature is handled separately. */ @@ -57,17 +59,17 @@ public class PageDescriptionPreprocessor extends DefaultDescriptionPreprocessorW * The constructor. */ public PageDescriptionPreprocessor() { - super(PageDescription.class, PreconfiguredPreprocessorUtils.getFeaturesToFilter(PropertiesPackage.Literals.PAGE_DESCRIPTION), + super(AbstractPageDescription.class, PreconfiguredPreprocessorUtils.getFeaturesToFilter(PropertiesPackage.Literals.PAGE_DESCRIPTION), PreconfiguredPreprocessorUtils.getFeaturesToCopy(PropertiesPackage.Literals.PAGE_DESCRIPTION)); } @Override - protected void processMonoValuedEReference(EReference eReference, PageDescription processedDescription, PageDescription currentDescription, TransformationCache cache, IInterpreter interpreter, - IVariableManager variableManager) { + protected void processMonoValuedEReference(EReference eReference, AbstractPageDescription processedDescription, AbstractPageDescription currentDescription, TransformationCache cache, + IInterpreter interpreter, IVariableManager variableManager, OverridesProvider overridesProvider) { if (!eReference.equals(VALIDATIONSET_FEATURE)) { - super.processMonoValuedEReference(eReference, processedDescription, currentDescription, cache, interpreter, variableManager); + super.processMonoValuedEReference(eReference, processedDescription, currentDescription, cache, interpreter, variableManager, overridesProvider); } else { - processValidationSet(processedDescription, currentDescription, cache, interpreter, variableManager); + processValidationSet(processedDescription, currentDescription, cache, interpreter, variableManager, overridesProvider); } } @@ -85,8 +87,11 @@ public class PageDescriptionPreprocessor extends DefaultDescriptionPreprocessorW * the interpreter. * @param variableManager * the variable manager. + * @param overridesProvider + * Utility class used to provide the override descriptions */ - private void processValidationSet(PageDescription processedDescription, PageDescription currentDescription, TransformationCache cache, IInterpreter interpreter, IVariableManager variableManager) { + private void processValidationSet(AbstractPageDescription processedDescription, AbstractPageDescription currentDescription, TransformationCache cache, IInterpreter interpreter, + IVariableManager variableManager, OverridesProvider overridesProvider) { if (currentDescription.eIsSet(VALIDATIONSET_FEATURE)) { PageValidationSetDescription validationSet = Optional.ofNullable(processedDescription.getValidationSet()).orElse(PropertiesFactory.eINSTANCE.createPageValidationSetDescription()); processedDescription.setValidationSet(validationSet); @@ -95,7 +100,8 @@ public class PageDescriptionPreprocessor extends DefaultDescriptionPreprocessorW // then those contributed by the current description. List<SemanticValidationRule> newValue = new ArrayList<>(); currentDescription.getValidationSet().getSemanticValidationRules().forEach(rule -> { - if (!this.isFiltered(PropertiesPackage.eINSTANCE.getPageValidationSetDescription_SemanticValidationRules(), processedDescription, rule, interpreter, variableManager)) { + if (!this.isFiltered(PropertiesPackage.eINSTANCE.getPageValidationSetDescription_SemanticValidationRules(), processedDescription, rule, cache, interpreter, variableManager, + overridesProvider)) { newValue.add(EcoreUtil.copy(rule)); } }); @@ -107,12 +113,12 @@ public class PageDescriptionPreprocessor extends DefaultDescriptionPreprocessorW } @Override - protected void processMultiValuedEReference(EReference eReference, PageDescription processedDescription, PageDescription currentDescription, TransformationCache cache, IInterpreter interpreter, - IVariableManager variableManager) { + protected void processMultiValuedEReference(EReference eReference, AbstractPageDescription processedDescription, AbstractPageDescription currentDescription, TransformationCache cache, + IInterpreter interpreter, IVariableManager variableManager, OverridesProvider overridesProvider) { if (!eReference.equals(PropertiesPackage.Literals.ABSTRACT_PAGE_DESCRIPTION__GROUPS)) { - super.processMultiValuedEReference(eReference, processedDescription, currentDescription, cache, interpreter, variableManager); + super.processMultiValuedEReference(eReference, processedDescription, currentDescription, cache, interpreter, variableManager, overridesProvider); } else { - processGroups(processedDescription, currentDescription, cache, interpreter, variableManager); + processGroups(processedDescription, currentDescription, cache, interpreter, variableManager, overridesProvider); } } @@ -130,17 +136,20 @@ public class PageDescriptionPreprocessor extends DefaultDescriptionPreprocessorW * the interpreter. * @param variableManager * the variable manager. + * @param overridesProvider + * Utility class used to provide the override descriptions */ - private void processGroups(PageDescription processedDescription, PageDescription currentDescription, TransformationCache cache, IInterpreter interpreter, IVariableManager variableManager) { + private void processGroups(AbstractPageDescription processedDescription, AbstractPageDescription currentDescription, TransformationCache cache, IInterpreter interpreter, + IVariableManager variableManager, OverridesProvider overridesProvider) { currentDescription.getGroups().forEach(groupDescription -> { Optional<Object> inputDescription = cache.getInput(processedDescription); Optional<PageDescription> optionalInputPageDescription = inputDescription.filter(PageDescription.class::isInstance).map(PageDescription.class::cast); Optional<IDescriptionPreprocessor> optionalDescriptionPreprocessor = SiriusPropertiesCorePlugin.getPlugin().getDescriptionPreprocessor(groupDescription); - if (!this.isFiltered(PropertiesPackage.eINSTANCE.getAbstractPageDescription_Groups(), processedDescription, groupDescription, interpreter, variableManager) + if (!this.isFiltered(PropertiesPackage.eINSTANCE.getAbstractPageDescription_Groups(), processedDescription, groupDescription, cache, interpreter, variableManager, overridesProvider) && optionalInputPageDescription.isPresent() && this.shouldProcessGroup(optionalInputPageDescription.get(), groupDescription)) { // @formatter:off - optionalDescriptionPreprocessor.map(descriptionPreprocessor -> descriptionPreprocessor.convert(groupDescription, cache, interpreter, variableManager)) + optionalDescriptionPreprocessor.map(descriptionPreprocessor -> descriptionPreprocessor.convert(groupDescription, cache, interpreter, variableManager, overridesProvider)) .filter(GroupDescription.class::isInstance) .map(GroupDescription.class::cast) .map(processedDescription.getGroups()::add); diff --git a/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PageOverrideDescriptionPreprocessor.java b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PageOverrideDescriptionPreprocessor.java new file mode 100644 index 0000000000..7bdec5d857 --- /dev/null +++ b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PageOverrideDescriptionPreprocessor.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2017 Obeo. + * 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: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.sirius.properties.core.internal.preprocessor; + +import org.eclipse.emf.ecore.EReference; +import org.eclipse.sirius.common.interpreter.api.IInterpreter; +import org.eclipse.sirius.common.interpreter.api.IVariableManager; +import org.eclipse.sirius.properties.AbstractPageDescription; +import org.eclipse.sirius.properties.core.api.OverridesProvider; +import org.eclipse.sirius.properties.core.api.TransformationCache; + +/** + * Preprocessor for + * {@link org.eclipse.sirius.properties.PageOverrideDescription}. + * <ul> + * <li>The {@code overrides} containment is ignored.</li> + * </ul> + * + * @author mbats + */ +public class PageOverrideDescriptionPreprocessor extends PageDescriptionPreprocessor { + @Override + protected void processMonoValuedEReference(EReference eReference, AbstractPageDescription processedDescription, AbstractPageDescription currentDescription, TransformationCache cache, + IInterpreter interpreter, IVariableManager variableManager, OverridesProvider overridesProvider) { + if (!eReference.equals(currentDescription.eClass().getEStructuralFeature("overrides"))) { //$NON-NLS-1$ + super.processMonoValuedEReference(eReference, processedDescription, currentDescription, cache, interpreter, variableManager, overridesProvider); + } + } +} diff --git a/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PropertiesDescriptionPreprocessorSwitch.java b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PropertiesDescriptionPreprocessorSwitch.java index 234897a7b2..667dc51f76 100644 --- a/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PropertiesDescriptionPreprocessorSwitch.java +++ b/plugins/org.eclipse.sirius.properties.core/src/org/eclipse/sirius/properties/core/internal/preprocessor/PropertiesDescriptionPreprocessorSwitch.java @@ -17,21 +17,36 @@ import java.util.Optional; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.sirius.properties.AbstractDynamicMappingForDescription; +import org.eclipse.sirius.properties.AbstractGroupDescription; +import org.eclipse.sirius.properties.AbstractWidgetDescription; import org.eclipse.sirius.properties.ButtonDescription; +import org.eclipse.sirius.properties.ButtonOverrideDescription; import org.eclipse.sirius.properties.Category; import org.eclipse.sirius.properties.CheckboxDescription; +import org.eclipse.sirius.properties.CheckboxOverrideDescription; import org.eclipse.sirius.properties.CustomDescription; +import org.eclipse.sirius.properties.CustomOverrideDescription; import org.eclipse.sirius.properties.DynamicMappingForDescription; +import org.eclipse.sirius.properties.DynamicMappingForOverrideDescription; import org.eclipse.sirius.properties.GroupDescription; +import org.eclipse.sirius.properties.GroupOverrideDescription; import org.eclipse.sirius.properties.HyperlinkDescription; +import org.eclipse.sirius.properties.HyperlinkOverrideDescription; import org.eclipse.sirius.properties.LabelDescription; +import org.eclipse.sirius.properties.LabelOverrideDescription; import org.eclipse.sirius.properties.ListDescription; +import org.eclipse.sirius.properties.ListOverrideDescription; import org.eclipse.sirius.properties.PageDescription; +import org.eclipse.sirius.properties.PageOverrideDescription; import org.eclipse.sirius.properties.PropertiesPackage; import org.eclipse.sirius.properties.RadioDescription; +import org.eclipse.sirius.properties.RadioOverrideDescription; import org.eclipse.sirius.properties.SelectDescription; +import org.eclipse.sirius.properties.SelectOverrideDescription; import org.eclipse.sirius.properties.TextAreaDescription; +import org.eclipse.sirius.properties.TextAreaOverrideDescription; import org.eclipse.sirius.properties.TextDescription; +import org.eclipse.sirius.properties.TextOverrideDescription; import org.eclipse.sirius.properties.ViewExtensionDescription; import org.eclipse.sirius.properties.WidgetAction; import org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor; @@ -74,10 +89,20 @@ public class PropertiesDescriptionPreprocessorSwitch extends PropertiesSwitch<Op } @Override + public Optional<IDescriptionPreprocessor> casePageOverrideDescription(PageOverrideDescription object) { + return Optional.of(new PageOverrideDescriptionPreprocessor()); + } + + @Override public Optional<IDescriptionPreprocessor> caseGroupDescription(GroupDescription object) { return Optional.of(new GroupDescriptionPreprocessor()); } + @Override + public Optional<IDescriptionPreprocessor> caseGroupOverrideDescription(GroupOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractGroupDescription>(AbstractGroupDescription.class, PropertiesPackage.Literals.ABSTRACT_GROUP_DESCRIPTION)); + } + // Widgets @Override public Optional<IDescriptionPreprocessor> caseTextDescription(TextDescription object) { @@ -85,46 +110,91 @@ public class PropertiesDescriptionPreprocessorSwitch extends PropertiesSwitch<Op } @Override + public Optional<IDescriptionPreprocessor> caseTextOverrideDescription(TextOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractWidgetDescription>(AbstractWidgetDescription.class, PropertiesPackage.Literals.ABSTRACT_WIDGET_DESCRIPTION)); + } + + @Override public Optional<IDescriptionPreprocessor> caseButtonDescription(ButtonDescription object) { return Optional.of(new PreconfiguredPreprocessor<ButtonDescription>(ButtonDescription.class, PropertiesPackage.Literals.BUTTON_DESCRIPTION)); } @Override + public Optional<IDescriptionPreprocessor> caseButtonOverrideDescription(ButtonOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractWidgetDescription>(AbstractWidgetDescription.class, PropertiesPackage.Literals.ABSTRACT_WIDGET_DESCRIPTION)); + } + + @Override public Optional<IDescriptionPreprocessor> caseLabelDescription(LabelDescription object) { return Optional.of(new PreconfiguredPreprocessor<LabelDescription>(LabelDescription.class, PropertiesPackage.Literals.LABEL_DESCRIPTION)); } @Override + public Optional<IDescriptionPreprocessor> caseLabelOverrideDescription(LabelOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractWidgetDescription>(AbstractWidgetDescription.class, PropertiesPackage.Literals.ABSTRACT_WIDGET_DESCRIPTION)); + } + + @Override public Optional<IDescriptionPreprocessor> caseCheckboxDescription(CheckboxDescription object) { return Optional.of(new PreconfiguredPreprocessor<CheckboxDescription>(CheckboxDescription.class, PropertiesPackage.Literals.CHECKBOX_DESCRIPTION)); } @Override + public Optional<IDescriptionPreprocessor> caseCheckboxOverrideDescription(CheckboxOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractWidgetDescription>(AbstractWidgetDescription.class, PropertiesPackage.Literals.ABSTRACT_WIDGET_DESCRIPTION)); + } + + @Override public Optional<IDescriptionPreprocessor> caseSelectDescription(SelectDescription object) { return Optional.of(new PreconfiguredPreprocessor<SelectDescription>(SelectDescription.class, PropertiesPackage.Literals.SELECT_DESCRIPTION)); } @Override + public Optional<IDescriptionPreprocessor> caseSelectOverrideDescription(SelectOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractWidgetDescription>(AbstractWidgetDescription.class, PropertiesPackage.Literals.ABSTRACT_WIDGET_DESCRIPTION)); + } + + @Override public Optional<IDescriptionPreprocessor> caseTextAreaDescription(TextAreaDescription object) { return Optional.of(new PreconfiguredPreprocessor<TextAreaDescription>(TextAreaDescription.class, PropertiesPackage.Literals.TEXT_AREA_DESCRIPTION)); } @Override + public Optional<IDescriptionPreprocessor> caseTextAreaOverrideDescription(TextAreaOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractWidgetDescription>(AbstractWidgetDescription.class, PropertiesPackage.Literals.ABSTRACT_WIDGET_DESCRIPTION)); + } + + @Override public Optional<IDescriptionPreprocessor> caseListDescription(ListDescription object) { return Optional.of(new PreconfiguredPreprocessor<ListDescription>(ListDescription.class, PropertiesPackage.Literals.LIST_DESCRIPTION)); } @Override + public Optional<IDescriptionPreprocessor> caseListOverrideDescription(ListOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractWidgetDescription>(AbstractWidgetDescription.class, PropertiesPackage.Literals.ABSTRACT_WIDGET_DESCRIPTION)); + } + + @Override public Optional<IDescriptionPreprocessor> caseHyperlinkDescription(HyperlinkDescription object) { return Optional.of(new PreconfiguredPreprocessor<HyperlinkDescription>(HyperlinkDescription.class, PropertiesPackage.Literals.HYPERLINK_DESCRIPTION)); } @Override + public Optional<IDescriptionPreprocessor> caseHyperlinkOverrideDescription(HyperlinkOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractWidgetDescription>(AbstractWidgetDescription.class, PropertiesPackage.Literals.ABSTRACT_WIDGET_DESCRIPTION)); + } + + @Override public Optional<IDescriptionPreprocessor> caseRadioDescription(RadioDescription object) { return Optional.of(new PreconfiguredPreprocessor<RadioDescription>(RadioDescription.class, PropertiesPackage.Literals.RADIO_DESCRIPTION)); } @Override + public Optional<IDescriptionPreprocessor> caseRadioOverrideDescription(RadioOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractWidgetDescription>(AbstractWidgetDescription.class, PropertiesPackage.Literals.ABSTRACT_WIDGET_DESCRIPTION)); + } + + @Override public Optional<IDescriptionPreprocessor> caseAbstractDynamicMappingForDescription(AbstractDynamicMappingForDescription object) { return Optional.of(new PreconfiguredPreprocessor<DynamicMappingForDescription>(DynamicMappingForDescription.class, PropertiesPackage.Literals.DYNAMIC_MAPPING_FOR_DESCRIPTION)); } @@ -135,10 +205,21 @@ public class PropertiesDescriptionPreprocessorSwitch extends PropertiesSwitch<Op } @Override + public Optional<IDescriptionPreprocessor> caseDynamicMappingForOverrideDescription(DynamicMappingForOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractDynamicMappingForDescription>(AbstractDynamicMappingForDescription.class, + PropertiesPackage.Literals.ABSTRACT_DYNAMIC_MAPPING_FOR_DESCRIPTION)); + } + + @Override public Optional<IDescriptionPreprocessor> caseCustomDescription(CustomDescription object) { return Optional.of(new CustomDescriptionPreprocessor()); } + @Override + public Optional<IDescriptionPreprocessor> caseCustomOverrideDescription(CustomOverrideDescription object) { + return Optional.of(new OverrideDescriptionPreprocessor<AbstractWidgetDescription>(AbstractWidgetDescription.class, PropertiesPackage.Literals.ABSTRACT_WIDGET_DESCRIPTION)); + } + // Default @Override public Optional<IDescriptionPreprocessor> defaultCase(EObject object) { |