private void SetControlVisibility() { this.operatorComboBox.Visible = false; this.parameterIndexNumericUpDown.Visible = false; this.valueComboBox.Visible = false; this.buttonValueInputHelper.Visible = false; if (conditionComboBox.SelectedItem != null) { string conditionName = conditionComboBox.SelectedItem.ToString(); IConditionDef conditionDef = RuleEngine.GetConditionManager().GetConditionDef(conditionName); if (conditionDef is AbstractAtomicConditionDef) { if (conditionDef == NativeSignatureConditionDef.GetInstance()) { this.operatorComboBox.Visible = true; this.valueComboBox.Visible = true; this.buttonValueInputHelper.Visible = true; } else if (conditionDef == NativeParameterIndexConditionDef.GetInstance()) { this.operatorComboBox.Visible = true; this.parameterIndexNumericUpDown.Visible = true; } else { this.operatorComboBox.Visible = true; this.valueComboBox.Visible = true; } return; } } // Composite Condition or Empty Condition this.Width = conditionComboBox.Width; }
private void UpdateOperatorComboBox() { if (conditionComboBox.SelectedItem == null) { return; } string conditionName = conditionComboBox.SelectedItem.ToString(); IConditionDef conditionDef = RuleEngine.GetConditionManager().GetConditionDef(conditionName); if (conditionDef is AbstractAtomicConditionDef) { // Init Operators List <IOperator> operatorList = RuleEngine.GetOperatorManager().GetPossibleOperatorList(conditionDef); operatorComboBox.Items.Clear(); foreach (IOperator Operator in operatorList) { operatorComboBox.Items.Add(Operator.GetOperatorName()); } // default for operator if (operatorComboBox.Items.Count != 0) { operatorComboBox.SelectedIndex = 0; } else { operatorComboBox.SelectedIndex = -1; } } }
/// <summary> /// Create condition using the IConditionDef whose name is "conditionName". /// </summary> public ICondition CreateCondition(string conditionName) { if (m_registeredConditionDef.ContainsKey(conditionName)) { IConditionDef conditionDef = m_registeredConditionDef[conditionName]; ICondition action = conditionDef.Create(); return(action); } return(null); }
public List<IOperator> GetPossibleOperatorList(IConditionDef conditionDef) { var operatorList = new List<IOperator>(); var enumerator = m_registeredOperator.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Current.Value.CanApplyToCondition(conditionDef)) operatorList.Add(enumerator.Current.Value); } return operatorList; }
private void UpdateValuePart() { if (conditionComboBox.SelectedItem == null) { return; } string conditionName = conditionComboBox.SelectedItem.ToString(); IConditionDef conditionDef = RuleEngine.GetConditionManager().GetConditionDef(conditionName); if (conditionDef is AbstractAtomicConditionDef) { AbstractAtomicConditionDef atomicConditionDef = conditionDef as AbstractAtomicConditionDef; if (atomicConditionDef == NativeParameterIndexConditionDef.GetInstance()) { valueComboBox.Visible = false; parameterIndexNumericUpDown.Visible = true; } else { parameterIndexNumericUpDown.Visible = false; valueComboBox.Visible = true; valueComboBox.Text = ""; valueComboBox.Items.Clear(); // Disable valueComboBox? If yes, we need the ValueInputHelper. if (atomicConditionDef == NativeSignatureConditionDef.GetInstance()) { valueComboBox.Enabled = false; } else { valueComboBox.Enabled = true; } List <string> list = atomicConditionDef.GetMostPossibleValues(); if (list != null) { foreach (string stringValue in list) { valueComboBox.Items.Add(stringValue); } if (valueComboBox.Items.Count != 0) { valueComboBox.SelectedIndex = 0; } } } } }
public List <IOperator> GetPossibleOperatorList(IConditionDef conditionDef) { List <IOperator> operatorList = new List <IOperator>(); Dictionary <string, IOperator> .Enumerator enumerator = m_registeredOperator.GetEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Current.Value.CanApplyToCondition(conditionDef)) { operatorList.Add(enumerator.Current.Value); } } return(operatorList); }
private void buttonValueInputHelper_Click(object sender, EventArgs e) { string conditionName = conditionComboBox.SelectedItem.ToString(); IConditionDef conditionDef = RuleEngine.GetConditionManager().GetConditionDef(conditionName); if (conditionDef == NativeSignatureConditionDef.GetInstance()) { NativeSignatureInputHelper form = null; if (valueComboBox.Text.Trim().Equals("")) { form = new NativeSignatureInputHelper(); } else { form = new NativeSignatureInputHelper(valueComboBox.Text); } if (form.ShowDialog() == DialogResult.OK) { valueComboBox.Text = form.GetTypeString(); } } }
public bool CanApplyToCondition(IConditionDef conditionCreator) { return possibleConditionDefList.Contains(conditionCreator); }
/// <summary> /// Register a condition in this manager. /// The condition name is used as the key of IConditionDef in the register collection. /// Usually, this method is called in the ctor of AbstractConditionManager's sub classes. /// </summary> protected void RegisterCondition(string conditionName, IConditionDef conditionDef) { m_registeredConditionDef.Add(conditionName, conditionDef); }
/// <summary> /// Register a condition in this manager. /// The condition name is used as the key of IConditionDef in the register collection. /// Usually, this method is called in the ctor of AbstractConditionManager's sub classes. /// </summary> protected void RegisterCondition(string conditionName, IConditionDef conditionDef) { m_registeredConditionDef.Add(conditionName, conditionDef); }
public bool CanApplyToCondition(IConditionDef conditionCreator) { return(possibleConditionDefList.Contains(conditionCreator)); }