| /* |
| * Copyright (c) 2007 Borland Software Corporation |
| * |
| * 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: |
| * Dmitry Stadnik (Borland) - initial API and implementation |
| */ |
| package org.eclipse.gmf.internal.sketch.transformer.reconcile; |
| |
| import org.eclipse.emf.ecore.EAttribute; |
| import org.eclipse.emf.ecore.EClass; |
| import org.eclipse.gmf.codegen.gmfgen.GMFGenPackage; |
| import org.eclipse.gmf.internal.codegen.util.VisualIDMatcher; |
| import org.eclipse.gmf.internal.common.reconcile.Copier; |
| import org.eclipse.gmf.internal.common.reconcile.Decision; |
| import org.eclipse.gmf.internal.common.reconcile.DefaultDecision; |
| import org.eclipse.gmf.internal.common.reconcile.ReconcilerConfigBase; |
| |
| /** |
| * @author dstadnik |
| */ |
| public class SketchReconcilerConfig extends ReconcilerConfigBase { |
| |
| private final GMFGenPackage GMFGEN = GMFGenPackage.eINSTANCE; |
| |
| public SketchReconcilerConfig() { |
| setMatcher(GMFGEN.getGenEditorGenerator(), ALWAYS_MATCH); |
| preserveIfSet(GMFGEN.getGenEditorGenerator(), GMFGEN.getGenEditorGenerator_CopyrightText()); |
| preserveIfSet(GMFGEN.getGenEditorGenerator(), GMFGEN.getGenEditorGenerator_PackageNamePrefix()); |
| preserveIfSet(GMFGEN.getGenEditorGenerator(), GMFGEN.getGenEditorGenerator_DomainFileExtension()); |
| preserveIfSet(GMFGEN.getGenEditorGenerator(), GMFGEN.getGenEditorGenerator_DiagramFileExtension()); |
| preserveIfSet(GMFGEN.getGenEditorGenerator(), GMFGEN.getGenEditorGenerator_SameFileForDiagramAndModel()); |
| preserveIfSet(GMFGEN.getGenEditorGenerator(), GMFGEN.getGenEditorGenerator_ModelID()); |
| preserveIfSet(GMFGEN.getGenEditorGenerator(), GMFGEN.getGenEditorGenerator_DynamicTemplates()); |
| preserveIfSet(GMFGEN.getGenEditorGenerator(), GMFGEN.getGenEditorGenerator_TemplateDirectory()); |
| addDecision(GMFGEN.getGenEditorGenerator(), new Decision.ALWAYS_OLD(GMFGEN.getGenEditorGenerator_Plugin())); |
| addDecision(GMFGEN.getGenEditorGenerator(), new Decision.ALWAYS_OLD(GMFGEN.getGenEditorGenerator_Editor())); |
| addDecision(GMFGEN.getGenEditorGenerator(), new Decision.ALWAYS_OLD(GMFGEN.getGenEditorGenerator_DiagramUpdater())); |
| addDecision(GMFGEN.getGenEditorGenerator(), new Decision.ALWAYS_OLD(GMFGEN.getGenEditorGenerator_PropertySheet())); |
| addDecision(GMFGEN.getGenEditorGenerator(), new Decision.ALWAYS_OLD(GMFGEN.getGenEditorGenerator_Audits())); |
| addDecision(GMFGEN.getGenEditorGenerator(), new Decision.ALWAYS_OLD(GMFGEN.getGenEditorGenerator_ExpressionProviders())); |
| addDecision(GMFGEN.getGenEditorGenerator(), new Decision.ALWAYS_OLD(GMFGEN.getGenEditorGenerator_Application())); |
| |
| // Diagram |
| |
| setMatcher(GMFGEN.getGenDiagram(), ALWAYS_MATCH); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getGenDiagram_Synchronized()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getShortcuts_ContainsShortcutsTo()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getShortcuts_ShortcutsProvidedFor()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getProviderClassNames_IconProviderPriority()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getEditorCandies_CreationWizardIconPath()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getEditorCandies_CreationWizardCategoryID()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getBatchValidation_ValidationEnabled()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getBatchValidation_LiveValidationUIFeedback()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getBatchValidation_ValidationDecorators()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getBatchValidation_ValidationDecoratorProviderClassName()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getBatchValidation_ValidationDecoratorProviderPriority()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getBatchValidation_ValidationProviderClassName()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getBatchValidation_ValidationProviderPriority()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getBatchValidation_MetricProviderPriority()); |
| preserveIfSet(GMFGEN.getGenDiagram(), GMFGEN.getBatchValidation_MetricProviderClassName()); |
| addDecision(GMFGEN.getGenDiagram(), new Decision.ALWAYS_OLD(GMFGEN.getGenDiagram_Preferences())); |
| addDecision(GMFGEN.getGenDiagram(), new Decision.ALWAYS_OLD(GMFGEN.getGenDiagram_PreferencePages())); |
| addDecision(GMFGEN.getGenDiagram(), new ViewmapDecision()); |
| |
| for (EClass node : new EClass[] { GMFGEN.getGenTopLevelNode(), GMFGEN.getGenChildNode(), GMFGEN.getGenChildLabelNode(), GMFGEN.getGenChildSideAffixedNode() }) { |
| setMatcher(node, new VisualIDMatcher()); |
| addDecision(node, new ModelFacetDecision()); |
| addDecision(node, new ViewmapDecision()); |
| preserveIfSet(node, GMFGEN.getGenNode_PrimaryDragEditPolicyQualifiedClassName()); |
| } |
| addDecision(GMFGEN.getGenChildLabelNode(), new LabelModelFacetDecision()); |
| preserveIfSet(GMFGEN.getGenChildSideAffixedNode(), GMFGEN.getGenChildSideAffixedNode_PreferredSideName()); |
| |
| setMatcher(GMFGEN.getGenCompartment(), new VisualIDMatcher()); |
| preserveIfSet(GMFGEN.getGenCompartment(), GMFGEN.getGenCompartment_Title()); |
| preserveIfSet(GMFGEN.getGenCompartment(), GMFGEN.getGenCompartment_ListLayout()); |
| preserveIfSet(GMFGEN.getGenCompartment(), GMFGEN.getGenCompartment_CanCollapse()); |
| preserveIfSet(GMFGEN.getGenCompartment(), GMFGEN.getGenCompartment_HideIfEmpty()); |
| preserveIfSet(GMFGEN.getGenCompartment(), GMFGEN.getGenCompartment_NeedsTitle()); |
| addDecision(GMFGEN.getGenCompartment(), new ViewmapDecision()); |
| |
| setMatcher(GMFGEN.getGenLink(), new VisualIDMatcher()); |
| preserveIfSet(GMFGEN.getGenLink(), GMFGEN.getGenLink_IncomingCreationAllowed()); |
| preserveIfSet(GMFGEN.getGenLink(), GMFGEN.getGenLink_OutgoingCreationAllowed()); |
| preserveIfSet(GMFGEN.getGenLink(), GMFGEN.getGenLink_ViewDirectionAlignedWithModel()); |
| addDecision(GMFGEN.getGenLink(), new ModelFacetDecision()); |
| addDecision(GMFGEN.getGenLink(), new ViewmapDecision()); |
| addDecision(GMFGEN.getGenLink(), new Decision.ALWAYS_OLD(GMFGEN.getGenLink_CreationConstraints())); |
| |
| for (EClass label : new EClass[] { GMFGEN.getGenLinkLabel(), GMFGEN.getGenNodeLabel(), GMFGEN.getGenExternalNodeLabel() }) { |
| setMatcher(label, new VisualIDMatcher()); |
| addDecision(label, new LabelModelFacetDecision()); |
| addDecision(label, new ViewmapDecision()); |
| preserveIfSet(label, GMFGEN.getGenLabel_ElementIcon()); |
| preserveIfSet(label, GMFGEN.getGenLabel_ReadOnly()); |
| } |
| preserveIfSet(GMFGEN.getGenLinkLabel(), GMFGEN.getGenLinkLabel_Alignment()); |
| |
| setMatcher(GMFGEN.getCustomBehaviour(), ALWAYS_MATCH); |
| setCopier(GMFGEN.getCustomBehaviour(), Copier.COMPLETE_COPY); |
| |
| setMatcher(GMFGEN.getOpenDiagramBehaviour(), ALWAYS_MATCH); |
| setCopier(GMFGEN.getOpenDiagramBehaviour(), Copier.COMPLETE_COPY); |
| |
| setMatcher(GMFGEN.getMetamodelType(), ALWAYS_MATCH); |
| preserveIfSet(GMFGEN.getMetamodelType(), GMFGEN.getElementType_DisplayName()); |
| preserveIfSet(GMFGEN.getMetamodelType(), GMFGEN.getElementType_DefinedExternally()); |
| |
| setMatcher(GMFGEN.getSpecializationType(), ALWAYS_MATCH); |
| preserveIfSet(GMFGEN.getSpecializationType(), GMFGEN.getElementType_DisplayName()); |
| preserveIfSet(GMFGEN.getSpecializationType(), GMFGEN.getElementType_DefinedExternally()); |
| |
| // Palette |
| |
| setMatcher(GMFGEN.getPalette(), ALWAYS_MATCH); |
| preserveIfSet(GMFGEN.getPalette(), GMFGEN.getPalette_Flyout()); |
| preserveIfSet(GMFGEN.getPalette(), GMFGEN.getPalette_PackageName()); |
| preserveIfSet(GMFGEN.getPalette(), GMFGEN.getPalette_FactoryClassName()); |
| |
| for (EClass entry : new EClass[] { GMFGEN.getToolGroup(), GMFGEN.getToolEntry(), GMFGEN.getStandardEntry() }) { |
| setMatcher(entry, new PropertyMatcher(GMFGEN.getEntryBase_Title())); |
| preserveIfSet(entry, GMFGEN.getEntryBase_Description()); |
| preserveIfSet(entry, GMFGEN.getEntryBase_CreateMethodName()); |
| preserveIfSet(entry, GMFGEN.getEntryBase_LargeIconPath()); |
| preserveIfSet(entry, GMFGEN.getEntryBase_SmallIconPath()); |
| } |
| for (EClass entry : new EClass[] { GMFGEN.getToolEntry(), GMFGEN.getStandardEntry() }) { |
| preserveIfSet(entry, GMFGEN.getAbstractToolEntry_Default()); |
| preserveIfSet(entry, GMFGEN.getAbstractToolEntry_QualifiedToolName()); |
| } |
| preserveIfSet(GMFGEN.getToolGroup(), GMFGEN.getToolGroup_Collapse()); |
| preserveIfSet(GMFGEN.getToolGroup(), GMFGEN.getToolGroup_Stack()); |
| preserveIfSet(GMFGEN.getStandardEntry(), GMFGEN.getStandardEntry_Kind()); |
| } |
| |
| private void preserveIfSet(EClass eClass, EAttribute feature) { |
| addDecision(eClass, new DefaultDecision(feature)); |
| } |
| } |