Преглед на файлове

Improved highlighting during simulation

terfloth@itemis.de преди 14 години
родител
ревизия
ff1c566d29
променени са 42 файла, в които са добавени 1002 реда и са изтрити 22 реда
  1. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_entryAction_TraceBeginRunCycle.gif
  2. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_entryAction_TraceEndRunCycle.gif
  3. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_exitAction_TraceBeginRunCycle.gif
  4. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_exitAction_TraceEndRunCycle.gif
  5. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateHistoryEntry_historyStep_TraceBeginRunCycle.gif
  6. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateHistoryEntry_historyStep_TraceEndRunCycle.gif
  7. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateHistoryEntry_initialStep_TraceBeginRunCycle.gif
  8. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateHistoryEntry_initialStep_TraceEndRunCycle.gif
  9. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateReaction_effect_TraceBeginRunCycle.gif
  10. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateReaction_effect_TraceEndRunCycle.gif
  11. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateSequence_steps_TraceBeginRunCycle.gif
  12. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateSequence_steps_TraceEndRunCycle.gif
  13. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateStateCase_step_TraceBeginRunCycle.gif
  14. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateStateCase_step_TraceEndRunCycle.gif
  15. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/obj16/TraceBeginRunCycle.gif
  16. BIN
      plugins/org.yakindu.sct.model.sexec.edit/icons/full/obj16/TraceEndRunCycle.gif
  17. 2 0
      plugins/org.yakindu.sct.model.sexec.edit/plugin.properties
  18. 20 0
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/ExecutionStateItemProvider.java
  19. 20 0
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/HistoryEntryItemProvider.java
  20. 10 0
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/ReactionItemProvider.java
  21. 10 0
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/SequenceItemProvider.java
  22. 48 0
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/SexecItemProviderAdapterFactory.java
  23. 10 0
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/StateCaseItemProvider.java
  24. 114 0
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/TraceBeginRunCycleItemProvider.java
  25. 114 0
      plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/TraceEndRunCycleItemProvider.java
  26. 13 1
      plugins/org.yakindu.sct.model.sexec.interpreter/src/org/yakindu/sct/model/sexec/interpreter/impl/ExecutionFlowInterpreter.xtend
  27. 13 0
      plugins/org.yakindu.sct.model.sexec.interpreter/xtend-gen/org/yakindu/sct/model/sexec/interpreter/impl/ExecutionFlowInterpreter.java
  28. 2 0
      plugins/org.yakindu.sct.model.sexec/model/sexec.ecore
  29. 18 0
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/SexecFactory.java
  30. 134 2
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/SexecPackage.java
  31. 21 0
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/TraceBeginRunCycle.java
  32. 21 0
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/TraceEndRunCycle.java
  33. 22 0
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/SexecFactoryImpl.java
  34. 44 0
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/SexecPackageImpl.java
  35. 43 0
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/TraceBeginRunCycleImpl.java
  36. 43 0
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/TraceEndRunCycleImpl.java
  37. 36 0
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/util/SexecAdapterFactory.java
  38. 48 0
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/util/SexecSwitch.java
  39. 29 18
      plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/model/presenter/DefaultDynamicNotationHandler.java
  40. 106 0
      plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/model/presenter/ExecutionPathDynamicNotationHandler.java
  41. 1 1
      plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/model/presenter/SCTSourceDisplay.java
  42. 60 0
      plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/model/presenter/TimeFramingDynamicNotationHandler.java

BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_entryAction_TraceBeginRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_entryAction_TraceEndRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_exitAction_TraceBeginRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateExecutionState_exitAction_TraceEndRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateHistoryEntry_historyStep_TraceBeginRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateHistoryEntry_historyStep_TraceEndRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateHistoryEntry_initialStep_TraceBeginRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateHistoryEntry_initialStep_TraceEndRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateReaction_effect_TraceBeginRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateReaction_effect_TraceEndRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateSequence_steps_TraceBeginRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateSequence_steps_TraceEndRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateStateCase_step_TraceBeginRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/ctool16/CreateStateCase_step_TraceEndRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/obj16/TraceBeginRunCycle.gif


BIN
plugins/org.yakindu.sct.model.sexec.edit/icons/full/obj16/TraceEndRunCycle.gif


+ 2 - 0
plugins/org.yakindu.sct.model.sexec.edit/plugin.properties

@@ -129,3 +129,5 @@ _UI_ExecutionRegion_deepEnterSequence_feature = Deep Enter Sequence
 _UI_ExecutionRegion_shallowEnterSequence_feature = Shallow Enter Sequence
 _UI_ExecutionFlow_historyVector_feature = History Vector
 _UI_ExecutionRegion_historyVector_feature = History Vector
+_UI_TraceBeginRunCycle_type = Trace Begin Run Cycle
+_UI_TraceEndRunCycle_type = Trace End Run Cycle

+ 20 - 0
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/ExecutionStateItemProvider.java

