| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import 'rule.dart';
- class RuleInOrder extends Rule{
- RuleInOrder(super.model);
- @override
- MControlPoint checkPoint(MControlPoint toCheck){
- var cp = toCheck;
- var wantI = model.checkedCount;
- final endPoint = model.controlPointWantSequence.last;
- final want = model.controlPointWantSequence[wantI];
- final planI = model.nextPlanPointIndex.value;
- if(planI!= null){
- if(model.controlPointWantSequence.length > planI){
- final plan = model.controlPointWantSequence[planI];
- if(plan.intId==toCheck.intId){
- cp.isPlan=true;
- var nextPlan = model.nextPlanPointIndex.value;
- if(nextPlan!= null){
- nextPlan++;
- if(model.controlPointWantSequence.length > nextPlan){
- model.nextPlanPointIndex.value= nextPlan;
- }
- }
- }
- }
- }
- if(want.intId == toCheck.intId){
- want.isSuccess = true;
- want.isNext = false;
- cp = want.clone();
- final nextIndex = wantI+1;
- if(model.controlPointWantSequence.length > nextIndex){
- model.controlPointWantSequence[nextIndex].isNext = true;
- }
- }else{
- if (toCheck.intId == endPoint.intId && model.checkedCount > 0) {
- cp = endPoint.clone();
- }
- cp.isSuccess=false;
- }
- return cp;
- }
- }
|