public FilterItem(string colName, FilterItemType type) { ColumnName = colName; Type = type; }
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; } }
///<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; }
/// <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; }
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)); }
///<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; }
///<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) { }
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; } } }