Inheritance: Zetbox.Client.Presentables.ViewModel
Example #1
0
        public void AddFilter(IFilterModel mdl, bool allowRemove, IEnumerable <Property> sourceProperties)
        {
            InitializeFilter();
            _filter.Add(mdl);
            if (mdl is IUIFilterModel)
            {
                var uimdl = (IUIFilterModel)mdl;

                var vmdl = FilterViewModel.Fetch(ViewModelFactory, DataContext, this, uimdl);
                vmdl.RequestedKind         = uimdl.RequestedKind;
                vmdl.RespectRequiredFilter = RespectRequiredFilter;

                var levmdl = FilterListEntryViewModel.Fetch(ViewModelFactory, DataContext, this, vmdl);
                levmdl.IsUserFilter     = allowRemove;
                levmdl.SourceProperties = sourceProperties;

                // attach change events
                uimdl.FilterChanged += new EventHandler(delegate(object s, EventArgs a)
                {
                    var f = s as FilterModel;
                    if (f == null || !f.RefreshOnFilterChanged)
                    {
                        return;
                    }

                    if (f.IsServerSideFilter)
                    {
                        OnExecuteFilter();
                    }
                    else
                    {
                        OnExecutePostFilter();
                    }
                });

                _FilterViewModels.Add(vmdl);
                _FilterListEntryViewModels.Add(levmdl);
            }
            if (allowRemove)
            {
                UpdateRespectRequieredFilter();
            }

            OnPropertyChanged("RespectRequiredFilter");
            OnPropertyChanged("HasUserFilter");
            OnPropertyChanged("Filter");
            OnPropertyChanged("FilterViewModels");
            OnPropertyChanged("FilterListEntryViewModels");
        }
Example #2
0
        public bool RemoveFilter(IFilterModel mdl)
        {
            if (!_filter.Remove(mdl))
            {
                return(false);
            }
            if (mdl is IUIFilterModel)
            {
                var uimdl  = (IUIFilterModel)mdl;
                var vmdl   = FilterViewModel.Fetch(ViewModelFactory, DataContext, this, uimdl);
                var levmdl = FilterListEntryViewModel.Fetch(ViewModelFactory, DataContext, this, vmdl);

                _FilterViewModels.Remove(vmdl);
                _FilterListEntryViewModels.Remove(levmdl);
            }
            UpdateRespectRequieredFilter();

            OnPropertyChanged("RespectRequiredFilter");
            OnPropertyChanged("HasUserFilter");
            OnPropertyChanged("Filter");
            OnPropertyChanged("FilterViewModels");
            OnPropertyChanged("FilterListEntryViewModels");
            return(true);
        }