From 71274ca051fb410e291116feb1c8687d12f0b70a Mon Sep 17 00:00:00 2001
From: Florian Hoelzl <hoelzl@fortiss.org>
Date: Fri, 6 Oct 2017 15:03:45 +0000
Subject: [PATCH] Fixed editpart factory for RasPi platform. refs 3079

---
 .../trunk/plugin.xml                          |  6 +++++
 .../ui/editpart/EditPartFactory.java          |  5 +++-
 .../ui/handler/GamepadReceiverHandler.java    |  8 +++---
 .../trunk/model/raspberry.ecore               | 26 ++++++++++---------
 .../trunk/model/raspberry.genmodel            |  1 +
 5 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/org.fortiss.af3.platform.raspberry.ui/trunk/plugin.xml b/org.fortiss.af3.platform.raspberry.ui/trunk/plugin.xml
index 8a8dd241..01827e80 100644
--- a/org.fortiss.af3.platform.raspberry.ui/trunk/plugin.xml
+++ b/org.fortiss.af3.platform.raspberry.ui/trunk/plugin.xml
@@ -48,6 +48,12 @@
       <modelElementClass
             modelElementClass="org.fortiss.af3.platform.raspberry.model.CanConnector">
       </modelElementClass>
+      <modelElementClass
+            modelElementClass="org.fortiss.af3.platform.raspberry.model.ActuatorPWM">
+      </modelElementClass>
+          <modelElementClass
+            modelElementClass="org.fortiss.af3.platform.raspberry.model.gamepad.GamepadReceiverBase">
+      </modelElementClass>
    </editPartFactory>
 </extension>
 <extension
diff --git a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/editpart/EditPartFactory.java b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/editpart/EditPartFactory.java
index 926331f9..4646b874 100644
--- a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/editpart/EditPartFactory.java
+++ b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/editpart/EditPartFactory.java
@@ -20,9 +20,11 @@ package org.fortiss.af3.platform.raspberry.ui.editpart;
 import org.eclipse.gef.EditPart;
 import org.eclipse.swt.graphics.Color;
 import org.fortiss.af3.platform.model.PlatformConnectorUnit;
+import org.fortiss.af3.platform.raspberry.model.ActuatorPWM;
 import org.fortiss.af3.platform.raspberry.model.CanBus;
 import org.fortiss.af3.platform.raspberry.model.CanConnector;
 import org.fortiss.af3.platform.raspberry.model.RaspberryPi;
+import org.fortiss.af3.platform.raspberry.model.gamepad.GamepadReceiverBase;
 import org.fortiss.af3.platform.ui.DefaultStyle;
 import org.fortiss.af3.platform.ui.editpart.generic.ExecutionUnitEditPart;
 import org.fortiss.af3.platform.ui.editpart.generic.StickyPlatformConnectorUnitEditPart;
@@ -57,7 +59,8 @@ public class EditPartFactory implements IEditPartFactory {
 			};
 		} else if(model instanceof CanBus) {
 			return new TransmissionUnitDefaultEditPart((CanBus)model);
-		} else if(model instanceof CanConnector) {
+		} else if(model instanceof CanConnector || model instanceof ActuatorPWM ||
+				model instanceof GamepadReceiverBase) {
 			return new StickyPlatformConnectorUnitEditPart((PlatformConnectorUnit)model);
 		}
 		return null;
diff --git a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/handler/GamepadReceiverHandler.java b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/handler/GamepadReceiverHandler.java
index 2ee6c170..4151fabe 100644
--- a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/handler/GamepadReceiverHandler.java
+++ b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/handler/GamepadReceiverHandler.java
@@ -20,19 +20,19 @@ package org.fortiss.af3.platform.raspberry.ui.handler;
 import static org.fortiss.af3.platform.raspberry.ui.AF3PlatformRaspberryUIActivator.getImageDescriptor;
 
 import org.eclipse.jface.resource.ImageDescriptor;
-import org.fortiss.af3.platform.model.Receiver;
-import org.fortiss.af3.platform.model.generic.GenericReceiver;
+import org.fortiss.af3.platform.raspberry.model.gamepad.GamepadReceiverBase;
 import org.fortiss.tooling.kernel.ui.extension.base.NamedCommentedModelElementHandlerBase;
 
 /**
- * Handler for {@link GenericReceiver}s.
+ * Handler for {@link GamepadReceiverBase}s.
  * 
  * @author hoelzl
  * @author $Author$
  * @version $Rev$
  * @ConQAT.Rating GREEN Hash: D80CF94CBBADB4627AAEDA1F34ABF0A5
  */
-public class GamepadReceiverHandler extends NamedCommentedModelElementHandlerBase<Receiver> {
+public class GamepadReceiverHandler extends
+		NamedCommentedModelElementHandlerBase<GamepadReceiverBase> {
 	/** {@inheritDoc} */
 	@Override
 	public ImageDescriptor getIconImageDescriptor() {
diff --git a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore
index f7061a8c..075db297 100644
--- a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore
+++ b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore
@@ -8,18 +8,20 @@
   <eClassifiers xsi:type="ecore:EClass" name="ActuatorPWM" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Transmitter"/>
   <eSubpackages name="gamepad" nsURI="http://www.fortiss.org/af3/platform/raspberry/gamepad"
       nsPrefix="org-fortiss-af3-platform-raspberry-gamepad">
-    <eClassifiers xsi:type="ecore:EClass" name="Button1" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="Button2" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="Button3" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="Button4" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="ButtonL1" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="ButtonR2" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="ButtonL2" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="ButtonR1" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="Left_StickX_Position" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="Left_StickY_Position" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="Right_StickX_Position" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
-    <eClassifiers xsi:type="ecore:EClass" name="Right_StickY_Position" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
+    <eClassifiers xsi:type="ecore:EClass" name="GamepadReceiverBase" abstract="true"
+        eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//Receiver"/>
+    <eClassifiers xsi:type="ecore:EClass" name="Button1" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="Button2" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="Button3" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="Button4" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="ButtonL1" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="ButtonR2" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="ButtonL2" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="ButtonR1" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="Left_StickX_Position" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="Left_StickY_Position" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="Right_StickX_Position" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
+    <eClassifiers xsi:type="ecore:EClass" name="Right_StickY_Position" eSuperTypes="#//gamepad/GamepadReceiverBase"/>
   </eSubpackages>
   <eSubpackages name="annotation" nsURI="http://www.fortiss.org/af3/platform/raspberry/annotation"
       nsPrefix="org-fortiss-af3-platform-raspberry-annotation">
diff --git a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel
index e543e12f..3b6ac1ac 100644
--- a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel
+++ b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel
@@ -13,6 +13,7 @@
     <genClasses ecoreClass="raspberry.ecore#//ActuatorPWM"/>
     <nestedGenPackages prefix="Gamepad" basePackage="org.fortiss.af3.platform.raspberry.model"
         disposableProviderFactory="true" ecorePackage="raspberry.ecore#//gamepad">
+      <genClasses image="false" ecoreClass="raspberry.ecore#//gamepad/GamepadReceiverBase"/>
       <genClasses ecoreClass="raspberry.ecore#//gamepad/Button1"/>
       <genClasses ecoreClass="raspberry.ecore#//gamepad/Button2"/>
       <genClasses ecoreClass="raspberry.ecore#//gamepad/Button3"/>
-- 
GitLab