blob: 7d7bf32e7c0e9ec7e202d8a41c3ef809b0dfc5ee [file] [log] [blame]
/*
* 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));
}
}