public ConditionViewModel(IEnumerable <MappingViewModel> mappings, ConditionNumber number, ACondition condition) { _mappings = mappings; _number = number; _condition = condition; if (_condition != null) { _name = _condition.Name; // assignment var options = _condition.AssignmentOptions.Select(a => new ConditionAssignment { Target = a.Key, Description = a.Value }); _assignmentOptions = new ObservableCollection <ConditionAssignment>(options); _assignment = AssignmentOptions.SingleOrDefault(a => a.Target == _condition.Assignment); // value var enumDict = _condition.GetValueOptions(); _valueOptions = new ObservableCollection <ConditionValue>(enumDict.Select(e => new ConditionValue { Value = e.Key, Description = e.Value })); _value = ValueOptions.SingleOrDefault(v => v.Value != null && v.Value.Equals(_condition.GetValue())); } }
protected override Func <bool> GetOutValue() { _buffManagerValue = GetInputValue(nameof(_buffManagerValue), _buffManagerValue); Target = GetInputValue(nameof(Target), Target);; var conditionType = Type.GetType(_conditionAQName); if (conditionType == null) { return(null); } _condition = (ACondition)this.DynamicInputCreateInstance(conditionType, _buffManagerValue); return(_execute); }
private bool _execute() { _buffManagerValue = GetInputValue(nameof(_buffManagerValue), _buffManagerValue); Target = GetInputValue(nameof(Target), Target);; var conditionType = Type.GetType(_conditionAQName); if (conditionType == null) { return(false); } _condition = (ACondition <IIcSkSEntity>) this.DynamicInputCreateInstance(conditionType, _buffManagerValue); return(_condition.Check(Target)); }
private void setCondition(ConditionNumber number, MenuItemViewModel item) { ConditionProxy proxy = null; ACondition condition = null; if (item.Tag is ConditionProxy) { proxy = item.Tag as ConditionProxy; } else if (item.Tag is ACondition) { condition = item.Tag as ACondition; } foreach (var mapping in _mappings) { if (proxy != null) { mapping.SetCondition(number, proxy); } else if (condition != null) { mapping.SetCondition(number, condition); } else { mapping.SetCondition(number, condition); // clear condition with null value } } if (number == ConditionNumber.One) { _selectedC1Conditions = new List <ACondition> { _mappings.First().Conditions.Condition1 } } ; else { _selectedC2Conditions = new List <ACondition> { _mappings.First().Conditions.Condition2 } }; update(); }
public void SetCondition(ConditionNumber number, ACondition condition) { var changed = _mapping.SetCondition(number, condition); if (changed) { if (number == ConditionNumber.One) { raisePropertyChanged("Condition1"); } else { raisePropertyChanged("Condition2"); } raisePropertyChanged("ConditionExpression"); IsChanged = true; } }
//[TestMethod] public void TestConditionCallback() { List <ACondition> cdts = new List <ACondition>(); ConditionInput <int> i = 128; var intCdt = new ConditionEvaluator { Condition = ConditionEvaluator.CONDITION.MORE, Input = 127 }; intCdt.SetRefOutput(i); //intCdt.Callback = () => intCdt.Input++; //cdts.Add(intCdt); Assert.IsTrue(ACondition.EvaluateSet(cdts), "1 Conditions are not satisfied"); //intCdt.Callback(); Assert.IsFalse(ACondition.EvaluateSet(cdts), "2 Conditions are not satisfied"); }
//[TestMethod] public void TestConditions() { List <ACondition> cdts = new List <ACondition>(); ConditionInput <int> i = new ConditionInput <int> { Value = 42 }; var intCdt = new ConditionEvaluator { Condition = ConditionEvaluator.CONDITION.EQUAL, Input = 42 }; intCdt.SetRefOutput(i); //cdts.Add(intCdt); Assert.IsTrue(ACondition.EvaluateSet(cdts), "1 Conditions are not satisfied"); i.Value = 0; Assert.IsFalse(ACondition.EvaluateSet(cdts), "2 Conditions are not satisfied"); }
/// <summary> /// Set condition by another condition. /// </summary> /// <param name="number">Number of condition</param> /// <param name="condition">ACondition or null to reset condition.</param> /// <returns>True if condition was changed.</returns> public bool SetCondition(ConditionNumber number, ACondition condition) { return(_conditions.SetCondition(_rawMapping.Settings, number, condition)); }
// code based on conditionsEditorViewMode::setCondition() public void rotateModifierCondition(int which, int step) { ConditionNumber number; if (which == 1) { number = ConditionNumber.One; } else { number = ConditionNumber.Two; } var conditions_editor = this.ConditionsEditor; var conditions_list = conditions_editor.Conditions; var modifier_list = conditions_list.Where(x => x.Text == "Modifier").First().Children; foreach (var mapping in _mappings) { ACondition cur_condition; if (which == 1) { cur_condition = mapping.Conditions.Condition1; } else { cur_condition = mapping.Conditions.Condition2; } if (cur_condition == null) { continue; // ignore no condition } KnownCommands id = (KnownCommands)cur_condition.Id; if (!((id >= KnownCommands.Modifier_Modifier1) && (id <= KnownCommands.Modifier_Modifier8))) { continue; // ignore non-modifiers } var cur_value = cur_condition.GetValue(); //// int cur_modifier = id - KnownCommands.Modifier_Modifier1 + 1; int new_modifier = rotate_modifier_key_int(cur_modifier, step); MenuItemViewModel item = modifier_list[new_modifier - 1]; ConditionProxy new_proxy = null; ACondition new_condition = null; if (item.Tag is ConditionProxy) { new_proxy = item.Tag as ConditionProxy; } else if (item.Tag is ACondition) { new_condition = item.Tag as ACondition; } if (new_proxy != null) { mapping.SetCondition(number, new_proxy); } else if (new_condition != null) { mapping.SetCondition(number, new_condition); } else { mapping.SetCondition(number, new_condition); // clear condition with null value } cur_condition.SetValue(cur_value); mapping.UpdateConditionExpression(); } conditions_editor.Refresh(); }
// fixme: changes to assigment change conditions as well public void try_rotate_condition_value(ACondition command, int step) { Type type = command.GetType(); string type_name = type.FullName; //if (command.MappingType == MappingType.Out) { // return; //} if (false) { // This is just a placeholder ////// Start of Auto generated code } else if (type_name.Contains("Enums.CaptureSource")) { var command2 = (EnumCondition <CaptureSource>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.CueLoopMoveMode")) { var command2 = (EnumCondition <CueLoopMoveMode>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.DeckFlavor")) { var command2 = (EnumCondition <DeckFlavor>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.FXUnitMode")) { var command2 = (EnumCondition <FXUnitMode>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.HotcueType")) { var command2 = (EnumCondition <HotcueType>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.ModifierValue")) { var command2 = (EnumCondition <ModifierValue>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.OnOff")) { var command2 = (EnumCondition <OnOff>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.PlayMode")) { var command2 = (EnumCondition <PlayMode>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.Sample")) { var command2 = (EnumCondition <Sample>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.SamplePage")) { var command2 = (EnumCondition <SamplePage>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.SlotCellState")) { var command2 = (EnumCondition <SlotCellState>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.SlotState")) { var command2 = (EnumCondition <SlotState>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.SlotTriggerType")) { var command2 = (EnumCondition <SlotTriggerType>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } else if (type_name.Contains("Enums.TempoRange")) { var command2 = (EnumCondition <TempoRange>)command; var cur_value = command2.Value; command2.Value = cur_value.EnumRotate(step); } ////// End of Auto generated code }
// code was based on conditionsEditorViewMode::setCondition() public void rotateConditionItself(int which, int step) { ConditionNumber number; if (which == 1) { number = ConditionNumber.One; } else { number = ConditionNumber.Two; } var conditions_editor = this.ConditionsEditor; var conditions_list = conditions_editor.Conditions; var first_modifier = conditions_list.FirstOrDefault(x => x.Text == "M1"); // FIXME: this broken because of the tree removal if (first_modifier == null) { return; } ; int location = conditions_list.IndexOf(first_modifier); var modifier_list = conditions_list.Skip(location).Take(8).ToList(); foreach (var mapping in _mappings) { ACondition cur_condition; if (which == 1) { cur_condition = mapping.Conditions.Condition1; } else { cur_condition = mapping.Conditions.Condition2; } if (cur_condition == null) { continue; // ignore no condition } KnownCommands id = (KnownCommands)cur_condition.Id; if (!((id >= KnownCommands.Modifier_Modifier1) && (id <= KnownCommands.Modifier_Modifier8))) { continue; // ignore non-modifiers } var cur_value = cur_condition.GetValue(); //// int cur_modifier = id - KnownCommands.Modifier_Modifier1 + 1; int new_modifier = rotate_modifier_key_int(cur_modifier, step, 1, 8); MenuItemViewModel item = modifier_list[new_modifier - 1]; ConditionProxy new_proxy = null; ACondition new_condition = null; if (item.Tag is ConditionProxy) { new_proxy = item.Tag as ConditionProxy; } else if (item.Tag is ACondition) { new_condition = item.Tag as ACondition; } if (new_proxy != null) { mapping.SetCondition(number, new_proxy); } else if (new_condition != null) { mapping.SetCondition(number, new_condition); } else { mapping.SetCondition(number, new_condition); // clear condition with null value } cur_condition.SetValue(cur_value); mapping.UpdateConditionExpression(); } conditions_editor.Refresh(); }