コード例 #1
0
        private void WdgMgrHideSelectioHandler(object parameter)
        {
            WDMgrHideStatusChangeInfo info = (WDMgrHideStatusChangeInfo)parameter;

            if (info == null)
            {
                return;
            }
            ISelectionService   selsrv = ServiceLocator.Current.GetInstance <ISelectionService>();
            PageEditorViewModel page   = selsrv.GetCurrentPage() as PageEditorViewModel;

            if (page != null && page.ActivePage.Guid == info.PageID)
            {
                if (info.HideType == WDMgrHideEventEnum.NormalWidget)
                {
                    page.WdgMgrHideSelection(!info.HideFlag);
                }
                else if (info.HideType == WDMgrHideEventEnum.SwipeViewPanel)
                {
                    page.WdgMgrHideAllWidgets(!info.HideFlag);
                    _ListEventAggregator.GetEvent <SwipePanelHidddenEvent>().Publish(parameter);
                }
                else if (info.HideType == WDMgrHideEventEnum.ChildGroup)
                {
                    //
                }
            }
        }
コード例 #2
0
        //return value: bool, whether the target page has been open now
        private PageEditorViewModel OpenNormalPage(Guid pageGID, Guid SelWdgGID, bool bIsSelect, bool bIsGroup)
        {
            //Active an exist page editor,20140220
            foreach (EditPaneViewModelBase pageItem in EditPages)
            {
                if (pageItem.ContentId == pageGID.ToString())
                {
                    pageItem.IsActive          = true;
                    pageItem.IsNeedReturnFocus = true;
                    return(pageItem as PageEditorViewModel);
                }
            }

            DeselectAllPages();

            //Create a new page editor,20140220

            PageEditorViewModel page = new PageEditorViewModel(pageGID);

            page.WdgMgrSetTargeComponent(SelWdgGID, bIsSelect, bIsGroup);
            page.Open();
            EditPages.Add(page);
            page.IsActive = true;
            page.Update();

            page.IsNeedReturnFocus = true;
            return(null);
        }
コード例 #3
0
        private void WdgMgrEditSelectioHandler(object parameter)
        {
            Guid pageID = (Guid)parameter;
            ISelectionService   selsrv = ServiceLocator.Current.GetInstance <ISelectionService>();
            PageEditorViewModel page   = selsrv.GetCurrentPage() as PageEditorViewModel;

            if (page != null && page.ActivePage.Guid == pageID)
            {
                page.WdgMgrEditSelection();
            }
        }
コード例 #4
0
        private void WdgMgrReZOrderSelectionHandler(object parameter)
        {
            WDMgrZorderDragChangeInfo info = (WDMgrZorderDragChangeInfo)parameter;
            Guid pageID = info.PageID;
            ISelectionService   selsrv = ServiceLocator.Current.GetInstance <ISelectionService>();
            PageEditorViewModel page   = selsrv.GetCurrentPage() as PageEditorViewModel;

            if (page != null && page.ActivePage.Guid == pageID)
            {
                page.WdgMgrReZOrderSelection(info.zIndex, info.widgetID);
            }
        }
コード例 #5
0
        //Message from Widget Manager
        private void WdgMgrChangeSelectionHandler(object parameter)
        {
            WidgetSelectionInfoExtra info = (WidgetSelectionInfoExtra)parameter;

            //if (info.IsSwipePanel)
            //{
            //    return;
            //}

            if (info.pageType == PageType.NormalPage)
            {
                //Open page when the target page is close now
                PageEditorViewModel page = OpenNormalPage(info.PageID, info.WidgetID, info.bSelected, info.IsGroup);
                if (page != null)
                {
                    //Select the target widget  and locate it correctly.
                    page.WdgMgrSetTargeComponent(info.WidgetID, info.bSelected, info.IsGroup);
                    page.SelectTargetComponent();
                }
            }
            else if (info.pageType == PageType.ToastPage || info.pageType == PageType.HamburgerPage)
            {
                //Open page when the target page is close now
                PageEditorViewModel page = OpenWidgetPage(info.BelongWidget, info.WidgetID, info.bSelected, info.IsGroup);
                if (page != null)
                {
                    //Select the target widget  and locate it correctly.
                    page.WdgMgrSetTargeComponent(info.WidgetID, info.bSelected, info.IsGroup);
                    page.SelectTargetComponent();
                }
            }
            else if (info.pageType == PageType.DynamicPanelPage)
            {
                if (info.IsSwipePanel == true && info.bSelected == false)
                {
                    return;
                }
                else if (info.IsSwipePanel == true && info.bSelected == true)
                {
                    OpenSwipePage(info.BelongWidget, info.PageID, Guid.Empty, true, false);
                    return;
                }

                //Open page when the target page is close now
                PageEditorViewModel page = OpenSwipePage(info.BelongWidget, info.PageID, info.WidgetID, info.bSelected, info.IsGroup);
                if (page != null)
                {
                    //Select the target widget  and locate it correctly.
                    page.WdgMgrSetTargeComponent(info.WidgetID, info.bSelected, info.IsGroup);
                    page.SelectTargetComponent();
                }
            }
        }
