public static List <ECallNext> HowToCallTheNextOne(this ETypeImpl imp, ETypeImpl impNext) { switch (imp) { case ETypeImpl.SYNC: { return(new List <ECallNext>() { ECallNext.WAIT_FIRST, ECallNext.WAIT_AFTER }); } case ETypeImpl.ASYNC: { if (impNext == ETypeImpl.ASYNC) { var result = new List <ECallNext>(); foreach (var aux in Enum.GetValues(typeof(ECallNext))) { result.Add((ECallNext)aux); } return(result); } else { return(new List <ECallNext>() { ECallNext.WAIT_FIRST, ECallNext.WAIT_AFTER }); } } } return(null); }
private void NextEventChangeHandler(ETypeImpl newType) { HelperUI.ModifyMethod(cmbNextAlg, () => { if (Next != null) { var newValues = newType.HowToCallTheNextOne(Next.TypeImpl); var current = cmbNextAlg.SelectedItem; cmbNextAlg.Items.Clear(); foreach (var aux in newValues) { cmbNextAlg.Items.Add(aux); } if (current != null && cmbNextAlg.Items.Contains(current)) { cmbNextAlg.SelectedItem = current; } if (cmbNextAlg.SelectedItem == null && newValues.Count == 1) { cmbNextAlg.SelectedItem = newValues[0]; } } }); }
private void EventNextHandler(ETypeImpl newType) { HelperUI.ModifyMethod(cmbNextAlg, () => { if (Next != null) { /*cmbNextAlg*/ var newValues = newType.HowToCallTheNextOne(next.TypeImpl); var current = cmbNextAlg.SelectedItem; cmbNextAlg.Items.Clear(); foreach (var aux in newValues) { cmbNextAlg.Items.Add(aux); } if (current != null && cmbNextAlg.Items.Contains(current)) { cmbNextAlg.SelectedItem = current; } if (cmbNextAlg.SelectedItem == null && newValues.Count == 1) { cmbNextAlg.SelectedItem = newValues[0]; } } }); HelperUI.ModifyMethod(cmbMyImpl, () => { /*cmbImpl*/ var newValuesToBeImplemented = newType.DoMyWork(); var currentImplementation = cmbMyImpl.SelectedItem; cmbMyImpl.Items.Clear(); foreach (var aux in newValuesToBeImplemented) { cmbMyImpl.Items.Add(aux); } if (currentImplementation != null && cmbMyImpl.Items.Contains(currentImplementation)) { cmbMyImpl.SelectedItem = currentImplementation; } if (cmbMyImpl.SelectedItem == null && newValuesToBeImplemented.Count == 1) { cmbMyImpl.SelectedItem = newValuesToBeImplemented[0]; } }); }
public static List <EStrategyDoIndependentWork> DoMyWork(this ETypeImpl imp) { switch (imp) { case ETypeImpl.SYNC: return(new List <EStrategyDoIndependentWork>() { EStrategyDoIndependentWork.NORMAL }); case ETypeImpl.ASYNC: { var result = new List <EStrategyDoIndependentWork>(); foreach (var aux in Enum.GetValues(typeof(EStrategyDoIndependentWork))) { result.Add((EStrategyDoIndependentWork)aux); } return(result); } } return(null); }