public SortAndFilterViewModel(ITemplateView rootTemplateView)
        {
            this.rootTemplateView = rootTemplateView;

            TemplateViewModels = new List <TemplateViewModel>();
            PopulateTemplates(this.rootTemplateView.TemplateDefinition, new IBindingContext[] { this.rootTemplateView.BindingContext });
        }
 public void RemoveView(ITemplateView view)
 {
     if (view != null && view.Ident != null)
     {
         lock (syncRoot)
         {
             try
             {
                 viewById.Remove(view.Ident);
                 if (view.TemplateDefinition != null)
                 {
                     if (viewsByTemplateDefinition.ContainsKey(view.TemplateDefinition.Name))
                     {
                         viewsByTemplateDefinition[view.TemplateDefinition.Name].Remove(view);
                     }
                 }
                 view.Dispose();
             }
             catch (Exception ex)
             {
                 string message = $"Remove view '{view.Ident}' failed. {ex.Message}";
                 throw new BindingTemplateException(message);
             }
         }
     }
 }
 public void AddView(ITemplateView view)
 {
     if (view != null)
     {
         lock (syncRoot)
         {
             try
             {
                 if (view.TemplateDefinition == null)
                 {
                     throw new BindingTemplateException("the template dataAccessor cannot be null");
                 }
                 if (GetTemplateDefinition(view.TemplateDefinition.Name) != null)
                 {
                     viewsByTemplateDefinition[view.TemplateDefinition.Name].Add(view);
                 }
                 viewById[view.Ident] = view;
             }
             catch (Exception ex)
             {
                 throw new BindingTemplateException($"Cannot add view '{view.Ident}'.{ex.Message}", ex);
             }
         }
     }
 }
Example #4
0
        protected override void ExecuteFilter(ITemplateView view)
        {
            object dataSource = view.GetDataSource();

            ETKExcel.TemplateManager.ClearView(view as ExcelTemplateView);
            // We reinject the datasource to force the filtering
            ((TemplateView)view).CreateBindingContext(dataSource);
            // RenderView the view to see the filering application
            ETKExcel.TemplateManager.Render(view as ExcelTemplateView);
        }
 protected override Task Context()
 {
     _view = A.Fake <ITemplateView>();
     _templateTaskQuery     = A.Fake <ITemplateTaskQuery>();
     _applicationController = A.Fake <IApplicationController>();
     _dialogCreator         = A.Fake <IDialogCreator>();
     _startOptions          = A.Fake <IStartOptions>();
     _configuration         = A.Fake <IApplicationConfiguration>();
     sut = new TemplatePresenter(_view, _templateTaskQuery, _applicationController, _dialogCreator, _startOptions, _configuration);
     return(_completed);
 }
        public ITemplateView GetView(Guid ident)
        {
            ITemplateView view = null;

            if (ident != null)
            {
                lock (syncRoot)
                {
                    viewById.TryGetValue(ident, out view);
                }
            }
            return(view);
        }
Example #7
0
        public SortAndFilerWindow(ITemplateView rootTemplateView)
        {
            if (System.Windows.Application.Current == null)
            {
                new System.Windows.Application();
                System.Windows.Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
            }


            InitializeComponent();

            SortAndFilterViewModel viewModel = new SortAndFilterViewModel(rootTemplateView);

            this.DataContext = viewModel;
        }
        protected BindingFilterContextItem(ITemplateView view, BindingFilterDefinition bindingFilterDefinition, IBindingContextElement bindingContextElement)
            : base(bindingContextElement, null)
        {
            this.view = (TemplateView)view;
            this.bindingFilterDefinition = bindingFilterDefinition;
            this.bindingContextElement   = bindingContextElement;

            Dictionary <BindingFilterDefinition, string> filterDefinitionByElement;

            if (!((TemplateView)view).FilterValueByFilterDefinitionByElement.TryGetValue(bindingContextElement.DataSource, out filterDefinitionByElement))
            {
                filterDefinitionByElement = new Dictionary <BindingFilterDefinition, string>();
                ((TemplateView)view).FilterValueByFilterDefinitionByElement[bindingContextElement.DataSource] = filterDefinitionByElement;
            }

            string filterValue;

            filterDefinitionByElement.TryGetValue(bindingFilterDefinition, out filterValue);

            FilterValue = filterValue;
        }
Example #9
0
 public SiteTemplatePresenter(ITemplateView view)
 {
     _view = view;
 }
 public ExcelBindingSearchContextItem(ITemplateView view, BindingSearchDefinition definition, IBindingContextElement parent)
     : base(view, definition, parent)
 {
     ((ExcelTemplateView)view).RegisterSearchControl(this);
 }
Example #11
0
 public static void SetSearchValue(ITemplateView concernedView, IExcelTestTopic topic)
 {
     concernedView.SearchValue = concernedView.SearchValue == topic.Description ? null : topic.Description;
     concernedView.ExecuteSearch();
 }
Example #12
0
 private RootBindingFilter(ITemplateView view, BindingFilterDefinition bindingFilterDefinition, string filterValue)
 {
     this.view = (TemplateView)view;
     this.bindingFilterDefinition = bindingFilterDefinition;
     FilterValue = filterValue;
 }