@@ -320,6 +320,16 @@ public class ExecutionStateItemProvider
 				(SexecPackage.Literals.EXECUTION_STATE__ENTRY_ACTION,
 				 SexecFactory.eINSTANCE.createTraceStateExited()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.EXECUTION_STATE__ENTRY_ACTION,
+				 SexecFactory.eINSTANCE.createTraceBeginRunCycle()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.EXECUTION_STATE__ENTRY_ACTION,
+				 SexecFactory.eINSTANCE.createTraceEndRunCycle()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.EXECUTION_STATE__ENTRY_ACTION,
@@ -405,6 +415,16 @@ public class ExecutionStateItemProvider
 				(SexecPackage.Literals.EXECUTION_STATE__EXIT_ACTION,
 				 SexecFactory.eINSTANCE.createTraceStateExited()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.EXECUTION_STATE__EXIT_ACTION,
+				 SexecFactory.eINSTANCE.createTraceBeginRunCycle()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.EXECUTION_STATE__EXIT_ACTION,
+				 SexecFactory.eINSTANCE.createTraceEndRunCycle()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.EXECUTION_STATE__EXIT_ACTION,

+ 20 - 0
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/HistoryEntryItemProvider.java

@@ -279,6 +279,16 @@ public class HistoryEntryItemProvider
 				(SexecPackage.Literals.HISTORY_ENTRY__INITIAL_STEP,
 				 SexecFactory.eINSTANCE.createTraceStateExited()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.HISTORY_ENTRY__INITIAL_STEP,
+				 SexecFactory.eINSTANCE.createTraceBeginRunCycle()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.HISTORY_ENTRY__INITIAL_STEP,
+				 SexecFactory.eINSTANCE.createTraceEndRunCycle()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.HISTORY_ENTRY__INITIAL_STEP,
@@ -364,6 +374,16 @@ public class HistoryEntryItemProvider
 				(SexecPackage.Literals.HISTORY_ENTRY__HISTORY_STEP,
 				 SexecFactory.eINSTANCE.createTraceStateExited()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.HISTORY_ENTRY__HISTORY_STEP,
+				 SexecFactory.eINSTANCE.createTraceBeginRunCycle()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.HISTORY_ENTRY__HISTORY_STEP,
+				 SexecFactory.eINSTANCE.createTraceEndRunCycle()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.HISTORY_ENTRY__HISTORY_STEP,

+ 10 - 0
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/ReactionItemProvider.java

@@ -286,6 +286,16 @@ public class ReactionItemProvider
 				(SexecPackage.Literals.REACTION__EFFECT,
 				 SexecFactory.eINSTANCE.createTraceStateExited()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.REACTION__EFFECT,
+				 SexecFactory.eINSTANCE.createTraceBeginRunCycle()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.REACTION__EFFECT,
+				 SexecFactory.eINSTANCE.createTraceEndRunCycle()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.REACTION__EFFECT,

+ 10 - 0
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/SequenceItemProvider.java

@@ -223,6 +223,16 @@ public class SequenceItemProvider
 				(SexecPackage.Literals.SEQUENCE__STEPS,
 				 SexecFactory.eINSTANCE.createTraceStateExited()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.SEQUENCE__STEPS,
+				 SexecFactory.eINSTANCE.createTraceBeginRunCycle()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.SEQUENCE__STEPS,
+				 SexecFactory.eINSTANCE.createTraceEndRunCycle()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.SEQUENCE__STEPS,

+ 48 - 0
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/SexecItemProviderAdapterFactory.java

@@ -648,6 +648,52 @@ public class SexecItemProviderAdapterFactory extends SexecAdapterFactory impleme
 		return traceStateExitedItemProvider;
 	}
 
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.sct.model.sexec.TraceBeginRunCycle} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TraceBeginRunCycleItemProvider traceBeginRunCycleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.sct.model.sexec.TraceBeginRunCycle}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createTraceBeginRunCycleAdapter() {
+		if (traceBeginRunCycleItemProvider == null) {
+			traceBeginRunCycleItemProvider = new TraceBeginRunCycleItemProvider(this);
+		}
+
+		return traceBeginRunCycleItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.yakindu.sct.model.sexec.TraceEndRunCycle} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TraceEndRunCycleItemProvider traceEndRunCycleItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.yakindu.sct.model.sexec.TraceEndRunCycle}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createTraceEndRunCycleAdapter() {
+		if (traceEndRunCycleItemProvider == null) {
+			traceEndRunCycleItemProvider = new TraceEndRunCycleItemProvider(this);
+		}
+
+		return traceEndRunCycleItemProvider;
+	}
+
 	/**
 	 * This keeps track of the one adapter used for all {@link org.yakindu.sct.model.sexec.SaveHistory} instances.
 	 * <!-- begin-user-doc -->
@@ -890,6 +936,8 @@ public class SexecItemProviderAdapterFactory extends SexecAdapterFactory impleme
 		if (reactionFiredItemProvider != null) reactionFiredItemProvider.dispose();
 		if (traceStateEnteredItemProvider != null) traceStateEnteredItemProvider.dispose();
 		if (traceStateExitedItemProvider != null) traceStateExitedItemProvider.dispose();
+		if (traceBeginRunCycleItemProvider != null) traceBeginRunCycleItemProvider.dispose();
+		if (traceEndRunCycleItemProvider != null) traceEndRunCycleItemProvider.dispose();
 		if (saveHistoryItemProvider != null) saveHistoryItemProvider.dispose();
 		if (historyEntryItemProvider != null) historyEntryItemProvider.dispose();
 	}

+ 10 - 0
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/StateCaseItemProvider.java

@@ -250,6 +250,16 @@ public class StateCaseItemProvider
 				(SexecPackage.Literals.STATE_CASE__STEP,
 				 SexecFactory.eINSTANCE.createTraceStateExited()));
 
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.STATE_CASE__STEP,
+				 SexecFactory.eINSTANCE.createTraceBeginRunCycle()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(SexecPackage.Literals.STATE_CASE__STEP,
+				 SexecFactory.eINSTANCE.createTraceEndRunCycle()));
+
 		newChildDescriptors.add
 			(createChildParameter
 				(SexecPackage.Literals.STATE_CASE__STEP,

+ 114 - 0
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/TraceBeginRunCycleItemProvider.java

@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sexec.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.yakindu.sct.model.sexec.TraceBeginRunCycle;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.sct.model.sexec.TraceBeginRunCycle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TraceBeginRunCycleItemProvider
+	extends TraceItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TraceBeginRunCycleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns TraceBeginRunCycle.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/TraceBeginRunCycle"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((TraceBeginRunCycle)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_TraceBeginRunCycle_type") :
+			getString("_UI_TraceBeginRunCycle_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}

+ 114 - 0
plugins/org.yakindu.sct.model.sexec.edit/src/org/yakindu/sct/model/sexec/provider/TraceEndRunCycleItemProvider.java

@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sexec.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.yakindu.sct.model.sexec.TraceEndRunCycle;
+
+/**
+ * This is the item provider adapter for a {@link org.yakindu.sct.model.sexec.TraceEndRunCycle} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TraceEndRunCycleItemProvider
+	extends TraceItemProvider
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TraceEndRunCycleItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This returns TraceEndRunCycle.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/TraceEndRunCycle"));
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((TraceEndRunCycle)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_TraceEndRunCycle_type") :
+			getString("_UI_TraceEndRunCycle_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}

+ 13 - 1
plugins/org.yakindu.sct.model.sexec.interpreter/src/org/yakindu/sct/model/sexec/interpreter/impl/ExecutionFlowInterpreter.xtend

@@ -67,6 +67,9 @@ import org.yakindu.sct.model.sexec.impl.ExecutionStateImpl
 import org.yakindu.sct.simulation.core.runtime.IExecutionContextListener
 import org.yakindu.sct.model.sexec.SaveHistory
 import org.yakindu.sct.model.sexec.HistoryEntry
+import org.yakindu.sct.model.sexec.TraceBeginRunCycle
+import org.yakindu.sct.model.sexec.SexecFactory
+import org.yakindu.sct.model.sexec.TraceEndRunCycle
 
 /**
  * 
@@ -89,6 +92,9 @@ class ExecutionFlowInterpreter extends AbstractExecutionFacade implements IExecu
 	
 	ExecutionFlow flow
 	int nextSVIdx
+	
+	TraceBeginRunCycle brc  
+	TraceEndRunCycle erc  
 
 	override initialize(ExecutionFlow flow) {
 		this.flow = flow;
@@ -100,6 +106,9 @@ class ExecutionFlowInterpreter extends AbstractExecutionFacade implements IExecu
 	
 		timingService.init(executionContext.virtualClock)
 		executionContext.virtualClock.start
+		
+		brc = SexecFactory::eINSTANCE.createTraceBeginRunCycle
+		erc = SexecFactory::eINSTANCE.createTraceEndRunCycle
 	}
 	
 	override tearDown(){
@@ -136,6 +145,8 @@ class ExecutionFlowInterpreter extends AbstractExecutionFacade implements IExecu
 		
 		nextSVIdx = 0; // this is a member that can be manipulated during state reactions in case of orthogonality
 		
+		brc.execute
+		
 		while (nextSVIdx < executionContext.stateConfiguration.size) {
 			var state = executionContext.stateConfiguration.get(nextSVIdx)
 			if (state != null) state.reactSequence.execute			
@@ -143,7 +154,8 @@ class ExecutionFlowInterpreter extends AbstractExecutionFacade implements IExecu
 		}  
 		
 		executionContext.resetRaisedEvents
-		
+
+		erc.execute		
 	} 
 
 

+ 13 - 0
plugins/org.yakindu.sct.model.sexec.interpreter/xtend-gen/org/yakindu/sct/model/sexec/interpreter/impl/ExecutionFlowInterpreter.java

@@ -26,12 +26,15 @@ import org.yakindu.sct.model.sexec.If;
 import org.yakindu.sct.model.sexec.SaveHistory;
 import org.yakindu.sct.model.sexec.ScheduleTimeEvent;
 import org.yakindu.sct.model.sexec.Sequence;
+import org.yakindu.sct.model.sexec.SexecFactory;
 import org.yakindu.sct.model.sexec.StateCase;
 import org.yakindu.sct.model.sexec.StateSwitch;
 import org.yakindu.sct.model.sexec.StateVector;
 import org.yakindu.sct.model.sexec.Step;
 import org.yakindu.sct.model.sexec.TimeEvent;
 import org.yakindu.sct.model.sexec.Trace;
+import org.yakindu.sct.model.sexec.TraceBeginRunCycle;
+import org.yakindu.sct.model.sexec.TraceEndRunCycle;
 import org.yakindu.sct.model.sexec.UnscheduleTimeEvent;
 import org.yakindu.sct.model.sexec.interpreter.IExecutionFlowInterpreter;
 import org.yakindu.sct.model.sexec.interpreter.IStatementInterpreter;
@@ -75,6 +78,10 @@ public class ExecutionFlowInterpreter extends AbstractExecutionFacade implements
   
   private int nextSVIdx;
   
+  private TraceBeginRunCycle brc;
+  
+  private TraceEndRunCycle erc;
+  
   public void initialize(final ExecutionFlow flow) throws NumberFormatException {
     {
       this.flow = flow;
@@ -90,6 +97,10 @@ public class ExecutionFlowInterpreter extends AbstractExecutionFacade implements
       this.timingService.init(_virtualClock);
       VirtualClock _virtualClock_1 = this.executionContext.getVirtualClock();
       _virtualClock_1.start();
+      TraceBeginRunCycle _createTraceBeginRunCycle = SexecFactory.eINSTANCE.createTraceBeginRunCycle();
+      this.brc = _createTraceBeginRunCycle;
+      TraceEndRunCycle _createTraceEndRunCycle = SexecFactory.eINSTANCE.createTraceEndRunCycle();
+      this.erc = _createTraceEndRunCycle;
     }
   }
   
@@ -129,6 +140,7 @@ public class ExecutionFlowInterpreter extends AbstractExecutionFacade implements
   public void runCycle() throws ExecutionException {
     {
       this.nextSVIdx = 0;
+      this.execute(this.brc);
       ExecutionState[] _stateConfiguration = this.executionContext.getStateConfiguration();
       int _size = ((List<ExecutionState>)Conversions.doWrapArray(_stateConfiguration)).size();
       boolean _operator_lessThan = ComparableExtensions.<Integer>operator_lessThan(((Integer)this.nextSVIdx), ((Integer)_size));
@@ -152,6 +164,7 @@ public class ExecutionFlowInterpreter extends AbstractExecutionFacade implements
         _xwhileexpression = _operator_lessThan_1;
       }
       this.executionContext.resetRaisedEvents();
+      this.execute(this.erc);
     }
   }
   

+ 2 - 0
plugins/org.yakindu.sct.model.sexec/model/sexec.ecore

@@ -145,6 +145,8 @@
   <eClassifiers xsi:type="ecore:EClass" name="TraceStateExited" eSuperTypes="#//Trace">
     <eStructuralFeatures xsi:type="ecore:EReference" name="state" eType="#//ExecutionState"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TraceBeginRunCycle" eSuperTypes="#//Trace"/>
+  <eClassifiers xsi:type="ecore:EClass" name="TraceEndRunCycle" eSuperTypes="#//Trace"/>
   <eClassifiers xsi:type="ecore:EClass" name="SaveHistory" eSuperTypes="#//Step">
     <eStructuralFeatures xsi:type="ecore:EReference" name="region" eType="#//ExecutionRegion"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="deep" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>

+ 18 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/SexecFactory.java

@@ -250,6 +250,24 @@ public interface SexecFactory extends EFactory {
 	 */
 	TraceStateExited createTraceStateExited();
 
+	/**
+	 * Returns a new object of class '<em>Trace Begin Run Cycle</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Trace Begin Run Cycle</em>'.
+	 * @generated
+	 */
+	TraceBeginRunCycle createTraceBeginRunCycle();
+
+	/**
+	 * Returns a new object of class '<em>Trace End Run Cycle</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Trace End Run Cycle</em>'.
+	 * @generated
+	 */
+	TraceEndRunCycle createTraceEndRunCycle();
+
 	/**
 	 * Returns a new object of class '<em>Save History</em>'.
 	 * <!-- begin-user-doc -->

+ 134 - 2
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/SexecPackage.java

@@ -1940,6 +1940,98 @@ public interface SexecPackage extends EPackage {
 	int TRACE_STATE_EXITED_FEATURE_COUNT = TRACE_FEATURE_COUNT + 1;
 
 
+	/**
+	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.TraceBeginRunCycleImpl <em>Trace Begin Run Cycle</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.sct.model.sexec.impl.TraceBeginRunCycleImpl
+	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getTraceBeginRunCycle()
+	 * @generated
+	 */
+	int TRACE_BEGIN_RUN_CYCLE = 30;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRACE_BEGIN_RUN_CYCLE__NAME = TRACE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRACE_BEGIN_RUN_CYCLE__COMMENT = TRACE__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Caller</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRACE_BEGIN_RUN_CYCLE__CALLER = TRACE__CALLER;
+
+	/**
+	 * The number of structural features of the '<em>Trace Begin Run Cycle</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRACE_BEGIN_RUN_CYCLE_FEATURE_COUNT = TRACE_FEATURE_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.TraceEndRunCycleImpl <em>Trace End Run Cycle</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.yakindu.sct.model.sexec.impl.TraceEndRunCycleImpl
+	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getTraceEndRunCycle()
+	 * @generated
+	 */
+	int TRACE_END_RUN_CYCLE = 31;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRACE_END_RUN_CYCLE__NAME = TRACE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Comment</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRACE_END_RUN_CYCLE__COMMENT = TRACE__COMMENT;
+
+	/**
+	 * The feature id for the '<em><b>Caller</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRACE_END_RUN_CYCLE__CALLER = TRACE__CALLER;
+
+	/**
+	 * The number of structural features of the '<em>Trace End Run Cycle</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRACE_END_RUN_CYCLE_FEATURE_COUNT = TRACE_FEATURE_COUNT + 0;
+
 	/**
 	 * The meta object id for the '{@link org.yakindu.sct.model.sexec.impl.SaveHistoryImpl <em>Save History</em>}' class.
 	 * <!-- begin-user-doc -->
@@ -1948,7 +2040,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getSaveHistory()
 	 * @generated
 	 */
-	int SAVE_HISTORY = 30;
+	int SAVE_HISTORY = 32;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -2013,7 +2105,7 @@ public interface SexecPackage extends EPackage {
 	 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getHistoryEntry()
 	 * @generated
 	 */
-	int HISTORY_ENTRY = 31;
+	int HISTORY_ENTRY = 33;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -2875,6 +2967,26 @@ public interface SexecPackage extends EPackage {
 	 */
 	EReference getTraceStateExited_State();
 
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.sct.model.sexec.TraceBeginRunCycle <em>Trace Begin Run Cycle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Trace Begin Run Cycle</em>'.
+	 * @see org.yakindu.sct.model.sexec.TraceBeginRunCycle
+	 * @generated
+	 */
+	EClass getTraceBeginRunCycle();
+
+	/**
+	 * Returns the meta object for class '{@link org.yakindu.sct.model.sexec.TraceEndRunCycle <em>Trace End Run Cycle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Trace End Run Cycle</em>'.
+	 * @see org.yakindu.sct.model.sexec.TraceEndRunCycle
+	 * @generated
+	 */
+	EClass getTraceEndRunCycle();
+
 	/**
 	 * Returns the meta object for class '{@link org.yakindu.sct.model.sexec.SaveHistory <em>Save History</em>}'.
 	 * <!-- begin-user-doc -->
@@ -3703,6 +3815,26 @@ public interface SexecPackage extends EPackage {
 		 */
 		EReference TRACE_STATE_EXITED__STATE = eINSTANCE.getTraceStateExited_State();
 
+		/**
+		 * The meta object literal for the '{@link org.yakindu.sct.model.sexec.impl.TraceBeginRunCycleImpl <em>Trace Begin Run Cycle</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.sct.model.sexec.impl.TraceBeginRunCycleImpl
+		 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getTraceBeginRunCycle()
+		 * @generated
+		 */
+		EClass TRACE_BEGIN_RUN_CYCLE = eINSTANCE.getTraceBeginRunCycle();
+
+		/**
+		 * The meta object literal for the '{@link org.yakindu.sct.model.sexec.impl.TraceEndRunCycleImpl <em>Trace End Run Cycle</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.yakindu.sct.model.sexec.impl.TraceEndRunCycleImpl
+		 * @see org.yakindu.sct.model.sexec.impl.SexecPackageImpl#getTraceEndRunCycle()
+		 * @generated
+		 */
+		EClass TRACE_END_RUN_CYCLE = eINSTANCE.getTraceEndRunCycle();
+
 		/**
 		 * The meta object literal for the '{@link org.yakindu.sct.model.sexec.impl.SaveHistoryImpl <em>Save History</em>}' class.
 		 * <!-- begin-user-doc -->

+ 21 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/TraceBeginRunCycle.java

@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sexec;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Trace Begin Run Cycle</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.yakindu.sct.model.sexec.SexecPackage#getTraceBeginRunCycle()
+ * @model
+ * @generated
+ */
+public interface TraceBeginRunCycle extends Trace {
+} // TraceBeginRunCycle

+ 21 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/TraceEndRunCycle.java

@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sexec;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Trace End Run Cycle</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.yakindu.sct.model.sexec.SexecPackage#getTraceEndRunCycle()
+ * @model
+ * @generated
+ */
+public interface TraceEndRunCycle extends Trace {
+} // TraceEndRunCycle

+ 22 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/SexecFactoryImpl.java

@@ -110,6 +110,8 @@ public class SexecFactoryImpl extends EFactoryImpl implements SexecFactory {
 			case SexecPackage.REACTION_FIRED: return createReactionFired();
 			case SexecPackage.TRACE_STATE_ENTERED: return createTraceStateEntered();
 			case SexecPackage.TRACE_STATE_EXITED: return createTraceStateExited();
+			case SexecPackage.TRACE_BEGIN_RUN_CYCLE: return createTraceBeginRunCycle();
+			case SexecPackage.TRACE_END_RUN_CYCLE: return createTraceEndRunCycle();
 			case SexecPackage.SAVE_HISTORY: return createSaveHistory();
 			case SexecPackage.HISTORY_ENTRY: return createHistoryEntry();
 			default:
@@ -367,6 +369,26 @@ public class SexecFactoryImpl extends EFactoryImpl implements SexecFactory {
 		return traceStateExited;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TraceBeginRunCycle createTraceBeginRunCycle() {
+		TraceBeginRunCycleImpl traceBeginRunCycle = new TraceBeginRunCycleImpl();
+		return traceBeginRunCycle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TraceEndRunCycle createTraceEndRunCycle() {
+		TraceEndRunCycleImpl traceEndRunCycle = new TraceEndRunCycleImpl();
+		return traceEndRunCycle;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->

+ 44 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/SexecPackageImpl.java

@@ -43,6 +43,8 @@ import org.yakindu.sct.model.sexec.StateVectorType;
 import org.yakindu.sct.model.sexec.Step;
 import org.yakindu.sct.model.sexec.TimeEvent;
 import org.yakindu.sct.model.sexec.Trace;
+import org.yakindu.sct.model.sexec.TraceBeginRunCycle;
+import org.yakindu.sct.model.sexec.TraceEndRunCycle;
 import org.yakindu.sct.model.sexec.TraceNodeExecuted;
 import org.yakindu.sct.model.sexec.TraceRegionEntered;
 import org.yakindu.sct.model.sexec.TraceRegionExited;
@@ -247,6 +249,20 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 	 */
 	private EClass traceStateExitedEClass = null;
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass traceBeginRunCycleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass traceEndRunCycleEClass = null;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1012,6 +1028,24 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		return (EReference)traceStateExitedEClass.getEStructuralFeatures().get(0);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTraceBeginRunCycle() {
+		return traceBeginRunCycleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTraceEndRunCycle() {
+		return traceEndRunCycleEClass;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1286,6 +1320,10 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		traceStateExitedEClass = createEClass(TRACE_STATE_EXITED);
 		createEReference(traceStateExitedEClass, TRACE_STATE_EXITED__STATE);
 
+		traceBeginRunCycleEClass = createEClass(TRACE_BEGIN_RUN_CYCLE);
+
+		traceEndRunCycleEClass = createEClass(TRACE_END_RUN_CYCLE);
+
 		saveHistoryEClass = createEClass(SAVE_HISTORY);
 		createEReference(saveHistoryEClass, SAVE_HISTORY__REGION);
 		createEAttribute(saveHistoryEClass, SAVE_HISTORY__DEEP);
@@ -1359,6 +1397,8 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		reactionFiredEClass.getESuperTypes().add(this.getTrace());
 		traceStateEnteredEClass.getESuperTypes().add(this.getTrace());
 		traceStateExitedEClass.getESuperTypes().add(this.getTrace());
+		traceBeginRunCycleEClass.getESuperTypes().add(this.getTrace());
+		traceEndRunCycleEClass.getESuperTypes().add(this.getTrace());
 		saveHistoryEClass.getESuperTypes().add(this.getStep());
 		historyEntryEClass.getESuperTypes().add(this.getStep());
 
@@ -1474,6 +1514,10 @@ public class SexecPackageImpl extends EPackageImpl implements SexecPackage {
 		initEClass(traceStateExitedEClass, TraceStateExited.class, "TraceStateExited", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getTraceStateExited_State(), this.getExecutionState(), null, "state", null, 0, 1, TraceStateExited.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(traceBeginRunCycleEClass, TraceBeginRunCycle.class, "TraceBeginRunCycle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(traceEndRunCycleEClass, TraceEndRunCycle.class, "TraceEndRunCycle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
 		initEClass(saveHistoryEClass, SaveHistory.class, "SaveHistory", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getSaveHistory_Region(), this.getExecutionRegion(), null, "region", null, 0, 1, SaveHistory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getSaveHistory_Deep(), ecorePackage.getEBoolean(), "deep", null, 0, 1, SaveHistory.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

+ 43 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/TraceBeginRunCycleImpl.java

@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sexec.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.yakindu.sct.model.sexec.SexecPackage;
+import org.yakindu.sct.model.sexec.TraceBeginRunCycle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Trace Begin Run Cycle</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TraceBeginRunCycleImpl extends TraceImpl implements TraceBeginRunCycle {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TraceBeginRunCycleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SexecPackage.Literals.TRACE_BEGIN_RUN_CYCLE;
+	}
+
+} //TraceBeginRunCycleImpl

+ 43 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/impl/TraceEndRunCycleImpl.java

@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.yakindu.sct.model.sexec.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.yakindu.sct.model.sexec.SexecPackage;
+import org.yakindu.sct.model.sexec.TraceEndRunCycle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Trace End Run Cycle</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TraceEndRunCycleImpl extends TraceImpl implements TraceEndRunCycle {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TraceEndRunCycleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return SexecPackage.Literals.TRACE_END_RUN_CYCLE;
+	}
+
+} //TraceEndRunCycleImpl

+ 36 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/util/SexecAdapterFactory.java

@@ -217,6 +217,14 @@ public class SexecAdapterFactory extends AdapterFactoryImpl {
 				return createTraceStateExitedAdapter();
 			}
 			@Override
+			public Adapter caseTraceBeginRunCycle(TraceBeginRunCycle object) {
+				return createTraceBeginRunCycleAdapter();
+			}
+			@Override
+			public Adapter caseTraceEndRunCycle(TraceEndRunCycle object) {
+				return createTraceEndRunCycleAdapter();
+			}
+			@Override
 			public Adapter caseSaveHistory(SaveHistory object) {
 				return createSaveHistoryAdapter();
 			}
@@ -638,6 +646,34 @@ public class SexecAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sexec.TraceBeginRunCycle <em>Trace Begin Run Cycle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.yakindu.sct.model.sexec.TraceBeginRunCycle
+	 * @generated
+	 */
+	public Adapter createTraceBeginRunCycleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sexec.TraceEndRunCycle <em>Trace End Run Cycle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.yakindu.sct.model.sexec.TraceEndRunCycle
+	 * @generated
+	 */
+	public Adapter createTraceEndRunCycleAdapter() {
+		return null;
+	}
+
 	/**
 	 * Creates a new adapter for an object of class '{@link org.yakindu.sct.model.sexec.SaveHistory <em>Save History</em>}'.
 	 * <!-- begin-user-doc -->

+ 48 - 0
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/util/SexecSwitch.java

@@ -340,6 +340,24 @@ public class SexecSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case SexecPackage.TRACE_BEGIN_RUN_CYCLE: {
+				TraceBeginRunCycle traceBeginRunCycle = (TraceBeginRunCycle)theEObject;
+				T result = caseTraceBeginRunCycle(traceBeginRunCycle);
+				if (result == null) result = caseTrace(traceBeginRunCycle);
+				if (result == null) result = caseStep(traceBeginRunCycle);
+				if (result == null) result = caseNamedElement(traceBeginRunCycle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SexecPackage.TRACE_END_RUN_CYCLE: {
+				TraceEndRunCycle traceEndRunCycle = (TraceEndRunCycle)theEObject;
+				T result = caseTraceEndRunCycle(traceEndRunCycle);
+				if (result == null) result = caseTrace(traceEndRunCycle);
+				if (result == null) result = caseStep(traceEndRunCycle);
+				if (result == null) result = caseNamedElement(traceEndRunCycle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case SexecPackage.SAVE_HISTORY: {
 				SaveHistory saveHistory = (SaveHistory)theEObject;
 				T result = caseSaveHistory(saveHistory);
@@ -765,6 +783,36 @@ public class SexecSwitch<T> extends Switch<T> {
 		return null;
 	}
 
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Trace Begin Run Cycle</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Trace Begin Run Cycle</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTraceBeginRunCycle(TraceBeginRunCycle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Trace End Run Cycle</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Trace End Run Cycle</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTraceEndRunCycle(TraceEndRunCycle object) {
+		return null;
+	}
+
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Save History</em>'.
 	 * <!-- begin-user-doc -->

+ 29 - 18
plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/model/presenter/DefaultDynamicNotationHandler.java

@@ -26,6 +26,8 @@ import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.Display;
 import org.yakindu.sct.model.sexec.ReactionFired;
 import org.yakindu.sct.model.sexec.Trace;
+import org.yakindu.sct.model.sexec.TraceBeginRunCycle;
+import org.yakindu.sct.model.sexec.TraceEndRunCycle;
 import org.yakindu.sct.model.sexec.TraceNodeExecuted;
 import org.yakindu.sct.model.sexec.TraceStateEntered;
 import org.yakindu.sct.model.sexec.TraceStateExited;
@@ -34,6 +36,8 @@ import org.yakindu.sct.simulation.core.runtime.IExecutionContext;
 import org.yakindu.sct.simulation.ui.SimulationActivator;
 
 import de.itemis.gmf.runtime.commons.highlighting.HighlightingParameters;
+import de.itemis.gmf.runtime.commons.highlighting.IHighlightingSupport;
+import de.itemis.gmf.runtime.commons.highlighting.IHighlightingSupport.Action;
 
 /**
  * @author andreas muelder - Initial contribution and API
@@ -43,12 +47,11 @@ import de.itemis.gmf.runtime.commons.highlighting.HighlightingParameters;
 public class DefaultDynamicNotationHandler extends
 		AbstractDynamicNotationHandler {
 
-	private static HighlightingParameters TRANSITION_PARAMS = new HighlightingParameters(
+	protected static HighlightingParameters TRANSITION_PARAMS = new HighlightingParameters(
 			0, ColorConstants.darkGreen, ColorConstants.gray, false);
 
-	private static HighlightingParameters STATE_PARAMS = HighlightingParameters.DEFAULT;
+	protected static HighlightingParameters STATE_PARAMS = HighlightingParameters.DEFAULT;
 
-	private List<EObject> lastTransitionPath = new ArrayList<EObject>();
 
 	public DefaultDynamicNotationHandler() {
 		updatePreferences();
@@ -59,12 +62,18 @@ public class DefaultDynamicNotationHandler extends
 			getHighlightingSupport().fadeIn(vertex,
 					HighlightingParameters.DEFAULT);
 		}
-		for (EObject obj : lastTransitionPath) {
-			getHighlightingSupport().fadeIn(obj, TRANSITION_PARAMS);
-		}
 
 	}
 
+
+	public void visualizeStep(final TraceBeginRunCycle trace) {
+	}
+
+	
+	public void visualizeStep(final TraceEndRunCycle trace) {
+	}
+
+	
 	public void visualizeStep(final TraceStateEntered trace) {
 		getHighlightingSupport().fadeIn(
 				((TraceStateEntered) trace).getState().getSourceElement(),
@@ -75,27 +84,26 @@ public class DefaultDynamicNotationHandler extends
 		getHighlightingSupport().fadeOut(
 				((TraceStateExited) trace).getState().getSourceElement(),
 				HighlightingParameters.DEFAULT);
-
-		for (EObject obj : lastTransitionPath) {
-			getHighlightingSupport().fadeOut(obj, TRANSITION_PARAMS);
-		}
-		lastTransitionPath.clear();
 	}
 
 	public void visualizeStep(final ReactionFired trace) {
-		EObject transition = trace.getReaction().getSourceElement();
-		getHighlightingSupport().fadeIn(transition, TRANSITION_PARAMS);
-		lastTransitionPath.add(transition);
+		getHighlightingSupport().flash(
+				trace.getReaction().getSourceElement(),
+				HighlightingParameters.DEFAULT);
 	}
 
 	public void visualizeStep(final TraceNodeExecuted trace) {
-		EObject node = trace.getNode().getSourceElement();
-		getHighlightingSupport().fadeIn(node, TRANSITION_PARAMS);
-		lastTransitionPath.add(node);
+		getHighlightingSupport().flash(
+				trace.getNode().getSourceElement(),
+				HighlightingParameters.DEFAULT);
 	}
 
-	// dispatch
+	/** 
+	 * this dispatch method invokes the appropriate handler methods for the different trace step types. 
+	 */
 	public void visualizeStep(final Trace trace) {
+		if (trace instanceof TraceBeginRunCycle)
+			visualizeStep((TraceBeginRunCycle) trace);
 		if (trace instanceof TraceStateEntered)
 			visualizeStep((TraceStateEntered) trace);
 		if (trace instanceof TraceStateExited)
@@ -104,8 +112,11 @@ public class DefaultDynamicNotationHandler extends
 			visualizeStep((ReactionFired) trace);
 		if (trace instanceof TraceNodeExecuted)
 			visualizeStep((TraceNodeExecuted) trace);
+		if (trace instanceof TraceEndRunCycle)
+			visualizeStep((TraceEndRunCycle) trace);
 	}
 
+	
 	protected void updatePreferences() {
 		IPreferenceStore store = SimulationActivator.getDefault()
 				.getPreferenceStore();

+ 106 - 0
plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/model/presenter/ExecutionPathDynamicNotationHandler.java

@@ -0,0 +1,106 @@
+package org.yakindu.sct.simulation.ui.model.presenter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.yakindu.sct.model.sexec.ReactionFired;
+import org.yakindu.sct.model.sexec.Trace;
+import org.yakindu.sct.model.sexec.TraceBeginRunCycle;
+import org.yakindu.sct.model.sexec.TraceEndRunCycle;
+import org.yakindu.sct.model.sexec.TraceNodeExecuted;
+import org.yakindu.sct.model.sexec.TraceStateEntered;
+import org.yakindu.sct.model.sexec.TraceStateExited;
+import org.yakindu.sct.model.sgraph.RegularState;
+import org.yakindu.sct.simulation.core.runtime.IExecutionContext;
+
+import de.itemis.gmf.runtime.commons.highlighting.HighlightingParameters;
+import de.itemis.gmf.runtime.commons.highlighting.IHighlightingSupport;
+import de.itemis.gmf.runtime.commons.highlighting.IHighlightingSupport.Action;
+
+/**
+ * This dynamic notation handler highlight the current states, the previous active states and the execution paths 
+ * that are the transitions and pseudo states that were taken in the last run to completion step (runCycle).
+ * 
+ * @author terfloth
+ */
+public class ExecutionPathDynamicNotationHandler extends
+		DefaultDynamicNotationHandler {
+
+	
+	/** stores the highlighting actions for the last execution cycle */
+	protected List<Action> cycleUpdates = new ArrayList<Action>();
+	
+	protected List<RegularState> active = new ArrayList<RegularState>();
+	protected List<RegularState> previousActive = new ArrayList<RegularState>();
+	protected List<EObject> executionPathElements = new ArrayList<EObject>();
+	
+	
+	
+	public void restoreNotationState(IExecutionContext context) {
+		List<Action> actionList = new ArrayList<Action>();
+		
+		for (RegularState state : context.getAllActiveStates()) {
+			active.add(state);
+			actionList.add( new IHighlightingSupport.Highlight(state, HighlightingParameters.DEFAULT) );
+		}
+		
+		getHighlightingSupport().executeBatch(actionList);
+		
+	}
+
+
+	public void visualizeStep(final TraceBeginRunCycle trace) {
+		
+		cycleUpdates.clear();
+
+		for ( EObject obj : previousActive ) { cycleUpdates.add( new IHighlightingSupport.Highlight(obj, null)); }
+		previousActive.clear();
+		
+		for ( EObject obj : executionPathElements ) { cycleUpdates.add( new IHighlightingSupport.Highlight(obj, null)); }
+		executionPathElements.clear();
+				
+	}
+
+	
+	public void visualizeStep(final TraceEndRunCycle trace) {
+		
+		List<Action> actions = new ArrayList<Action>(cycleUpdates);
+		getHighlightingSupport().executeBatch(actions);
+		
+	}
+
+	
+	public void visualizeStep(final TraceStateEntered trace) {
+		
+		active.add((RegularState) trace.getState().getSourceElement());
+		cycleUpdates.add(new IHighlightingSupport.Highlight(trace.getState().getSourceElement(), HighlightingParameters.DEFAULT) );
+		
+	}
+
+	public void visualizeStep(final TraceStateExited trace) {
+
+		RegularState state = (RegularState) trace.getState().getSourceElement();
+
+		active.remove(state);
+		previousActive.add(state);
+		cycleUpdates.add(new IHighlightingSupport.Highlight(trace.getState().getSourceElement(), TRANSITION_PARAMS) );
+
+	}
+
+	public void visualizeStep(final ReactionFired trace) {
+		
+		executionPathElements.add(trace.getReaction().getSourceElement());
+		cycleUpdates.add(new IHighlightingSupport.Highlight(trace.getReaction().getSourceElement(), TRANSITION_PARAMS) );
+
+	}
+
+	public void visualizeStep(final TraceNodeExecuted trace) {
+		
+		executionPathElements.add(trace.getNode().getSourceElement());
+		cycleUpdates.add(new IHighlightingSupport.Highlight(trace.getNode().getSourceElement(), TRANSITION_PARAMS) );
+
+	}
+
+
+}

+ 1 - 1
plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/model/presenter/SCTSourceDisplay.java

@@ -81,7 +81,7 @@ public class SCTSourceDisplay implements ISourceDisplay, IDebugEventSetListener
 
 	private IDynamicNotationHandler createNotationHandler(
 			IExecutionFacade facade) {
-		IDynamicNotationHandler handler = new DefaultDynamicNotationHandler();
+		IDynamicNotationHandler handler = new ExecutionPathDynamicNotationHandler();
 		facade.addTraceListener(handler);
 		_handler.put(facade, handler);
 		return handler;

+ 60 - 0
plugins/org.yakindu.sct.simulation.ui/src/org/yakindu/sct/simulation/ui/model/presenter/TimeFramingDynamicNotationHandler.java

@@ -0,0 +1,60 @@
+package org.yakindu.sct.simulation.ui.model.presenter;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EObject;
+import org.yakindu.sct.model.sexec.ReactionFired;
+import org.yakindu.sct.model.sexec.TraceBeginRunCycle;
+import org.yakindu.sct.model.sexec.TraceEndRunCycle;
+import org.yakindu.sct.model.sexec.TraceNodeExecuted;
+import org.yakindu.sct.model.sexec.TraceStateEntered;
+import org.yakindu.sct.model.sexec.TraceStateExited;
+
+public class TimeFramingDynamicNotationHandler extends
+		ExecutionPathDynamicNotationHandler {
+
+	enum OnOff { On, Off };
+	
+	Map<EObject, List<OnOff>> changesMap = new HashMap<EObject, List<OnOff>>();
+
+	@Override
+	public void visualizeStep(TraceBeginRunCycle trace) {
+		// TODO Auto-generated method stub
+		super.visualizeStep(trace);
+	}
+
+	@Override
+	public void visualizeStep(TraceEndRunCycle trace) {
+		// TODO Auto-generated method stub
+		super.visualizeStep(trace);
+	}
+
+	@Override
+	public void visualizeStep(TraceStateEntered trace) {
+		// TODO Auto-generated method stub
+		super.visualizeStep(trace);
+	}
+
+	@Override
+	public void visualizeStep(TraceStateExited trace) {
+		// TODO Auto-generated method stub
+		super.visualizeStep(trace);
+	}
+
+	@Override
+	public void visualizeStep(ReactionFired trace) {
+		// TODO Auto-generated method stub
+		super.visualizeStep(trace);
+	}
+
+	@Override
+	public void visualizeStep(TraceNodeExecuted trace) {
+		// TODO Auto-generated method stub
+		super.visualizeStep(trace);
+	}
+	
+	
+	
+}