Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.bridge/transforms/Navigator.qvto')
-rw-r--r--plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.bridge/transforms/Navigator.qvto123
1 files changed, 0 insertions, 123 deletions
diff --git a/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.bridge/transforms/Navigator.qvto b/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.bridge/transforms/Navigator.qvto
deleted file mode 100644
index 61235cd5de8..00000000000
--- a/plugins/toolsmiths/gmf-tooling/org.eclipse.papyrus.gmf.bridge/transforms/Navigator.qvto
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2020 Borland Software Corporation, CEA LIST, Artal
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * Artem Tikhomirov (Borland) - initial API and implementation
- * Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - Bug 569174
- */
-import Utils;
-
-modeltype GMFMAP uses mappings('http://www.eclipse.org/papyrus/gmf/2020/mappings');
-modeltype GMFGEN uses gmfgen('http://www.eclipse.org/papyrus/gmf/2020/GenModel');
-modeltype ECORE uses ecore('http://www.eclipse.org/emf/2002/Ecore');
-modeltype GENMODEL uses genmodel('http://www.eclipse.org/emf/2002/GenModel');
-
-transformation Navigator(in mapModel : GMFMAP, inout gmfgenModel : GMFGEN);
-
--- FIXME result is not completely correct now
-main() {
- var mapRoot := mapModel.rootObjects()![GMFMAP::Mapping];
- var genEditor := gmfgenModel.rootObjects()![GMFGEN::GenEditorGenerator];
- genEditor.navigator := mapRoot.diagram.map navigator(genEditor.diagram);
-}
-
-mapping GMFMAP::CanvasMapping::navigator(genDiagram : GMFGEN::GenDiagram) : GMFGEN::GenNavigator {
- childReferences += genDiagram.map navigator();
- childReferences += genDiagram.childNodes->collect(n | n.containers.getNode().map navigator(n));
- childReferences += genDiagram.topLevelNodes.map navigator();
- childReferences += genDiagram.links.map navigator();
- childReferences += genDiagram.links->collect(l | l.getTargetGenNodes()->asSet().showLinkTargets(l));
- childReferences += genDiagram.links->collect(l | l.getSourceGenNodes().showLinkSources(l));
- -- Instead, may use GenLinkEnd.genOutgoingLinks/genIncomingLinks, but they seem to be less effective as they
- -- go through GenLink.sources/targets anyway
- childReferences += genDiagram.links->collect(l | l.getTargetGenNodes().showIncomingLinks(l));
- childReferences += genDiagram.links->collect(l | l.getSourceGenNodes().showOutgoingLinks(l));
-}
-
-mapping GMFGEN::GenDiagram::navigator() : GMFGEN::GenNavigatorChildReference {
- GMFGEN::GenNavigatorReferenceType::children.populate(result, self, null);
-}
-mapping GMFGEN::GenTopLevelNode::navigator() : GMFGEN::GenNavigatorChildReference {
- parent := self.diagram;
- child := self;
- referenceType := GenNavigatorReferenceType::children;
-}
-mapping GMFGEN::GenNode::navigator(childNode : GMFGEN::GenChildNode) : GMFGEN::GenNavigatorChildReference {
- parent := self;
- child := childNode;
- referenceType := GenNavigatorReferenceType::children;
-}
-mapping GMFGEN::GenLink::navigator() : GMFGEN::GenNavigatorChildReference {
- GMFGEN::GenNavigatorReferenceType::children.populate(result, self, self.diagram);
- groupName := 'links';
- groupIcon := 'icons/linksNavigatorGroup.gif';
-}
-
-helper GMFGEN::GenNavigatorReferenceType::populate(inout ref : GMFGEN::GenNavigatorChildReference, child : GMFGEN::GenCommonBase, parent : GMFGEN::GenCommonBase) : GMFGEN::GenNavigatorChildReference {
- ref.child := child;
- ref.referenceType := self;
- ref.parent := parent;
- return ref;
-}
-
-helper GMFGEN::GenLinkEnd::showLinkTargets(link : GMFGEN::GenLink) : GMFGEN::GenNavigatorChildReference {
- var rv := object GMFGEN::GenNavigatorChildReference {};
- GMFGEN::GenNavigatorReferenceType::out_target.populate(rv, self, link);
- rv.groupName := 'target';
- rv.groupIcon := 'icons/linkTargetNavigatorGroup.gif';
- return rv;
-}
--- XXX Odd. Processing a link, adding a childreference to GenNode. Perhaps, using GenLinkEnd.genIncomingLinks would be better?
-helper GMFGEN::GenLinkEnd::showIncomingLinks(link : GMFGEN::GenLink) : GMFGEN::GenNavigatorChildReference {
- var rv := object GMFGEN::GenNavigatorChildReference {};
- GMFGEN::GenNavigatorReferenceType::in_source.populate(rv, link, self);
- rv.groupName := 'incoming links';
- rv.groupIcon := 'icons/incomingLinksNavigatorGroup.gif';
- return rv;
-}
-helper GMFGEN::GenLinkEnd::showLinkSources(link : GMFGEN::GenLink) : GMFGEN::GenNavigatorChildReference {
- var rv := object GMFGEN::GenNavigatorChildReference {};
- GMFGEN::GenNavigatorReferenceType::in_source.populate(rv, self, link);
- rv.groupName := 'source';
- rv.groupIcon := 'icons/linkSourceNavigatorGroup.gif';
- return rv;
-}
-helper GMFGEN::GenLinkEnd::showOutgoingLinks(link : GMFGEN::GenLink) : GMFGEN::GenNavigatorChildReference {
- var rv := object GMFGEN::GenNavigatorChildReference {};
- GMFGEN::GenNavigatorReferenceType::out_target.populate(rv, link, self);
- rv.groupName := 'outgoing links';
- rv.groupIcon := 'icons/outgoingLinksNavigatorGroup.gif';
- return rv;
-}
-
-query GMFGEN::GenChildContainer::getNode() : GMFGEN::GenNode { assert (false) with log ('Abstract query call'); return null }
-query GMFGEN::GenNode::getNode() : GMFGEN::GenNode { return self }
-query GMFGEN::GenCompartment::getNode() : GMFGEN::GenNode { return self.node }
-
-query GMFGEN::GenLink::getSourceGenNodes() : OrderedSet(GMFGEN::GenLinkEnd) {
- if self.modelFacet.oclIsUndefined() then return self.diagram.getAllPossibleLinkEnds() endif;
- return self.sources;
-}
-query GMFGEN::GenLink::getTargetGenNodes() : OrderedSet(GMFGEN::GenLinkEnd) {
- if self.modelFacet.oclIsUndefined() then {
- return self.diagram.getAllPossibleLinkEnds()
- } endif;
- return self.targets;
-}
-
-query GMFGEN::GenDiagram::getAllPossibleLinkEnds() : OrderedSet(GMFGEN::GenLinkEnd) {
- -- XXX original DGMT's NavigatorHandler used getAllNodes here, which is not completely correct:
- -- first, links can go to links, second, links can't go to GenChildLabelNode
- var rs : OrderedSet(GenLinkEnd) = OrderedSet{};
- rs += self.topLevelNodes;
- rs += self.childNodes->reject(oclIsKindOf(GMFGEN::GenChildLabelNode)); -- child nodes, excluding labels
- rs += self.links;
- return rs;
-}

Back to the top