Example #13
0
        public BindingContext(IBindingContextElement parent, ITemplateView owner, ITemplateDefinition templateDefinition, object dataSource, List <IFilterDefinition> templatedFilters)
        {
            try
            {
                if (owner == null)
                {
                    throw new ArgumentNullException("The parameter 'owner' cannot be null");
                }
                if (templateDefinition == null)
                {
                    throw new ArgumentNullException("The parameter 'templateDefinition' cannot be null");
                }

                Owner = owner;
                TemplateDefinition = templateDefinition;
                TemplatedFilters   = templatedFilters;
                IsExpanded         = TemplateDefinition.TemplateOption.HeaderAsExpander != HeaderAsExpander.StartClosed;

                //TemplatedSortsAndFilters = templatedSortsAndFilters;
                Parent     = parent;
                DataSource = dataSource;

                if (DataSource != null)
                {
                    List <object>      dataSourceAsList;
                    IBindingDefinition dataSourceType;
                    if (DataSource is IEnumerable)
                    {
                        dataSourceAsList = (DataSource as IEnumerable).Cast <object>().ToList();
                        dataSourceType   = BindingDefinitionRoot.CreateInstance(dataSourceAsList.GetType());
                    }
                    else
                    {
                        dataSourceAsList = new List <object>();
                        dataSourceAsList.Add(DataSource); //new object[] { DataSource };
                        dataSourceType = BindingDefinitionRoot.CreateInstance(DataSource.GetType());
                    }

                    if (TemplateDefinition.MainBindingDefinition != null)
                    {
                        CheckType(TemplateDefinition.MainBindingDefinition, dataSourceType);
                    }

                    ISortersAndFilters externalSortersAndFilters = null;
                    owner.ExternalSortersAndFilters?.TryGetValue(TemplateDefinition, out externalSortersAndFilters);

                    //Occurrences = dataSourceAsList.Count;
                    if (TemplateDefinition.Body != null)
                    {
                        IEnumerable <IFilterDefinition> templatedFiltersToTakeIntoAccount = null;
                        if (templatedFilters != null)
                        {
                            IEnumerable <IFilterDefinition> templatedFiltersToTakeIntoAccountFound = templatedFilters.Where(tf => tf.TemplateDefinition == templateDefinition);
                            if (templatedFiltersToTakeIntoAccountFound.Any())
                            {
                                templatedFiltersToTakeIntoAccount = templatedFiltersToTakeIntoAccountFound;
                            }
                        }

                        ISorterDefinition[] sortersDefinition = null;
                        if (((TemplateView)owner).SorterDefinition != null && ((TemplateView)owner).SorterDefinition.TemplateDefinition == templateDefinition)
                        {
                            sortersDefinition = new ISorterDefinition[] { ((TemplateView)owner).SorterDefinition }
                        }
                        ;

                        ISortersAndFilters sortersAndFilters = null;
                        if (templatedFilters != null || sortersDefinition != null)
                        {
                            sortersAndFilters = SortersAndFilterersFactory.CreateInstance(templateDefinition, templatedFiltersToTakeIntoAccount, sortersDefinition);
                        }
                        Body = BindingContextPart.CreateBodyBindingContextPart(this, TemplateDefinition.Body, dataSourceAsList, externalSortersAndFilters, sortersAndFilters);
                    }

                    if (TemplateDefinition.Header != null)
                    {
                        Header = BindingContextPart.CreateHeaderOrFooterBindingContextPart(this, TemplateDefinition.Header, BindingContextPartType.Header, DataSource);
                    }
                    if (TemplateDefinition.Footer != null)
                    {
                        Footer = BindingContextPart.CreateHeaderOrFooterBindingContextPart(this, TemplateDefinition.Footer, BindingContextPartType.Header, DataSource);
                    }
                }
            }
            catch (Exception ex)
            {
                string message = $"Create the 'BindingContext' for template '{(templateDefinition == null ? string.Empty : templateDefinition.Name)}' failed . {ex.Message}";
                throw new EtkException(message);
            }
        }
 public override BindingSearchContextItem CreateContextItem(ITemplateView view, IBindingContextElement parent)
 {
     return(new ExcelBindingSearchContextItem(view, this, parent));
 }
        public static void DisplaySortAndFilterWindow(System.Windows.Forms.IWin32Window owner, ITemplateView templateView)
        {
            //SortAndFilterViewModel viewModel = new SortAndFilterViewModel(templateView);
            SortAndFilerWindow window = new SortAndFilerWindow(templateView);

            if (owner != null)
            {
                WindowInteropHelper windowInteropHelper = new WindowInteropHelper(window);
                windowInteropHelper.Owner = owner.Handle;
                window.ShowDialog();
            }
            else
            {
                window.ShowDialog();
            }
        }
 public static void DisplaySortAndFilterWindow(ITemplateView templateView)
 {
     DisplaySortAndFilterWindow(null, templateView);
 }
 protected BindingSearchContextItem(ITemplateView view, BindingSearchDefinition definition, IBindingContextElement parent)
     : base(parent, null)
 {
     this.view       = (TemplateView)view;
     this.definition = definition;
 }
 public abstract BindingSearchContextItem CreateContextItem(ITemplateView view, IBindingContextElement parent);
 protected abstract void ExecuteFilter(ITemplateView view);
 public void SetUp()
 {
     _view = MockRepository.GenerateMock<ITemplateView>();
 }
Example #21
0
 public ExcelBindingFilterContextItem(ITemplateView view, BindingFilterDefinition bindingFilterDefinition, IBindingContextElement bindingContextElement)
     : base(view, bindingFilterDefinition, bindingContextElement)
 {
 }