formatTrifecta method
- @override
- SamAction sa,
- SamState ss,
- SamView sv
override
The specific method for the RocketFactory subclass.
Tutorial note: Normally these function references would be private but here are made public so that their details show in the api documentation.
Implementation
@override
void formatTrifecta(SamAction sa,SamState ss,SamView sv) {
// ---------------- action mapping ----------------
sa.addAction(RK.saDecrement, saDecrement);
sa.addAction(RK.saStartCtr, saStartCtr);
sa.addAction(RK.saRestartCtr, saRestartCtr);
sa.addAction(RK.saPause, (SamModel sm,SamReq req){sm.flipState(RK.ssPaused);});
sa.addAction(RK.saAbort, (SamModel sm,SamReq req){sm.flipState(RK.ssAborted);});
sa.addAction(RK.saResetLauncher,(SamModel sm,SamReq req){sm.flipState(RK.ssReady);});
// nap processing
sa.addAction(RK.ssReady, napPrepReady);
sa.addAction(RK.ssCounting, napStartTimer);
sa.addAction(RK.ssWaiting, napStartTimer);
// ---------------- state mapping ----------------
ss.addState(RK.ssReady) .next([RK.ssCounting,RK.ssWaiting]).nap();
ss.addState(RK.ssLaunched) .next(RK.ssReady).weakSignal(RK.sgLaunching).allow(RK.saResetLauncher).ignore(RK.saDecrement);
ss.addState(RK.ssCounting) .next([RK.ssAborted,RK.ssPaused,RK.ssLaunched]).allow([RK.saDecrement,RK.saPause,RK.saAbort]).nap();
ss.addState(RK.ssAborted) .next(RK.ssReady).weakSignal(RK.sgAborting).allow(RK.saResetLauncher).ignore(RK.saDecrement);
ss.addState(RK.ssPaused) .next([RK.ssAborted,RK.ssCounting,RK.ssWaiting]).weakSignal(RK.sgPausing).ignore(RK.saDecrement);
ss.addState(RK.ssWaiting) .next([RK.ssAborted,RK.ssPaused,RK.ssCounting]).allow([RK.saDecrement,RK.saPause,RK.saAbort]).nap();
// ---------------- view mapping ----------------
sv.addView(RK.ssReady, ssReady);
sv.addView(RK.ssCounting, _ssCounting);
sv.addView(RK.ssPaused, _ssPaused);
sv.addView(RK.ssAborted, _ssAborted);
sv.addView(RK.ssLaunched, _ssLaunched);
sv.addView(RK.ssWaiting, _ssWaiting);
//log("trifecta Rocket ${enums} ${enums.runtimeType} eq=${RK == enums} ${RK} ${RK.ssReady.runtimeType} ${RK.ssReady is String} ");
}