blob: 259a060301400c6dd10ae5e6bfdf2609da8318e1 [file] [log] [blame]
/**
* Copyright (c) 2009 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:
* Artem Tikhomirov (Borland) - initial API and implementation
*/
modeltype GMFGEN uses gmfgen('http://www.eclipse.org/gmf/2009/GenModel');
modeltype ECORE uses ecore('http://www.eclipse.org/emf/2002/Ecore');
modeltype GENMODEL uses genmodel('http://www.eclipse.org/emf/2002/GenModel');
transformation DiagramRunTimeModel(in diagramRuntimeGenModel : GENMODEL, inout gmfgenModel : GMFGEN);
main() {
var genModel = diagramRuntimeGenModel.rootObjects()![GENMODEL::GenModel];
var genEditor = gmfgenModel.rootObjects()![GMFGEN::GenEditorGenerator];
var notationPackage = genModel.genPackages[ecorePackage.name = 'notation'];
var nodeClass : GENMODEL::GenClass = notationPackage.genClasses![ecoreClass.name = 'Node'];
var linkClass : GENMODEL::GenClass = notationPackage.genClasses![ecoreClass.name = 'Edge'];
var diagramClass : GENMODEL::GenClass = notationPackage.genClasses![ecoreClass.name = 'Diagram'];
var labelClass : GENMODEL::GenClass = nodeClass;
var gd = genEditor.diagram;
gd.diagramRunTimeClass := diagramClass;-- Notation.Diagram;
genEditor.diagram.getAllNodes()->forEach(n) { n.diagramRunTimeClass := nodeClass };
genEditor.diagram.compartments->forEach(c) { c.diagramRunTimeClass := nodeClass };
genEditor.diagram.links->forEach(l) { l.diagramRunTimeClass := linkClass };
genEditor.diagram.getAllNodes().labels->forEach(l) { l.diagramRunTimeClass := nodeClass };
genEditor.diagram.links.labels->forEach(l) { l.diagramRunTimeClass := nodeClass };
}