public virtual void AddPage <T> (string title, object data = null) where T : FreshBasePageModel
        {
            var page = FreshPageModelResolver.ResolvePageModel <T> (data);
            var navigationContainer = CreateContainerPage(page);

            _pages.Add(title, navigationContainer);
            _pageNames.Add(title);
            if (_pages.Count == 1)
            {
                Detail = navigationContainer;
            }
        }
Esempio n. 2
0
        public virtual Page AddTab <T> (string title, string icon, object data = null) where T : FreshBasePageModel
        {
            var page = FreshPageModelResolver.ResolvePageModel <T> (data);
            var navigationContainer = CreateContainerPage(page);

            navigationContainer.Title = title;
            if (!string.IsNullOrWhiteSpace(icon))
            {
                navigationContainer.Icon = icon;
            }
            Children.Add(navigationContainer);
            return(navigationContainer);
        }
Esempio n. 3
0
        private static async Task PushPopupPageModel(FreshBasePageModel pageModel, object data = null, bool animate = true)
        {
            var page = FreshPageModelResolver.ResolvePageModel(data, pageModel);

            FreshPageModelResolver.BindingPageModel(data, page, pageModel);

            if (page is PopupPage)
            {
                await PushPopupPageModel((PopupPage)page, animate);
            }
            else
            {
                throw new InvalidOperationException("Resolved page type is not PopupPage");
            }
        }
Esempio n. 4
0
        public virtual void AddPage(string modelName, string title, object data = null)
        {
            var pageModelType = Type.GetType(modelName);
            var page          = FreshPageModelResolver.ResolvePageModel(pageModelType, null);

            page.GetModel().CurrentNavigationServiceName = NavigationServiceName;
            _pagesInner.Add(page);
            var navigationContainer = CreateContainerPage(page);

            _pages.Add(title, navigationContainer);
            _pageNames.Add(title);
            if (_pages.Count == 1)
            {
                Detail = navigationContainer;
            }
        }
Esempio n. 5
0
        public virtual Page AddTab <T> (string title, string icon, object data = null) where T : FreshBasePageModel
        {
            var page = FreshPageModelResolver.ResolvePageModel <T> (data);

            page.GetModel().CurrentNavigationServiceName = NavigationServiceName;
            _tabs.Add(page);
            var container = CreateContainerPage(page);

            container.Title = title;
            if (!string.IsNullOrWhiteSpace(icon))
            {
                container.Icon = icon;
            }
            _innerTabbedPage.Children.Add(container);
            return(container);
        }
Esempio n. 6
0
        public virtual Xamarin.Forms.Page AddTab <T>(string title, string icon, object data = null) where T : FreshBasePageModel
        {
            var page = FreshPageModelResolver.ResolvePageModel <T>(data);

            page.GetModel().CurrentNavigationServiceName = NavigationServiceName;
            _tabs.Add(page);
            var navigationContainer = CreateContainerPageSafe(page);

            navigationContainer.Title = title;
            if (!string.IsNullOrWhiteSpace(icon))
            {
                navigationContainer.IconImageSource = icon;
            }
            Children.Add(navigationContainer);
            return(navigationContainer);
        }
Esempio n. 7
0
        async Task PushPageModel(FreshBasePageModel pageModel, object data, bool modal = false)
        {
            var page = FreshPageModelResolver.ResolvePageModel(data, pageModel);

            pageModel.PreviousPageModel            = _currentPageModel; //This is the previous page model because it's push to a new one, and this is current
            pageModel.CurrentNavigationServiceName = _currentPageModel.CurrentNavigationServiceName;

            if (string.IsNullOrWhiteSpace(pageModel.PreviousNavigationServiceName))
            {
                pageModel.PreviousNavigationServiceName = _currentPageModel.PreviousNavigationServiceName;
            }

            IFreshNavigationService rootNavigation = FreshIOC.Container.Resolve <IFreshNavigationService> (_currentPageModel.CurrentNavigationServiceName);

            await rootNavigation.PushPage(page, pageModel, modal);
        }
Esempio n. 8
0
        async Task PushPageModel(FreshBasePageModel pageModel, object data, bool modal = false)
        {
            var page = FreshPageModelResolver.ResolvePageModel(data, pageModel);

            PushPageModelWithPage(page, pageModel, data, modal);
        }
Esempio n. 9
0
        async Task PushPageModel(FreshBasePageModel pageModel, object data, bool modal = false, bool animate = true)
        {
            var page = FreshPageModelResolver.ResolvePageModel(data, pageModel);

            await PushPageModelWithPage(page, pageModel, data, modal, animate);
        }