base class for all Filter Expressions that are parsed to WHERE clauses by QueryBuilders
Inheritance: ICloneable
コード例 #1
0
 public void RemoveFilterFromGroup(FilterExpressionData Filter)
 {
     FilterExpressions.Remove(Filter);
     for (int i = 0; i < FilterExpressions.Count; i++)
     {
         if (FilterExpressions[i] is FltGroupExprData)
         {
             ((FltGroupExprData)FilterExpressions[i]).RemoveFilterFromGroup(Filter);
         }
     }
 }
コード例 #2
0
 public void ReplaceFilterInGroup(FilterExpressionData oldFilter, FilterExpressionData newFilter)
 {
     for (int i = 0; i < FilterExpressions.Count; i++)
     {
         if (FilterExpressions[i] == oldFilter)
         {
             FilterExpressions[i] = newFilter;
         }
         if (FilterExpressions[i] is FltGroupExprData)
         {
             ((FltGroupExprData)FilterExpressions[i]).ReplaceFilterInGroup(oldFilter, newFilter);
         }
     }
 }
コード例 #3
0
 public FilterGroupEditor(CollectionVM collection, bool vertical, bool isReadOnly, FilterEditor editorContext, FilterExpressionData filter)
     : this(collection, vertical, isReadOnly, editorContext)
 {
     SetFilter(filter);
 }
コード例 #4
0
        public void SetFilter(FilterExpressionData filter)
        {
            Reset();
            this.Filter = filter;
            if (filter != null)
            {
                if (filter is FltAtomExprData)
                {
                    if (filter.HasActiveFilter)
                    {
                        this.Filter = filter;
                        if(_collection != null)// why was this here?: && _collection.AvailableProperties.Any(ap => ap.Path ==(filter as FltAtomExprData).Field))
                            this.SetAtomFilter(new FilterElementEditor(_collection, filter as FltAtomExprData, this.IsPopupMode) {
                                IsReadOnly = this.IsReadOnly,
                                EditorContext = this.EditorContext
                            });
                    }
                }
                else if (filter is FltGroupExprData)
                {
                    var fge = filter as FltGroupExprData;
                    this.Filter = new FltGroupExprData(fge.AndOr);
                    this.JoinType = fge.AndOr;
                    foreach (var f in fge.FilterExpressions)
                    {
                        if (f.HasActiveFilter)
                        {
                            var subGroup = new FilterGroupEditor(_collection, !_vertical, this.IsReadOnly, EditorContext, f);
                            this.AddGroupSubFilter(subGroup);
                        }
                    }
                }
                else if (filter is FltFlatGroupExprData)
                {
                    var fge = filter as FltFlatGroupExprData;
                    this.Filter = new FltFlatGroupExprData(fge.AndOr);
                    this.JoinType = fge.AndOr;
                    foreach (var f in fge.FieldFilters.Values)
                    {
                        if (f.HasActiveFilter)
                        {
                            var subGroup = new FilterGroupEditor(_collection, !_vertical, this.IsReadOnly, EditorContext, f);
                            this.AddGroupSubFilter(subGroup);
                        }
                    }
                }
                this.Negate(filter.Negate);
            }

            if (this.AtomFilter == null && this.SubGroups.Count == 0)
                Reset();
        }
コード例 #5
0
 void UpdateFilter(FilterExpressionData filter)
 {
     if (UpdateFilterFunction != null)
         UpdateFilterFunction(filter);
     if (filter != null && filter.HasActiveFilter)
     {
         this.ActiveBackground = Brushes.Red;
     }
     else
     {
         this.ActiveBackground = Brushes.Transparent;
     }
 }
コード例 #6
0
 public void SetFilter(CollectionVM collection, FilterExpressionData filter)
 {
     _collection = collection;
     Elements = collection.AvailableProperties;
     if (filter != null)
     {
         var fge = new FilterGroupEditor(collection, false, this.IsReadOnly, this);
         fge.SetFilter(filter);
         this.FilterExpr = filter;
         SetRootGroup(fge);
         if (filter != null)
         {
             gStartPanel.Visibility = Visibility.Collapsed;
             MyBorder.Visibility = System.Windows.Visibility.Visible;
             if (!IsReadOnly)
                 spButtons.Visibility = System.Windows.Visibility.Visible;
         }
     }
     else
     {
         this.setProperty(PropertyDefinitionModel.GetEmpty());
     }
 }
コード例 #7
0
 public void ReplaceFilterInGroup(FilterExpressionData oldFilter, FilterExpressionData newFilter)
 {
     for (int i = 0; i < FilterExpressions.Count; i++)
     {
         if (FilterExpressions[i] == oldFilter)
             FilterExpressions[i] = newFilter;
         if (FilterExpressions[i] is FltGroupExprData)
         {
             ((FltGroupExprData)FilterExpressions[i]).ReplaceFilterInGroup(oldFilter, newFilter);
         }
     }
 }
コード例 #8
0
 public void RemoveFilterFromGroup(FilterExpressionData Filter)
 {
     FilterExpressions.Remove(Filter);
     for (int i = 0; i < FilterExpressions.Count; i++)
     {
         if (FilterExpressions[i] is FltGroupExprData)
         {
             ((FltGroupExprData)FilterExpressions[i]).RemoveFilterFromGroup(Filter);
         }
     }
 }