private void processTextChange() { textTimer = Clock.NULL_ALARM; bool wasOff = txtFilter.Text.Length == 0; string[] ss = txtFilter.Text.ToLowerInvariant().Split(splitArray, MAX_SEARCH_STRINGS, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < ss.Length; i++) { searchStrings[i] = ss[i]; } tex = textArray[ss.Length]; if (searchStrings.Length > 0) { if (AllowEvents) { FilterValueChanged.Invoke(FilterType.Text, txtFilter.Text, wasOff, false); } } else { if (AllowEvents) { FilterReleased.Invoke(FilterType.Text); } } }
/// <summary> /// Proběhne po změně hodnoty filtru. /// Metoda vyvolá <see cref="OnFilterValueChanged(DxFilterBoxChangeArgs)"/> a event <see cref="FilterValueChanged"/>. /// <para/> /// Metoda nastaví <see cref="LastFilterValue"/> = <see cref="CurrentFilterValue"/> (tedy poslední známá hodntoa filtru = aktuální hodnota). /// Tím se změní hodnota <see cref="CurrentFilterIsChanged"/> na false = filtr od této chvíle neobsahuje změnu. /// </summary> private void RunFilterValueChanged(DxFilterBoxChangeEventSource eventSource) { var currentFilter = this.CurrentFilterValue; DxFilterBoxChangeArgs args = new DxFilterBoxChangeArgs(currentFilter, eventSource); this.LastFilterValue = currentFilter; // Od teď bude hodnota CurrentFilterIsChanged = false; OnFilterValueChanged(args); FilterValueChanged?.Invoke(this, args); }
public void ReleaseFilter() { if (this.ValueType != FilterValueType.None) { filterValue = String.Empty; this.ValueType = FilterValueType.None; FilterValueChanged.Invoke(this, false); updateToolTip(); this.Invalidate(); } }
private void filterChanged(FilterButton FilterButton, bool WasOff) { RemoveFilterIndex(); switch (FilterButton.ValueType) { case FilterValueType.StartChar: FilterButton.ValueType = FilterValueType.StartChar; switch (FilterButton.FilterType) { case FilterType.Playlist: ply = t => Database.GetPlaylistTracks(FilterButton.StartChar); break; case FilterType.Genre: gen = t => t.FindAll(ti => ti.Genre.Length > 0 && Char.ToUpperInvariant(ti.Genre[0]) == fltGenre.StartChar); break; case FilterType.Artist: art = t => t.FindAll(ti => ti.MainGroupNoThe.Length > 0 && Char.ToUpperInvariant(ti.MainGroupNoThe[0]) == fltArtist.StartChar); break; case FilterType.Album: alb = t => t.FindAll(ti => ti.Album.Length > 0 && Char.ToUpperInvariant(ti.Album[0]) == fltAlbum.StartChar); break; case FilterType.Year: yr = t => t.FindAll(ti => ti.DecadeChar == fltYear.StartChar); break; case FilterType.Grouping: gpg = t => t.FindAll(ti => ti.Grouping.Length > 0 && Char.ToUpperInvariant(ti.Grouping[0]) == fltGrouping.StartChar); break; } if (AllowEvents) { FilterValueChanged.Invoke(FilterButton.FilterType, FilterButton.FilterValue, WasOff, true); } break; case FilterValueType.SpecificValue: switch (FilterButton.FilterType) { case FilterType.Playlist: ply = t => Database.GetPlaylistTracks(fltPlaylist.FilterValue); break; case FilterType.Genre: gen = t => t.FindAll(ti => ti.Genre == fltGenre.FilterValue); break; case FilterType.Artist: art = t => t.FindAll(ti => ti.MainGroup == fltArtist.FilterValue); break; case FilterType.Album: alb = t => t.FindAll(ti => ti.Album == fltAlbum.FilterValue); break; case FilterType.Year: yr = t => t.FindAll(ti => ti.YearString == fltYear.FilterValue); break; case FilterType.Grouping: gpg = t => t.FindAll(ti => ti.Grouping == fltGrouping.FilterValue); break; } if (AllowEvents) { FilterValueChanged.Invoke(FilterButton.FilterType, FilterButton.FilterValue, WasOff, false); } break; case FilterValueType.None: switch (FilterButton.FilterType) { case FilterType.Playlist: ply = t => t; break; case FilterType.Genre: gen = t => t; break; case FilterType.Artist: art = t => t; break; case FilterType.Album: alb = t => t; break; case FilterType.Year: yr = t => t; break; case FilterType.Grouping: gpg = t => t; break; } if (AllowEvents) { FilterReleased.Invoke(FilterButton.FilterType); } break; } arrangeControls(); }