예제 #1
0
        private MXTouchContainer(MXApplication theApp, UIApplicationDelegate appDelegate, UIWindow window)
            : base(theApp, appDelegate, window)
        {
            touchNavigation = new MXTouchNavigation(appDelegate, window);

            ViewGroups = new List<MXTouchViewGroup>();
        }
예제 #2
0
		protected MXTouchContainer (MXApplication theApp, UIApplicationDelegate appDelegate, UIWindow window): base(theApp)
		{
			_appDelegate = appDelegate;
			_touchNavigation = new MXTouchNavigation(_appDelegate);
			_window = window;
			
			ViewGroups = new List<MXTouchViewGroup>();
		}
예제 #3
0
        protected MXTouchContainer(MXApplication theApp, UIApplicationDelegate appDelegate, UIWindow window) : base(theApp)
        {
            _appDelegate     = appDelegate;
            _touchNavigation = new MXTouchNavigation(_appDelegate);
            _window          = window;

            ViewGroups = new List <MXTouchViewGroup>();
        }
예제 #4
0
        public MXTouchNavigation(UIApplicationDelegate appDelegate)
        {
            _instance = this;

            var options = Attribute.GetCustomAttribute(appDelegate.GetType(), typeof(MXTouchContainerOptions)) as MXTouchContainerOptions;
            _options = options ?? new MXTouchContainerOptions();

            var tabletOptions = Attribute.GetCustomAttribute(appDelegate.GetType(), typeof(MXTouchTabletOptions)) as MXTouchTabletOptions;
            _tabletOptions = tabletOptions ?? new MXTouchTabletOptions(TabletLayout.SinglePane);
        }
        public void LoadViewForController(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective)
        {
            HideLoading();

            if (controller.View == null)
            {
                // get the view, create it if it has yet been created
                controller.View = Views.GetOrCreateView(viewPerspective);
                if (controller.View == null)
                {
                    Console.WriteLine("View not found for perspective!" + viewPerspective.ToString());
                    throw new ArgumentException("View creation failed for perspective!" + viewPerspective.ToString());
                }
            }


            // asign the view it's model and render the contents of the view
            controller.View.SetModel(controller.GetModel());
            controller.View.Render();

            // pull the type from the view
            ViewNavigationContext navigationContext = MXTouchNavigation.GetViewNavigationContext(controller.View);
            UIViewController      viewController    = controller.View as UIViewController;

            // iFactr binding options
            if (viewController == null)
            {
                viewController = RenderLayer(controller.View);
            }


            if (Menu.NavigationController != null && fromView != null)
            {
                if (Menu.NavigationController.ViewControllers.Contains(viewController))
                {
                    Menu.NavigationController.PopToViewController(viewController, true);
                }
                else
                {
                    Menu.NavigationController.PushViewController(viewController, true);
                }
            }
            else
            {
                if (Menu.NavigationController != null)
                {
                    Menu.NavigationController.PopToRootViewController(true);
                }

                Menu.TopView = viewController;
            }

            ShowView();
        }
        public MXTouchNavigation(UIApplicationDelegate appDelegate)
        {
            _instance = this;

            var options = Attribute.GetCustomAttribute(appDelegate.GetType(), typeof(MXTouchContainerOptions)) as MXTouchContainerOptions;

            _options = options ?? new MXTouchContainerOptions();

            var tabletOptions = Attribute.GetCustomAttribute(appDelegate.GetType(), typeof(MXTouchTabletOptions)) as MXTouchTabletOptions;

            _tabletOptions = tabletOptions ?? new MXTouchTabletOptions(TabletLayout.SinglePane);
        }
예제 #7
0
        /*
         * public static IMXController NavigateFromButton(string url, Dictionary<string, string> parameters, UIBarButtonItem button)
         * {
         *      //_stashButton = button;
         *
         *      return Navigate(url, parameters);
         * }
         */

        void LoadViewForController(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective)
        {
            HideLoading();

            if (controller.View == null)
            {
                // get the view, create it if it has yet been created
                controller.View = Views.GetOrCreateView(viewPerspective);
                if (controller.View == null)
                {
                    Console.WriteLine("View not found for perspective!" + viewPerspective.ToString());
                    throw new ArgumentException("View creation failed for perspective!" + viewPerspective.ToString());
                }
            }

            // asign the view it's model and render the contents of the view
            controller.View.SetModel(controller.GetModel());
            controller.View.Render();

            // pull the type from the view
            ViewNavigationContext navigationContext = MXTouchNavigation.GetViewNavigationContext(controller.View);
            UIViewController      viewController    = controller.View as UIViewController;

            if (navigationContext == ViewNavigationContext.Modal)
            {
                // treat as a modal/popup view
                _touchNavigation.PushToModel(viewController);
            }
            else if (navigationContext == ViewNavigationContext.InContext)
            {
                // it's just an in-context view, just slap it on top of the view that navigated it here!
                UIViewController parentViewController = fromView as UIViewController;
                parentViewController.NavigationController.PushViewController(viewController, true);
            }
            else
            {
                // if the view is one of the views in the group
                MXTouchViewGroup     viewGroup     = null;
                MXTouchViewGroupItem viewGroupItem = null;

                foreach (MXTouchViewGroup vg in ViewGroups)
                {
                    viewGroupItem = vg.Items.Find(item => item.ViewType == controller.View.GetType());
                    if (viewGroupItem != null)
                    {
                        viewGroup = vg;
                        break;
                    }
                }

                if (viewGroup != null)
                {
                    // activate the group!
                    _touchNavigation.PushToViewGroup(viewGroup, viewGroupItem, controller.View as UIViewController);
                }
                else
                {
                    switch (navigationContext)
                    {
                    case ViewNavigationContext.Detail:
                        _touchNavigation.PushToDetail(viewController);
                        break;

                    case ViewNavigationContext.Master:
                        _touchNavigation.PushToMaster(viewController);
                        break;
                    }
                }
            }

            // handle initial view display if not already handled
            ShowView();
        }
예제 #8
0
        private MXTouchContainer(MXApplication theApp, UIApplicationDelegate appDelegate, UIWindow window) : base(theApp, appDelegate, window)
        {
            touchNavigation = new MXTouchNavigation(appDelegate, window);

            ViewGroups = new List <MXTouchViewGroup>();
        }