Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/BaseDiagramProvider.java')
-rw-r--r--plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/BaseDiagramProvider.java151
1 files changed, 151 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/BaseDiagramProvider.java b/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/BaseDiagramProvider.java
new file mode 100644
index 000000000..bd075bba4
--- /dev/null
+++ b/plugins/org.eclipse.etrice.ui.behavior.fsm/xtend-gen/org/eclipse/etrice/ui/behavior/fsm/support/BaseDiagramProvider.java
@@ -0,0 +1,151 @@
+/**
+ * Copyright (c) 2011 protos software gmbh (http://www.protos.de).
+ * 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:
+ * Juergen Haug (initial contribution)
+ */
+package org.eclipse.etrice.ui.behavior.fsm.support;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterables;
+import com.google.inject.Injector;
+import java.util.Collection;
+import java.util.Map;
+import java.util.function.BiConsumer;
+import java.util.function.Consumer;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.etrice.core.fsm.fSM.ModelComponent;
+import org.eclipse.etrice.core.fsm.fSM.State;
+import org.eclipse.etrice.core.fsm.fSM.StateGraph;
+import org.eclipse.etrice.ui.behavior.fsm.editor.AbstractFSMDiagramTypeProvider;
+import org.eclipse.etrice.ui.common.base.support.DiagramAccessBase;
+import org.eclipse.graphiti.mm.pictograms.Diagram;
+import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.mm.pictograms.PictogramLink;
+import org.eclipse.graphiti.services.Graphiti;
+import org.eclipse.graphiti.services.ILinkService;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+
+/**
+ * Provides the {@linkplain PictogramElement} objects of the base class diagram.
+ * This is a reverse 1:1 mapping from room business objects to linked base diagram pictograms.
+ */
+@SuppressWarnings("all")
+public class BaseDiagramProvider {
+ private final DiagramAccessBase diagramAccess;
+
+ private final Map<EObject, PictogramElement> baseGraphElement = CollectionLiterals.<EObject, PictogramElement>newHashMap();
+
+ private final Map<EObject, PictogramElement> baseStateElement = CollectionLiterals.<EObject, PictogramElement>newHashMap();
+
+ private final Map<EObject, PictogramElement> initialPointElement = CollectionLiterals.<EObject, PictogramElement>newHashMap();
+
+ public BaseDiagramProvider(final AbstractFSMDiagramTypeProvider diagramTypeProvider) {
+ Injector _injector = diagramTypeProvider.getInjector();
+ DiagramAccessBase _instance = _injector.<DiagramAccessBase>getInstance(DiagramAccessBase.class);
+ this.diagramAccess = _instance;
+ ILinkService _linkService = Graphiti.getLinkService();
+ Diagram _diagram = diagramTypeProvider.getDiagram();
+ EObject _businessObjectForLinkedPictogramElement = _linkService.getBusinessObjectForLinkedPictogramElement(_diagram);
+ final ModelComponent mc = ((ModelComponent) _businessObjectForLinkedPictogramElement);
+ Diagram _diagram_1 = diagramTypeProvider.getDiagram();
+ Resource _eResource = _diagram_1.eResource();
+ final ResourceSet rs = _eResource.getResourceSet();
+ ModelComponent _base = mc.getBase();
+ boolean _notEquals = (!Objects.equal(_base, null));
+ if (_notEquals) {
+ ModelComponent _base_1 = mc.getBase();
+ final Diagram baseDiagram = this.diagramAccess.getDiagram(_base_1, rs);
+ boolean _notEquals_1 = (!Objects.equal(baseDiagram, null));
+ if (_notEquals_1) {
+ this.mapPositions(baseDiagram);
+ EList<Resource> _resources = rs.getResources();
+ Resource _eResource_1 = baseDiagram.eResource();
+ _resources.remove(_eResource_1);
+ }
+ }
+ }
+
+ public void mapPositions(final Diagram diagram) {
+ Map<EObject, Collection<EStructuralFeature.Setting>> _find = EcoreUtil.ExternalCrossReferencer.find(diagram);
+ final BiConsumer<EObject, Collection<EStructuralFeature.Setting>> _function = new BiConsumer<EObject, Collection<EStructuralFeature.Setting>>() {
+ @Override
+ public void accept(final EObject targetEObj, final Collection<EStructuralFeature.Setting> eFeatureSetting) {
+ final Function1<EStructuralFeature.Setting, EObject> _function = new Function1<EStructuralFeature.Setting, EObject>() {
+ @Override
+ public EObject apply(final EStructuralFeature.Setting it) {
+ return it.getEObject();
+ }
+ };
+ Iterable<EObject> _map = IterableExtensions.<EStructuralFeature.Setting, EObject>map(eFeatureSetting, _function);
+ Iterable<PictogramLink> _filter = Iterables.<PictogramLink>filter(_map, PictogramLink.class);
+ final Function1<PictogramLink, PictogramElement> _function_1 = new Function1<PictogramLink, PictogramElement>() {
+ @Override
+ public PictogramElement apply(final PictogramLink it) {
+ return it.getPictogramElement();
+ }
+ };
+ Iterable<PictogramElement> _map_1 = IterableExtensions.<PictogramLink, PictogramElement>map(_filter, _function_1);
+ final Consumer<PictogramElement> _function_2 = new Consumer<PictogramElement>() {
+ @Override
+ public void accept(final PictogramElement pe) {
+ ILinkService _linkService = Graphiti.getLinkService();
+ EObject _eContainer = pe.eContainer();
+ EObject _businessObjectForLinkedPictogramElement = _linkService.getBusinessObjectForLinkedPictogramElement(((PictogramElement) _eContainer));
+ final boolean isState = (_businessObjectForLinkedPictogramElement instanceof State);
+ final boolean isInitialPoint = ((targetEObj instanceof StateGraph) && (!(pe.eContainer() instanceof Diagram)));
+ if (isState) {
+ BaseDiagramProvider.this.baseStateElement.put(targetEObj, pe);
+ } else {
+ if (isInitialPoint) {
+ BaseDiagramProvider.this.initialPointElement.put(targetEObj, pe);
+ } else {
+ BaseDiagramProvider.this.baseGraphElement.put(targetEObj, pe);
+ }
+ }
+ }
+ };
+ _map_1.forEach(_function_2);
+ }
+ };
+ _find.forEach(_function);
+ }
+
+ public PictogramElement getBaseGraphPictogram(final EObject roomObj) {
+ PictogramElement _xifexpression = null;
+ boolean _notEquals = (!Objects.equal(roomObj, null));
+ if (_notEquals) {
+ _xifexpression = this.baseGraphElement.get(roomObj);
+ }
+ return _xifexpression;
+ }
+
+ public PictogramElement getBaseStatePictogram(final EObject roomObj) {
+ PictogramElement _xifexpression = null;
+ boolean _notEquals = (!Objects.equal(roomObj, null));
+ if (_notEquals) {
+ _xifexpression = this.baseStateElement.get(roomObj);
+ }
+ return _xifexpression;
+ }
+
+ public PictogramElement getInitialPointPictogram(final EObject roomObj) {
+ PictogramElement _xifexpression = null;
+ boolean _notEquals = (!Objects.equal(roomObj, null));
+ if (_notEquals) {
+ _xifexpression = this.initialPointElement.get(roomObj);
+ }
+ return _xifexpression;
+ }
+}

Back to the top