示例#1
0
        public virtual void AcceptChanges()
        {
            fListMan.Filter.Clear();

            int num = dataGridView1.Rows.Count;

            for (int r = 0; r < num; r++)
            {
                DataGridViewRow row = dataGridView1.Rows[r];

                // ".Value" can be null, so that we should to use direct cast
                string fld = (string)row.Cells[0].Value;
                string cnd = (string)row.Cells[1].Value;
                string val = (string)row.Cells[2].Value;

                if (!string.IsNullOrEmpty(fld))
                {
                    int colId = GetFieldColumnId(fld);
                    if (colId != -1)
                    {
                        ConditionKind cond = GetCondByName(cnd);
                        fListMan.AddCondition((byte)colId, cond, val);
                    }
                }
            }

            DialogResult = DialogResult.OK;
        }
示例#2
0
        public void AddCondition(byte columnId, ConditionKind condition, string value)
        {
            object condValue = ConvertColumnStr(value, GetColumnDataType(columnId));

            FilterCondition fltCond = new FilterCondition(columnId, condition, condValue);

            fFilter.Conditions.Add(fltCond);
        }
 private List <IActionQueueParsingCondition> CreateKindList(ConditionKind kind)
 {
     return
         (triggersDataContext.ActionQueueTriggerConfig.Conditions.Where(
              pair => pair.Value.ConditionKind == kind && !pair.Value.Disabled)
          .Select(pair => pair.Value)
          .Cast <IActionQueueParsingCondition>()
          .ToList());
 }
示例#4
0
        public ConditionKind GetCondByName(string condName)
        {
            ConditionKind res = ConditionKind.ck_NotEq;

            for (ConditionKind pl = ConditionKind.ck_NotEq; pl <= ConditionKind.ck_NotContains; pl++)
            {
                if (GKData.CondSigns[(int)pl] == condName)
                {
                    res = pl;
                    break;
                }
            }

            return(res);
        }
        void MergeDefault(string guidString, string pattern, ConditionKind conditionKind, MatchingKind matchingKind)
        {
            var id = new Guid(guidString);

            if (!triggersDataContext.ActionQueueTriggerConfig.Conditions.ContainsKey(id))
            {
                triggersDataContext.ActionQueueTriggerConfig.Conditions.Add(
                    id,
                    new Condition(id, true)
                {
                    MatchingKind  = matchingKind,
                    ConditionKind = conditionKind,
                    Disabled      = false,
                    Pattern       = pattern
                });
            }
        }
示例#6
0
 public static ConditionNode Condition(
     string field       = Defaults.Field,
     string scope       = Defaults.Scope,
     decimal value      = Defaults.SelectorValue,
     string childId     = Defaults.ChildId,
     ConditionKind type = ConditionKind.EqualTo)
 {
     return(Condition(
                field: field,
                scope: scope,
                value: value,
                isValuePercentage: false,
                shared: true,
                includeChildSelections: false,
                includeChildForces: false,
                childId: childId,
                type: type));
 }
示例#7
0
        public FilterCondition this[int index]
        {
            get {
                DataGridViewRow row = Rows[index];

                // ".Value" can be null, so that we should to use direct cast
                string fld = (string)row.Cells[0].Value;
                string cnd = (string)row.Cells[1].Value;
                string val = (string)row.Cells[2].Value;

                FilterCondition fcond = null;
                if (!string.IsNullOrEmpty(fld))
                {
                    int colId = fListMan.GetFieldColumnId(fFields, fld);
                    if (colId != -1)
                    {
                        ConditionKind cond = fListMan.GetCondByName(cnd);
                        fcond = new FilterCondition((byte)colId, cond, val);
                    }
                }
                return(fcond);
            }
        }
示例#8
0
 public FilterCondition(int columnIndex, ConditionKind condition, object value)
 {
     ColumnIndex = columnIndex;
     Condition   = condition;
     Value       = value;
 }
        private void DrawConditionList(string aLabel, ref AntAIScenarioItem[] aConditions, ConditionKind aConditionKind)
        {
            GUILayout.BeginVertical();
            {
                var c = GUI.color;
                GUILayout.BeginHorizontal();
                {
                    EditorGUILayout.LabelField(aLabel, EditorStyles.boldLabel);
                    GUILayout.FlexibleSpace();
                    if (GUILayout.Button("", "OL Plus"))
                    {
                        var menu = new GenericMenu();
                        for (int i = 0, n = _scenario.conditions.list.Length; i < n; i++)
                        {
                            switch (aConditionKind)
                            {
                            case ConditionKind.Pre:
                                menu.AddItem(new GUIContent(_scenario.conditions.list[i].name), false, OnAddPreCondition, _scenario.conditions.list[i].name);
                                break;

                            case ConditionKind.Post:
                                menu.AddItem(new GUIContent(_scenario.conditions.list[i].name), false, OnAddPostCondition, _scenario.conditions.list[i].name);
                                break;
                            }
                        }
                        menu.ShowAsContext();
                    }
                }
                GUILayout.EndHorizontal();

                if (aConditions.Length == 0)
                {
                    GUILayout.Label("<Empty>", EditorStyles.centeredGreyMiniLabel);
                }
                else
                {
                    int delIndex = -1;
                    for (int i = 0, n = aConditions.Length; i < n; i++)
                    {
#if UNITY_2019_3_OR_NEWER
                        GUILayout.BeginHorizontal();
#else
                        GUILayout.BeginHorizontal("Icon.ClipSelected");
#endif
                        {
                            GUILayout.Space(4.0f);
                            GUI.color = c * ((aConditions[i].value)
                                                                ? new Color(0.5f, 1.0f, 0.5f) // green
                                                                : new Color(1.0f, 0.5f, 0.5f) // red
                                             );

                            if (GUILayout.Button(AntAIWorkbench.BoolToStr(aConditions[i].value), _badgeStyle, GUILayout.MaxWidth(20.0f), GUILayout.MaxHeight(20.0f)))
                            {
                                aConditions[i].value = !aConditions[i].value;
                            }

#if UNITY_2019_3_OR_NEWER
                            GUILayout.Label(_scenario.conditions.GetName(aConditions[i].id), _labelStyle);
#else
                            GUILayout.Label(_scenario.conditions.GetName(aConditions[i].id));
#endif
                            GUI.color = c;
                            if (GUILayout.Button("", "OL Minus", GUILayout.MaxWidth(18.0f), GUILayout.MaxHeight(18.0f)))
                            {
                                delIndex = i;
                            }
                        }
                        GUILayout.EndHorizontal();
                    }

                    if (delIndex > -1)
                    {
                        AntArray.RemoveAt(ref aConditions, delIndex);
                    }
                }
            }
            GUILayout.EndVertical();
        }