示例#1
0
 public FilterItem(string colName, FilterItemType type)
 {
     ColumnName = colName;
     Type = type;
 }
示例#2
0
        public void TryAdd(FilterItemType type, object value)
        {
            if (value == null)
            {
                return;
            }

            switch (type)
            {
            case FilterItemType.Category:
                if (!Categories.Contains(value.ToString()))
                {
                    Categories.Add(value.ToString());
                }
                break;

            case FilterItemType.Level:
                if (!Levels.Contains(value.ToString()))
                {
                    Levels.Add(value.ToString());
                }
                break;

            case FilterItemType.Operation:
                if (!Operations.Contains(value.ToString()))
                {
                    Operations.Add(value.ToString());
                }
                break;

            case FilterItemType.Organization:
                if (!Organizations.Contains(value.ToString()))
                {
                    Organizations.Add(value.ToString());
                }
                break;

            case FilterItemType.Process:
                if (!Processes.Contains(value.ToString()))
                {
                    Processes.Add(value.ToString());
                }
                break;

            case FilterItemType.ReqId:
                if (!RequestIds.Contains(value.ToString()))
                {
                    RequestIds.Add(value.ToString());
                }
                break;

            case FilterItemType.Thread:
                if (!Threads.Contains(value.ToString()))
                {
                    Threads.Add(value.ToString());
                }
                break;

            default:
                if (Users.All(u => u.Id != ((UserInfo)value).Id))
                {
                    Users.Add((UserInfo)value);
                }
                break;
            }
        }
示例#3
0
 ///<summary>
 ///</summary>
 ///<param name="gridPanel"></param>
 ///<param name="gridColumn"></param>
 ///<param name="filterItemType"></param>
 ///<param name="filterValue"></param>
 ///<param name="filterDisplayValue"></param>
 ///<param name="filterExpr"></param>
 public GridFilterPopupValueChangedEventArgs(GridPanel gridPanel, GridColumn gridColumn,
     FilterItemType filterItemType, object filterValue, object filterDisplayValue, string filterExpr)
     : base(gridPanel, gridColumn)
 {
     _FilterItemType = filterItemType;
     _FilterValue = filterValue;
     _FilterDisplayValue = filterDisplayValue;
     _FilterExpr = filterExpr;
 }
示例#4
0
        /// <summary>
        /// Handles invocation of FilterPopupValueChanged events
        /// </summary>
        internal bool DoFilterPopupValueChangedEvent(GridColumn column, FilterItemType filterItemType,
            ref object filterValue, ref object filterDisplayValue, ref string filterExpr)
        {
            if (FilterPopupValueChanged != null)
            {
                GridFilterPopupValueChangedEventArgs ev = 
                    new GridFilterPopupValueChangedEventArgs(column.GridPanel,
                    column, filterItemType, filterValue, filterDisplayValue, filterExpr);

                FilterPopupValueChanged(this, ev);

                filterValue = ev.FilterValue;
                filterDisplayValue = ev.FilterDisplayValue;
                filterExpr = ev.FilterExpr;

                return (ev.Cancel);
            }

            return (false);
        }
 public FilterItemViewModel(string name, FilterItemType filterType)
 {
     Name       = name;
     IsChecked  = false;
     FilterType = filterType;
 }
示例#6
0
 private void AddBaseItem(ItemPanel itemPanel,
     string name, string text, FilterItemType type, string ellipse)
 {
     if (string.IsNullOrEmpty(text) == false)
         itemPanel.Items.Add(new FilterPopupItem(name, text + ellipse, type));
 }
示例#7
0
 ///<summary>
 /// FilterPopupItem
 ///</summary>
 ///<param name="name"></param>
 ///<param name="text"></param>
 ///<param name="filterItemType"></param>
 ///<param name="value"></param>
 public FilterPopupItem(string name,
     string text, FilterItemType filterItemType, object value)
     : base(name, text)
 {
     _Value = value;
     _FilterItemType = filterItemType;
 }
示例#8
0
 ///<summary>
 /// FilterPopupItem
 ///</summary>
 ///<param name="name"></param>
 ///<param name="text"></param>
 ///<param name="filterItemType"></param>
 public FilterPopupItem(string name, string text, FilterItemType filterItemType)
     : this(name, text, filterItemType, null)
 {
 }