コード例 #6
0
        private void WdgMgrZChangeSelectioHandler(object parameter)
        {
            WDMgrZorderChangeInfo Info = (WDMgrZorderChangeInfo)parameter;
            Guid pageID                = Info.PageID;
            bool bIsForword            = Info.bForward;
            ISelectionService   selsrv = ServiceLocator.Current.GetInstance <ISelectionService>();
            PageEditorViewModel page   = selsrv.GetCurrentPage() as PageEditorViewModel;

            if (page != null && page.ActivePage.Guid == pageID)
            {
                page.WdgMgrZOrderChangeSelection(bIsForword);
            }
        }
コード例 #7
0
        private void WdgMgrDeleteSelectioHandler(object parameter)
        {
            WDMgrWidgetDeleteInfo Info = parameter as WDMgrWidgetDeleteInfo;

            if (Info != null)
            {
                ISelectionService   selsrv = ServiceLocator.Current.GetInstance <ISelectionService>();
                PageEditorViewModel page   = selsrv.GetCurrentPage() as PageEditorViewModel;
                if (page != null && page.ActivePage.Guid == Info.PageID)
                {
                    page.WdgMgrDeleteSelection(Info.WidgetList);
                }
            }
        }
コード例 #8
0
 public void RenamePageEventHandler(Guid pageGID)
 {
     //change the exist page title,20140220
     foreach (EditPaneViewModelBase pageItem in EditPages)
     {
         if (pageItem.ContentId == pageGID.ToString())
         {
             PageEditorViewModel page = pageItem as PageEditorViewModel;
             page.UpdateTitle();
             //pageItem.IsActive = true;
             break;
         }
     }
 }
コード例 #9
0
        public IActionResult IndexAction(Guid repositoryid)
        {
            IRepository repository = new CmsManager().GetRepositoryById(repositoryid);

            IContentStore contentStore = new CmsManager().GetContentStore(repositoryid);

            PageEditorViewModel model = new PageEditorViewModel()
            {
                RepositoryId       = repositoryid,
                RepositoryName     = repository.Name,
                ContentDefinitions = repository.ContentDefinitions,
                ContentItems       = contentStore.Items.Where(m => m.Filters.Count == 0).ToList()
            };

            return(View("edit", model));
        }
コード例 #10
0
        public IActionResult PostAction(FilteredContentViewModel filter)
        {
            IRepository repository = new CmsManager().GetRepositoryById(filter.RepositoryId);

            IContentStore contentStore = new CmsManager().GetContentStore(filter.RepositoryId);

            var filters = ViewModelHelpers.GetFilters(Request);

            PageEditorViewModel model = new PageEditorViewModel()
            {
                RepositoryId       = filter.RepositoryId,
                RepositoryName     = repository.Name,
                ContentDefinitions = repository.ContentDefinitions,
                ContentItems       = contentStore.Items.Where(m => m.MatchFilters(filters)).ToList(),
                Filters            = filters
            };

            return(View("edit", model));
        }
コード例 #11
0
        public IActionResult SaveAction(PageEditorViewModel model)
        {
            var         manager    = new CmsManager();
            IRepository repository = manager.GetRepositoryById(model.RepositoryId);

            if (repository == null)
            {
                return(Redirect("/fcmsmanager/page"));
            }

            IContentStore contentStore = manager.GetContentStore(model.RepositoryId);

            model.RepositoryName     = repository.Name;
            model.ContentDefinitions = repository.ContentDefinitions;
            model.ContentItems       = contentStore.Items.Where(m => m.Filters.Count == 0).ToList();

            if (ModelState.IsValid)
            {
                foreach (var definition in model.ContentDefinitions.Where(m => m is not FolderContentDefinition))
                {
                    ContentItem item = model.ContentItems.FirstOrDefault(m => m.DefinitionId == definition.DefinitionId);
                    if (item == null)
                    {
                        item = FCms.Factory.ContentFactory.CreateContentByType(definition);
                        ViewModelHelpers.MapToContentItem(item, Request, null, definition);
                        contentStore.Items.Add(item);
                    }
                    else
                    {
                        ViewModelHelpers.MapToContentItem(item, Request, item.Id, definition);
                    }
                }

                manager.SaveContentStore(contentStore);
                return(Redirect("/fcmsmanager/page"));
            }

            return(View("edit", model));
        }
コード例 #12
0
        private void WdgMgrPlacewidgetSelectioHandler(object parameter)
        {
            WDMgrPlaceStatusChangeInfo data = (WDMgrPlaceStatusChangeInfo)parameter;

            if (data == null || data.WidgetList.Count == 0)
            {
                return;
            }

            ISelectionService   selsrv = ServiceLocator.Current.GetInstance <ISelectionService>();
            PageEditorViewModel page   = selsrv.GetCurrentPage() as PageEditorViewModel;

            if (page != null)
            {
                if (data.bPlace)
                {
                    page.WdgMgrPlaceTargets(data.WidgetList);
                }
                else
                {
                    page.UnplaceWidgetsFromView(data.WidgetList);
                }
            }
        }
