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); } } }
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); } } }
public FilterGroupEditor(CollectionVM collection, bool vertical, bool isReadOnly, FilterEditor editorContext, FilterExpressionData filter) : this(collection, vertical, isReadOnly, editorContext) { SetFilter(filter); }
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(); }
void UpdateFilter(FilterExpressionData filter) { if (UpdateFilterFunction != null) UpdateFilterFunction(filter); if (filter != null && filter.HasActiveFilter) { this.ActiveBackground = Brushes.Red; } else { this.ActiveBackground = Brushes.Transparent; } }
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()); } }
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); } } }