diff --git a/org.fortiss.af3.platform.raspberry.ui/trunk/plugin.xml b/org.fortiss.af3.platform.raspberry.ui/trunk/plugin.xml index d89627e88644561c4ecf221bc81bd57ed6e3ffda..130e9d8e99a9a0ba08bb03f119d0880ea15d7c30 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.SensorConnector"> + </modelElementClass> + <modelElementClass + modelElementClass="org.fortiss.af3.platform.raspberry.model.ActuatorConnector"> + </modelElementClass> </editPartFactory> </extension> </plugin> 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 926331f9efd823122b48ebc48f88d0513f495967..ccfec9d6d2f1aca82d273295fd174259eadb3482 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.ActuatorConnector; 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.SensorConnector; 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 SensorConnector || + model instanceof ActuatorConnector) { 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/RaspberryPiHandler.java b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/handler/RaspberryPiHandler.java index f924ed2e1a4fd9c175a05c16464d37c8b170ad03..b56bcee3cb7fd311b455267551cd06e9eb4c05c5 100644 --- a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/handler/RaspberryPiHandler.java +++ b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/handler/RaspberryPiHandler.java @@ -54,4 +54,5 @@ public class RaspberryPiHandler extends ModelElementHandlerBase<RaspberryPi> { public List<EObject> getConnectors(RaspberryPi element) { return (List)element.getConnectors(); } + } diff --git a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/prototype/ProtoypeProvider.java b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/prototype/ProtoypeProvider.java index 92d768d1bd9b18de6f2a69bf82f31465f99dbccd..50058c09d25e4f2c67740a2d0761e6d3ff286773 100644 --- a/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/prototype/ProtoypeProvider.java +++ b/org.fortiss.af3.platform.raspberry.ui/trunk/src/org/fortiss/af3/platform/raspberry/ui/prototype/ProtoypeProvider.java @@ -24,9 +24,11 @@ import static org.fortiss.tooling.base.utils.LayoutDataUtils.setNodeBounds; import static org.fortiss.tooling.base.utils.LayoutDataUtils.setNodePosition; import static org.fortiss.tooling.base.utils.LayoutModelElementFactory.createRectangle; +import org.fortiss.af3.platform.raspberry.model.ActuatorConnector; 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.SensorConnector; import org.fortiss.af3.platform.raspberry.util.RaspberryModelElementFactory; import org.fortiss.tooling.kernel.extension.base.PrototypeProviderBase; @@ -57,5 +59,16 @@ public class ProtoypeProvider extends PrototypeProviderBase { setNodePosition(con, 0, 0); setConnectorPosition(con, 0, 0); registerPrototype("CanConnector", con, CATEGORY_NAME); + + SensorConnector sensor = RaspberryModelElementFactory.createSensorConnector(); + setNodePosition(sensor, 0, 0); + setConnectorPosition(sensor, 0, 0); + registerPrototype("Sensor", sensor, CATEGORY_NAME); + + ActuatorConnector actuator = RaspberryModelElementFactory.createActuatorConnector(); + setNodePosition(actuator, 0, 0); + setConnectorPosition(actuator, 0, 0); + registerPrototype("Actuator", actuator, CATEGORY_NAME); + } } diff --git a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore index 17c161e61d9586519da87fb0a32a551d3e769bae..53284dc1694a68a4f8e87e51a2f80b3d795853d1 100644 --- a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore +++ b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.ecore @@ -5,4 +5,6 @@ <eClassifiers xsi:type="ecore:EClass" name="RaspberryPi" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//generic/GenericExecutionUnit"/> <eClassifiers xsi:type="ecore:EClass" name="CanBus" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//generic/GenericTransmissionUnit"/> <eClassifiers xsi:type="ecore:EClass" name="CanConnector" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//generic/GenericTransceiver"/> + <eClassifiers xsi:type="ecore:EClass" name="SensorConnector" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//generic/GenericReceiver"/> + <eClassifiers xsi:type="ecore:EClass" name="ActuatorConnector" eSuperTypes="platform:/resource/org.fortiss.af3.platform/model/platform.ecore#//generic/GenericTransmitter"/> </ecore:EPackage> diff --git a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel index c2d0ed23d38b58ecfd564cfe458f9d56ccd3e8ed..6cd7d08697db410813e35aacc8423f3fed3c0067 100644 --- a/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel +++ b/org.fortiss.af3.platform.raspberry/trunk/model/raspberry.genmodel @@ -10,5 +10,7 @@ <genClasses ecoreClass="raspberry.ecore#//RaspberryPi"/> <genClasses ecoreClass="raspberry.ecore#//CanBus"/> <genClasses ecoreClass="raspberry.ecore#//CanConnector"/> + <genClasses ecoreClass="raspberry.ecore#//SensorConnector"/> + <genClasses ecoreClass="raspberry.ecore#//ActuatorConnector"/> </genPackages> </genmodel:GenModel> diff --git a/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/compose/RaspberryPiCompositor.java b/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/compose/RaspberryPiCompositor.java index c11f507c2fabf0af43d1f012158cf563f2ec9f69..7b17eeb0ecfc499e7356798620785d27f36a1a7c 100644 --- a/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/compose/RaspberryPiCompositor.java +++ b/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/compose/RaspberryPiCompositor.java @@ -22,8 +22,10 @@ import static org.conqat.lib.commons.reflect.ReflectionUtils.isInstanceOfAny; import org.eclipse.emf.ecore.EObject; import org.fortiss.af3.platform.compose.PlatformArchitectureElementCompositorBase; import org.fortiss.af3.platform.model.IPlatformArchitectureElement; +import org.fortiss.af3.platform.raspberry.model.ActuatorConnector; import org.fortiss.af3.platform.raspberry.model.CanConnector; import org.fortiss.af3.platform.raspberry.model.RaspberryPi; +import org.fortiss.af3.platform.raspberry.model.SensorConnector; /** * @@ -39,11 +41,12 @@ public class RaspberryPiCompositor extends @Override protected boolean isCorrectElementClass(IPlatformArchitectureElement container, EObject contained) { - final boolean instanceOfAny2 = isInstanceOfAny(contained, CanConnector.class); + final boolean instanceOfAny2 = + isInstanceOfAny(contained, CanConnector.class, SensorConnector.class, + ActuatorConnector.class); if(container != null) { final boolean instanceOfAny = isInstanceOfAny(container, RaspberryPi.class); - return instanceOfAny && - instanceOfAny2; + return instanceOfAny && instanceOfAny2; } return instanceOfAny2; } diff --git a/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/util/RaspberryModelElementFactory.java b/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/util/RaspberryModelElementFactory.java index 6476d66a529a0f7ebb789fddb50e7d63fa9a89a6..3324c467d242dae04a35b1e1eb7a88b56d4f88e1 100644 --- a/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/util/RaspberryModelElementFactory.java +++ b/org.fortiss.af3.platform.raspberry/trunk/src/org/fortiss/af3/platform/raspberry/util/RaspberryModelElementFactory.java @@ -19,10 +19,12 @@ package org.fortiss.af3.platform.raspberry.util; import static org.fortiss.tooling.base.utils.LayoutModelElementFactory.createConnectorLayout; +import org.fortiss.af3.platform.raspberry.model.ActuatorConnector; import org.fortiss.af3.platform.raspberry.model.CanBus; import org.fortiss.af3.platform.raspberry.model.CanConnector; import org.fortiss.af3.platform.raspberry.model.ModelFactory; import org.fortiss.af3.platform.raspberry.model.RaspberryPi; +import org.fortiss.af3.platform.raspberry.model.SensorConnector; import org.fortiss.tooling.base.utils.LayoutModelElementFactory; /** @@ -58,4 +60,20 @@ public class RaspberryModelElementFactory { createConnectorLayout(canConnector); return canConnector; } + + /** Creates a {@link SensorConnector}. */ + public static SensorConnector createSensorConnector() { + SensorConnector connector = ModelFactory.eINSTANCE.createSensorConnector(); + connector.setName("Sensor"); + createConnectorLayout(connector); + return connector; + } + + /** Creates a {@link ActuatorConnector}. */ + public static ActuatorConnector createActuatorConnector() { + ActuatorConnector connector = ModelFactory.eINSTANCE.createActuatorConnector(); + connector.setName("Sensor"); + createConnectorLayout(connector); + return connector; + } }