コード例 #13
0
        private PageEditorViewModel OpenSwipePage(IWidget widget, Guid childPageGID, Guid SelWdgGID, bool bIsSelect, bool bIsGroup)
        {
            PageEditorViewModel newPage           = null;
            ISelectionService   _selectionService = ServiceLocator.Current.GetInstance <SelectionServiceProvider>();
            IPagePropertyData   activePage        = _selectionService.GetCurrentPage();

            Guid parentGID = widget.ParentPage.Guid;

            if (widget.WidgetType != WidgetType.DynamicPanel)
            {
                return(null);
            }


            //Active an exist page editor,20140220
            DynamicPageEditorViewModel CurrentDynmicPanel = null;

            foreach (var pageItem in EditPages.OfType <DynamicPageEditorViewModel>())
            {
                if (pageItem.ContentId == widget.Guid.ToString())
                {
                    CurrentDynmicPanel = pageItem;
                    if (pageItem.ActivePage.Guid == childPageGID)
                    {
                        pageItem.IsActive = true;
                        return(pageItem);
                    }
                    break;
                }
            }

            //Only Update the target panel
            if (CurrentDynmicPanel != null)
            {
                //TODO:???????
                CurrentDynmicPanel.IsActive = true;
                foreach (DynamicChildNodViewModel item in CurrentDynmicPanel.DynamicChildren)
                {
                    if (item.GID == childPageGID)
                    {
                        CurrentDynmicPanel.WdgMgrSetTargeComponent(SelWdgGID, bIsSelect, bIsGroup);
                        item.IsChecked = true;
                        break;
                    }
                }
                return(null);
            }

            DeselectAllPages();

            //Create a new page with target panel
            newPage = new DynamicPageEditorViewModel(widget, childPageGID);
            newPage.WdgMgrSetTargeComponent(SelWdgGID, bIsSelect, bIsGroup);

            //if child page is not set(value is 100%)
            //Set scale the same as parent page(only create child page, not active child page)
            if (newPage.EditorScale == 1)
            {
                newPage.EditorScale = activePage.EditorScale;
            }
            newPage.Open();
            EditPages.Add(newPage);
            newPage.IsActive = true;
            newPage.Update();
            return(null);
        }
コード例 #14
0
        private PageEditorViewModel OpenWidgetPage(IWidget widget, Guid SelWdgGID, bool bIsSelect, bool bIsgroup)
        {
            PageEditorViewModel newPage           = null;
            ISelectionService   _selectionService = ServiceLocator.Current.GetInstance <SelectionServiceProvider>();
            IPagePropertyData   activePage        = _selectionService.GetCurrentPage();

            Guid parentGID = widget.ParentPage.Guid;

            switch (widget.WidgetType)
            {
            case WidgetType.DynamicPanel:
            {
                //Active an exist page editor,20140220
                foreach (var pageItem in EditPages.OfType <DynamicPageEditorViewModel>())
                {
                    if (pageItem.ContentId == widget.Guid.ToString())
                    {
                        pageItem.IsActive = true;
                        return(pageItem);
                    }
                }

                ////Create a new page editor,20140220
                newPage = new DynamicPageEditorViewModel(widget);
                newPage.WdgMgrSetTargeComponent(SelWdgGID, bIsSelect, bIsgroup);
                break;
            }

            case WidgetType.Toast:
            {
                foreach (var pageItem in EditPages.OfType <ToastPageEditorViewModel>())
                {
                    if (pageItem.ContentId == widget.Guid.ToString())
                    {
                        pageItem.IsActive = true;
                        return(pageItem);
                    }
                }

                newPage = new ToastPageEditorViewModel(widget);
                newPage.WdgMgrSetTargeComponent(SelWdgGID, bIsSelect, bIsgroup);
                break;
            }

            case WidgetType.HamburgerMenu:
            {
                //Active an exist page editor,20140220
                foreach (var pageItem in EditPages.OfType <HamburgerPageEditorViewModel>())
                {
                    if (pageItem.ContentId == widget.Guid.ToString())
                    {
                        pageItem.IsActive = true;
                        return(pageItem);
                    }
                }
                //Create a new page editor,20140220
                newPage = new HamburgerPageEditorViewModel(widget);
                newPage.WdgMgrSetTargeComponent(SelWdgGID, bIsSelect, bIsgroup);
                break;
            }
            }

            DeselectAllPages();

            //if child page is not set(value is 100%)
            //Set scale the same as parent page(only create child page, not active child page)
            if (newPage.EditorScale == 1)
            {
                newPage.EditorScale = activePage.EditorScale;
            }
            newPage.Open();
            EditPages.Add(newPage);
            newPage.IsActive = true;
            newPage.Update();
            return(null);
        }