Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        public void ReleaseFilter()
        {
            if (this.ValueType != FilterValueType.None)
            {
                filterValue    = String.Empty;
                this.ValueType = FilterValueType.None;

                FilterValueChanged.Invoke(this, false);

                updateToolTip();

                this.Invalidate();
            }
        }
Ejemplo n.º 4
0
        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();
        }