示例#9
0
        private void CheckConditionsConsistency()
        {
            IsInconsistent = false;
            FilterItemType itemType = FilterItemType.Any;

            // Check the conditions twice because some columns cannot set an item type but only
            // check against one. This is only one group so it cannot interfer with another
            // check-only group. But the conditions must be checked twice so that these check-only
            // columns are certainly also evaluated after all other columns. A smart ordering of
            // the conditions would do as well, but that's more work and not necessary right now.
            foreach (var c in Conditions.Concat(Conditions))
            {
                switch (c.Column)
                {
                case FilterColumn.Type:
                    FilterItemType condItemType;
                    if (!Enum.TryParse(c.Value, out condItemType))
                    {
                        return;                                                                          // Half updated
                    }
                    if (itemType != condItemType &&
                        itemType != FilterItemType.Any &&
                        condItemType != FilterItemType.Any)
                    {
                        IsInconsistent = true;
                        return;
                    }
                    itemType = condItemType;
                    break;

                case FilterColumn.TextText:
                    if (itemType != FilterItemType.Text &&
                        itemType != FilterItemType.DebugOutput &&
                        itemType != FilterItemType.Any)
                    {
                        IsInconsistent = true;
                        return;
                    }
                    itemType = FilterItemType.Text;                               // NOTE: Could be DebugOutput as well, but that's unlikely
                    break;

                case FilterColumn.TextDetails:
                    if (itemType != FilterItemType.Text &&
                        itemType != FilterItemType.Any)
                    {
                        IsInconsistent = true;
                        return;
                    }
                    itemType = FilterItemType.Text;
                    break;

                case FilterColumn.DataName:
                case FilterColumn.DataValue:
                    if (itemType != FilterItemType.Data &&
                        itemType != FilterItemType.Any)
                    {
                        IsInconsistent = true;
                        return;
                    }
                    itemType = FilterItemType.Data;
                    break;

                case FilterColumn.ExceptionType:
                case FilterColumn.ExceptionMessage:
                case FilterColumn.ExceptionCode:
                case FilterColumn.ExceptionData:
                case FilterColumn.ExceptionContext:
                    if (itemType != FilterItemType.Exception /*&&
                                                              * itemType != FilterItemType.ExceptionRecursive*/&&
                        itemType != FilterItemType.Any)
                    {
                        IsInconsistent = true;
                        return;
                    }
                    itemType = FilterItemType.Exception;
                    break;

                case FilterColumn.ScopeType:
                case FilterColumn.ScopeLevel:
                case FilterColumn.ScopeName:
                case FilterColumn.ScopeIsBackgroundThread:
                case FilterColumn.ScopeIsPoolThread:
                    if (itemType != FilterItemType.Scope &&
                        itemType != FilterItemType.Any)
                    {
                        IsInconsistent = true;
                        return;
                    }
                    itemType = FilterItemType.Scope;
                    break;

                case FilterColumn.EnvironmentProcessId:
                case FilterColumn.EnvironmentCommandLine:
                case FilterColumn.EnvironmentAppVersion:
                case FilterColumn.EnvironmentUserName:
                case FilterColumn.EnvironmentIsAdministrator:
                case FilterColumn.EnvironmentIsInteractive:
                case FilterColumn.EnvironmentOSType:
                case FilterColumn.EnvironmentOSVersion:
                case FilterColumn.EnvironmentCpuCount:
                case FilterColumn.EnvironmentHostName:
                case FilterColumn.EnvironmentTotalMemory:
                case FilterColumn.EnvironmentScreenDpi:
                    if (itemType != FilterItemType.Text &&
                        itemType != FilterItemType.Data &&
                        itemType != FilterItemType.Exception /*&&
                                                              * itemType != FilterItemType.ExceptionRecursive*/&&
                        itemType != FilterItemType.Scope &&
                        itemType != FilterItemType.Any)
                    {
                        IsInconsistent = true;
                        return;
                    }
                    // Cannot set an item type because multiple types are allowed
                    break;

                case FilterColumn.EnvironmentCurrentDirectory:
                case FilterColumn.EnvironmentCultureName:
                case FilterColumn.EnvironmentProcessMemory:
                case FilterColumn.EnvironmentPeakProcessMemory:
                case FilterColumn.EnvironmentAvailableMemory:
                case FilterColumn.EnvironmentEnvironmentVariables:
                    if (itemType != FilterItemType.Exception /*&&
                                                              * itemType != FilterItemType.ExceptionRecursive*/&&
                        itemType != FilterItemType.Scope &&
                        itemType != FilterItemType.Any)
                    {
                        IsInconsistent = true;
                        return;
                    }
                    // Cannot set an item type because two types are allowed
                    break;
                }
            }
        }