Ejemplo n.º 1
0
        /// <summary>
        /// Default method to be called for filter types for that type-specific handling was not implemented.
        /// </summary>
        /// <param name="filter">Filter to handle.</param>
        /// <remarks>
        /// This is the default Visit method that should be called only for parameter of type
        /// that is not handled by Visit methods defined for specific filter types.
        /// </remarks>
        public void Visit(ISearchFilter filter)
        {
            AssertIsValidFilterInstance(filter);

            Label filteringNotSupportedInfo = new Label();

            filteringNotSupportedInfo.Content = "Filtering control is not available for this filter type.";
            filteringNotSupportedInfo.ToolTip = filter.Description;

            FilterControl = GetControlForFilter(filteringNotSupportedInfo, filter);
        }
Ejemplo n.º 2
0
        public void Visit(BooleanFilter filter)
        {
            AssertIsValidFilterInstance(filter);

            CheckBox checkBox = new CheckBox();

            checkBox.ToolTip     = filter.Description;
            checkBox.DataContext = filter;
            SetBindingToControl(nameof(BooleanFilter.IsSelected), CheckBox.IsCheckedProperty, checkBox);

            FilterControl = GetControlForFilter(checkBox, filter);
        }
Ejemplo n.º 3
0
        public void Visit(StringFilter filter)
        {
            AssertIsValidFilterInstance(filter);

            TextBox textBox = new TextBox();

            textBox.ToolTip     = filter.Description;
            textBox.DataContext = filter;
            SetBindingToControl(nameof(StringFilter.MatchPattern), TextBox.TextProperty, textBox);

            FilterControl = GetControlForFilter(textBox, filter);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Method that creates controls set for a single control input filter.
        /// </summary>
        /// <param name="inputCtrl">Main input element that allows to specify criteria.</param>
        /// <param name="filter">Associated filter definition instance.</param>
        /// <returns>Controls set for defining a single filter matching criteria.</returns>
        private FilterDefinitionControl GetControlForFilter(FrameworkElement inputCtrl, ISearchFilter filter)
        {
            var filterControl = new FilterDefinitionControl();

            filterControl.SetFilterSpecificControls(filter.Name, inputCtrl);
            filterControl.DataContext = filter;

            SetBindingToControl(nameof(ISearchFilter.IsFilterEnabled), FilterDefinitionControl.IsFilterEnabledProperty, filterControl, BindingMode.TwoWay);
            SetBindingToControl(nameof(ISearchFilter.IsFilterEnabled), FilterDefinitionControl.IsEnabledProperty, filterControl, BindingMode.OneWay);

            return(filterControl);
        }
Ejemplo n.º 5
0
        public void Visit(DropDownFilter filter)
        {
            AssertIsValidFilterInstance(filter);

            ComboBox availableValuesCtrl = new ComboBox();

            availableValuesCtrl.ItemsSource       = filter.AvailableValues;
            availableValuesCtrl.SelectedValuePath = "Key";
            availableValuesCtrl.DisplayMemberPath = "Value";

            if (filter.SelectedValue != null)
            {
                availableValuesCtrl.SelectedValue = filter.SelectedValue;
            }
            SetBindingToControl(nameof(DropDownFilter.SelectedValue), ComboBox.SelectedValueProperty, availableValuesCtrl);

            FilterControl = GetControlForFilter(availableValuesCtrl, filter);
        }