|
@@ -1,9 +1,13 @@
|
|
|
package org.yakindu.sct.simulation.ui.model.presenter;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
import org.eclipse.draw2d.ColorConstants;
|
|
|
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.TraceNodeExecuted;
|
|
|
import org.yakindu.sct.model.sexec.TraceStateEntered;
|
|
|
import org.yakindu.sct.model.sexec.TraceStateExited;
|
|
|
import org.yakindu.sct.model.sgraph.Vertex;
|
|
@@ -13,6 +17,7 @@ import de.itemis.gmf.runtime.commons.highlighting.HighlightingParameters;
|
|
|
|
|
|
/**
|
|
|
* @author andreas muelder - Initial contribution and API
|
|
|
+ * @author axel terfloth - Additions
|
|
|
*
|
|
|
*/
|
|
|
public class DefaultDynamicNotationHandler extends AbstractDynamicNotationHandler {
|
|
@@ -20,14 +25,16 @@ public class DefaultDynamicNotationHandler extends AbstractDynamicNotationHandle
|
|
|
private static final HighlightingParameters TRANSITION_PARAMS = new HighlightingParameters(
|
|
|
0, ColorConstants.darkGreen, ColorConstants.gray, false);
|
|
|
|
|
|
- private EObject lastTakenTransition = null;
|
|
|
+ private List<EObject> lastTransitionPath = new ArrayList<EObject>();
|
|
|
|
|
|
public void restoreNotationState(IExecutionContext context) {
|
|
|
for (Vertex vertex : context.getAllActiveStates()) {
|
|
|
getHighlightingSupport().fadeIn(vertex,
|
|
|
HighlightingParameters.DEFAULT);
|
|
|
}
|
|
|
- getHighlightingSupport().fadeIn(lastTakenTransition, TRANSITION_PARAMS);
|
|
|
+ for (EObject obj : lastTransitionPath) {
|
|
|
+ getHighlightingSupport().fadeIn(obj, TRANSITION_PARAMS);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -41,16 +48,28 @@ public class DefaultDynamicNotationHandler extends AbstractDynamicNotationHandle
|
|
|
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();
|
|
|
- if (lastTakenTransition != null) {
|
|
|
- getHighlightingSupport().fadeOut(lastTakenTransition,
|
|
|
- TRANSITION_PARAMS);
|
|
|
- }
|
|
|
+// if (lastTransitionPath != null) {
|
|
|
+// getHighlightingSupport().fadeOut(lastTransitionPath,
|
|
|
+// TRANSITION_PARAMS);
|
|
|
+// }
|
|
|
getHighlightingSupport().fadeIn(transition, TRANSITION_PARAMS);
|
|
|
- lastTakenTransition = transition;
|
|
|
+ lastTransitionPath.add(transition);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void visualizeStep(final TraceNodeExecuted trace) {
|
|
|
+ EObject node = trace.getNode().getSourceElement();
|
|
|
+// getHighlightingSupport().flash(node, HighlightingParameters.DEFAULT);
|
|
|
+ getHighlightingSupport().fadeIn(node, TRANSITION_PARAMS);
|
|
|
+ lastTransitionPath.add(node);
|
|
|
}
|
|
|
|
|
|
// dispatch
|
|
@@ -61,5 +80,7 @@ public class DefaultDynamicNotationHandler extends AbstractDynamicNotationHandle
|
|
|
visualizeStep((TraceStateExited) trace);
|
|
|
if (trace instanceof ReactionFired)
|
|
|
visualizeStep((ReactionFired) trace);
|
|
|
+ if (trace instanceof TraceNodeExecuted)
|
|
|
+ visualizeStep((TraceNodeExecuted) trace);
|
|
|
}
|
|
|
}
|