protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective) { Android.Util.Log.Debug("MXDroidContainer", "OnControllerLoadComplete"); Type viewType = Views.GetViewType(viewPerspective); if (viewType != null) { // stash the model away so we can get it back when the view shows up! ViewModels[controller.ModelType] = controller.GetModel(); LastContext = fromView as Activity ?? ApplicationContext; if (NavigationHandler != null) { // allow first crack at the view creation to the person over-riding NavigationHandler(viewType); } else if (LastContext != null) { // use the last context to instantiate the new view Intent intent = new Intent(LastContext, viewType); intent.AddFlags(ActivityFlags.NewTask); LastContext.StartActivity(intent); } else { Android.Util.Log.Debug("MXDroidContainer", "OnControllerLoadComplete: View not found for " + viewPerspective.ToString()); throw new TypeLoadException("View not found for " + viewPerspective.ToString()); } } else { Android.Util.Log.Debug("MXDroidContainer", "OnControllerLoadComplete: View not found for " + viewPerspective.ToString()); throw new TypeLoadException("View not found for " + viewPerspective.ToString()); } }
void LoadController(IMXView fromView, IMXController controller, Dictionary <string, string> parameters) { string perspective = controller.Load(parameters); if (!Instance.CancelLoad && perspective != null) // done if failed { MXViewPerspective viewPerspective = new MXViewPerspective(controller.ModelType, perspective); // quick check (viable for ALL platforms) to see if there is some kind of a mapping set up if (!Instance.Views.ContainsKey(viewPerspective)) { throw new Exception("There is no View mapped for " + viewPerspective.ToString()); } // if we have a view lying around assign it from the map, more of a curtesy to the derived container that anything controller.View = Instance.Views.GetView(viewPerspective); if (controller.View != null) { controller.View.SetModel(controller.GetModel()); } // give the derived container the ability to do something // with the fromView if it exists or to create it if it doesn't Instance.OnControllerLoadComplete(fromView, controller, viewPerspective); } // clear CancelLoad, we're done Instance.CancelLoad = false; }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective) { Debug.WriteLine("OnControllerLoadComplete"); Type viewType = Views.GetViewType(viewPerspective); if (viewType != null) { // stash the model away so we can get it back when the view shows up! ViewModels[controller.ModelType] = controller.GetModel(); var activity = fromView as Page; if (NavigationHandler != null) { // allow first crack at the view creation to the person over-riding NavigationHandler(viewType); } else if (activity != null) { // start the next view NavigationFrame.NavigationService.Navigate(activity); } else { RenderViewFromPerspective(controller, viewPerspective); NavigationFrame.NavigationService.Navigate(Views.GetView(viewPerspective) as Page); } } else { Debug.WriteLine("OnControllerLoadComplete: View not found for " + viewPerspective.ToString()); throw new TypeLoadException("View not found for " + viewPerspective.ToString()); } }
/// <summary> /// Finds the target pane for the layer according to its interface. /// </summary> /// <param name="layer">The controller implementing a pane management interface.</param> /// <returns>The <see cref="Pane"/> to which the controller's view renders.</returns> public static Pane FindTarget(this IMXController layer) { var paneAttribute = Device.Reflector.GetCustomAttribute <PreferredPaneAttribute>(layer.GetType(), true); if (paneAttribute != null) { return(paneAttribute.Pane); } if (layer is NavigationTabs) { return(Pane.Tabs); } #pragma warning disable 618 if (layer is IMasterLayer) { return(Pane.Master); } if (layer is IPopoverLayer) { return(Pane.Popover); } #pragma warning restore 618 return(Pane.Detail); }
protected void StartViewForController(IMXView fromView, IMXController controller, MXShowViewRequest showViewRequest) { var viewPerspective = showViewRequest.ViewPerspective; Type viewType = PhoneContainerInstance.Views.GetViewType(viewPerspective); if (viewType == null) { throw new TypeLoadException("View not found for " + viewPerspective.ToString()); } #warning TODO - make this Uri look up better! Uri viewUri = new Uri("/" + viewType.Name + ".xaml", UriKind.Relative); // get the uri from the MXPhoneView attribute, if present object[] attributes = viewType.GetCustomAttributes(true); for (int i = 0; i < attributes.Length; i++) { if (attributes[i] is MXPhoneViewAttribute) { viewUri = new Uri(((MXPhoneViewAttribute)attributes[i]).Uri, UriKind.Relative); break; } } // stash the model away so we can get it back when the view shows up! _cachedViewModel = showViewRequest.ViewModel; #warning TODO - make this navigation better - pwn the history stack //var page = fromView as PhoneApplicationPage; //((MXPhonePage)fromView).NavigationService.n _rootFrame.Source = viewUri; //_rootFrame.Navigate(viewUri); }
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); //slideoutNavigation.PushToModel(viewController); Menu.TopView = viewController; ShowView(); }
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 = MXFormsNavigation.GetViewNavigationContext(controller.View); Page page = controller.View as Page; // iFactr binding options if (page == null) { page = RenderLayer(controller.View); } ViewNavigationContext navigationContext = MXFormsNavigation.GetViewNavigationContext(controller.View); formsNavigation.PushToModel(page); }
/// <summary> /// Initializes an instance of the <see cref="MXNavigation"/> class. /// </summary> /// <param name="pattern">The navigation pattern to associate with the controller.</param> /// <param name="controller">The controller to add to the navigation list.</param> /// <param name="parameters">Any default parameters to include when the controller is loaded.</param> public MXNavigation(string pattern, IMXController controller, Dictionary <string, string> parameters) { _loader = new TypeLoader(controller); Pattern = pattern; Parameters = parameters; Parts = Segment.Split(Pattern); }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, MXViewPerspective perspective) { // store of the stack for later NavHistory.Push(new NavDetail(controller.Uri, controller.Parameters)); // render the view MXConsoleContainer.RenderViewFromPerspective(controller, perspective); }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, string perspective, string navigatedUri) { // store of the stack for later NavHistory.Push(new NavDetail(navigatedUri, null)); // render the view RenderViewFromPerspective(controller.ModelType, perspective, controller.GetModel()); }
public void AddEmptyRoute(IMXController defaultController, string actionName) { NavigationMap.Add(string.Empty, defaultController, new Dictionary <string, string>() { { MXConventionConstants.ActionParameterKeyName, actionName } }); }
public void Perform(IMXContainer container, IMXView fromView, IMXController controller) { // nothing to do var viewPerspective = new MXViewPerspective <T>(_viewPerspective); var request = new MXShowViewRequest <T>(viewPerspective, _viewModel); container.ShowPerspective(fromView, controller, request); }
protected override void OnControllerLoadBegin(IMXController controller, IMXView fromView) { base.OnControllerLoadBegin(controller, fromView); if (topViewController == null) { InitializeViews(); } }
protected override void OnControllerLoadFailed(IMXController controller, Exception ex) { System.Console.WriteLine("Failed to load controller: " + ex.Message); System.Console.WriteLine("Stack Dump"); System.Console.WriteLine(ex.StackTrace.ToString()); System.Diagnostics.Debug.WriteLine("Failed to load controller: " + ex.Message); System.Diagnostics.Debug.WriteLine("Stack Dump"); System.Diagnostics.Debug.WriteLine(ex.StackTrace.ToString()); }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective) { //Console.WriteLine("Controller Load End"); Xamarin.Forms.Device.BeginInvokeOnMainThread(()=>{ LoadViewForController(fromView, controller, viewPerspective); if (ControllerLoadComplete != null) ControllerLoadComplete(controller); }); }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective) { Console.WriteLine("Controller Load End"); _appDelegate.InvokeOnMainThread( delegate { LoadViewForController(fromView, controller, viewPerspective); if (ControllerLoadComplete != null) ControllerLoadComplete(controller); }); }
private static void InternalNavigate(IMXView fromView, string url, Dictionary <string, string> parameters) { Console.WriteLine("InternalNavigation navigating to: " + url); MXContainer container = Instance; // optimization for the server size, property reference is a hashed lookup // fetch and allocate a viable controller IMXController controller = container.GetController(url, parameters); // Initiate load for the associated controller passing all parameters if (controller != null) { container.OnControllerLoadBegin(controller); container.CancelLoad = false; // synchronize load layer to prevent collisions on web-based targets. lock (container) { // Console.WriteLine("InternalNavigate: Locked"); // if there is no synchronization, don't launch a new thread if (container.ThreadedLoad) { // new thread to execute the Load() method for the layer // new Thread((object args) => // { try { //Dictionary<string, string> parameters = (Dictionary<string, string>)args; container.LoadController(fromView, controller, parameters); } catch (Exception ex) { container.OnControllerLoadFailed(controller, ex); } // // }).Start(parameters); } else { try { container.LoadController(fromView, controller, parameters); } catch (Exception ex) { container.OnControllerLoadFailed(controller, ex); } } // Console.WriteLine("InternalNavigate: Unlocking"); } } }
static void TryLoadController(MXContainer container, IMXView fromView, IMXController controller, Dictionary <string, string> parameters) { try { container.LoadController(fromView, controller, parameters); } catch (Exception ex) { container.OnControllerLoadFailed(controller, ex); } }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective) { //Console.WriteLine("Controller Load End"); Xamarin.Forms.Device.BeginInvokeOnMainThread(() => { LoadViewForController(fromView, controller, viewPerspective); if (ControllerLoadComplete != null) { ControllerLoadComplete(controller); } }); }
private void LoadController(IMXView fromView, IMXController controller, string uri, Dictionary <string, string> parameters) { string perspective = controller.Load(uri, parameters); // give the derived container the ability to do something // with the fromView if it exists or to create it if it doesn't OnControllerLoadComplete(fromView, controller, CancelLoad ? null : perspective, uri); // clear CancelLoad, we're done CancelLoad = false; }
protected override void OnControllerLoadBegin(IMXController controller) { Console.WriteLine("Controller Load Begin"); if (ControllerLoadBegin != null) { ControllerLoadBegin(controller); return; } ShowLoading(); }
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 override void ShowError(IMXView fromView, IMXController controller, Exception exception) { if (fromView != null) { var activity = fromView as Activity; if (activity != null) activity.RunOnUiThread( () => Toast.MakeText(activity, "Error: " + exception.Message, ToastLength.Long).Show()); } base.ShowError(fromView, controller, exception); }
protected static void SetModelFromParameters(string url, Dictionary <string, string> parameters) { IMXController controller = Instance.GetController(url, ref parameters); if (controller.GetModel() != null) { foreach (string key in parameters.Keys) { SetPropertyOnModel(key, controller.GetModel(), parameters[key]); } } }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective) { Console.WriteLine("Controller Load End"); _appDelegate.InvokeOnMainThread(delegate { LoadViewForController(fromView, controller, viewPerspective); if (ControllerLoadComplete != null) { ControllerLoadComplete(controller); } }); }
public override void ShowError(IMXView fromView, IMXController controller, Exception exception) { if (fromView != null) { var activity = fromView as Activity; if (activity != null) { activity.RunOnUiThread( () => Toast.MakeText(activity, "Error: " + exception.Message, ToastLength.Long).Show()); } } base.ShowError(fromView, controller, exception); }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, string viewPerspective, string navigatedUri) { try { RenderViewFromPerspective(controller.ModelType, viewPerspective, controller.GetModel()); } catch (ArgumentException ae) { #if DEBUG System.Diagnostics.Debug.WriteLine("Failed to Render a view"); #endif throw new Exception("Webkit container failed to find a view", ae); } }
protected override void OnControllerLoadFailed(IMXController controller, Exception ex) { if (ControllerLoadFailed != null) { ControllerLoadFailed(controller, ex); return; } HideLoading(); UIAlertView alert = new UIAlertView("Load Failed", ex.Message, null, "OK", null); alert.Show(); }
protected static void StartViewForController(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective) { Type viewType = Instance.Views.GetViewType(viewPerspective); if (viewType == null) { Console.WriteLine("View not found for " + viewPerspective.ToString()); throw new TypeLoadException("View not found for " + viewPerspective.ToString()); } Uri viewUri = new Uri("/" + viewType.Name + ".xaml", UriKind.Relative); // get the uri from the MXPhoneView attribute, if present object[] attributes = viewType.GetCustomAttributes(true); for (int i = 0; i < attributes.Length; i++) { if (attributes[i] is MXPhoneViewAttribute) { viewUri = new Uri(((MXPhoneViewAttribute)attributes[i]).Uri, UriKind.Relative); break; } } // stash the model away so we can get it back when the view shows up! ViewModels[controller.ModelType] = controller.GetModel(); var page = fromView as PhoneApplicationPage; if (!(controller.View is PhoneApplicationPage) && controller.View != null && RenderLayer != null) { controller.View.Render(); viewUri = RenderLayer(controller.View); } if (page != null) { // NOTE: assumes XAML file matches type name and no sub directories page.NavigationService.Navigate(viewUri); } else { if (_rootFrame != null) { _rootFrame.Navigate(viewUri); } // failure, called too early or Something Very Bad Happened(tm)... } }
static void TryLoadController(MXContainer container, IMXView fromView, IMXController controller, Dictionary <string, object> parameters) { try { NSObject nso = new NSObject(); nso.InvokeOnMainThread(() => { container.LoadController(fromView, controller, parameters); }); } catch (Exception ex) { container.OnControllerLoadFailed(controller, ex); } }
protected override void OnControllerLoadFailed (IMXController controller, Exception ex) { //Console.WriteLine("Controller Load Failed: " + ex.Message); if (ControllerLoadFailed != null) { ControllerLoadFailed(controller, ex); return; } hideLoading(); Xamarin.Forms.Device.BeginInvokeOnMainThread(()=>{ this.formsNavigation.NavigationPage.DisplayAlert("Load Failed", ex.Message, null, "OK"); }); }
public void OnControllerLoadComplete(IMXController controller, MXShowViewRequest showViewRequest) { if (_lastSeenViewModel != null) { // TODO - this requestStop is possibly called too late... but not sure we have any _lastSeenViewModel.RequestStop(); _lastSeenViewModel = null; } var model = showViewRequest.ViewModel; _lastSeenViewModel = model as IMXViewModel; if (_lastSeenViewModel != null) { _lastSeenViewModel.ViewDispatcher = _dispatcherFactory(); } }
/// <summary> /// Called when an <see cref="IMXController"/> instance is about to be loaded. /// </summary> /// <param name="controller">The controller that is about to be loaded.</param> /// <param name="fromView">The view that initiated that navigation to the controller.</param> protected override void OnControllerLoadBegin(IMXController controller, IMXView fromView) { var browser = controller as Browser; if (browser == null || browser.Url == null || !browser.Url.StartsWith("audio:")) { BeginBlockingUserInput(); } var layer = controller as iLayer; if (layer != null) { layer.Clear(); } }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective) { controller.RenderView(); if (controller.View.GetType().BaseType.GetGenericTypeDefinition() != typeof(MXWebkitView <>) && RenderLayer != null) { HtmlGenericControl control = RenderLayer(controller.View); if (controller.Uri == App.NavigateOnLoad) { MXWebkitView <object> .WriteToResponse(controller.ModelType.ToString(), control.Attributes["title"], control); } else { MXWebkitView <object> .WriteAjaxToResponse(controller.ModelType.ToString(), control.Attributes["title"], control); } } }
protected override void OnControllerLoadFailed(IMXController controller, Exception ex) { //Console.WriteLine("Controller Load Failed: " + ex.Message); if (ControllerLoadFailed != null) { ControllerLoadFailed(controller, ex); return; } hideLoading(); Xamarin.Forms.Device.BeginInvokeOnMainThread(() => { this.formsNavigation.NavigationPage.DisplayAlert("Load Failed", ex.Message, null, "OK"); }); }
protected override void OnControllerLoadFailed(IMXController controller, Exception ex) { Console.WriteLine("Controller Load Failed: " + ex.Message); if (ControllerLoadFailed != null) { ControllerLoadFailed(controller, ex); return; } HideLoading(); UIApplication.SharedApplication.InvokeOnMainThread(() => { UIAlertView alert = new UIAlertView("Load Failed", ex.Message, null, "OK", null); alert.Show(); }); }
protected void StartViewForController(IMXView fromView, IMXController controller, string viewPerspective) { Type viewType = Views.GetViewType(controller.ModelType, viewPerspective); if (viewType == null) { Console.WriteLine("View not found for " + viewPerspective); throw new TypeLoadException("View not found for " + viewPerspective); } var viewUri = new Uri("/" + viewType.Name + ".xaml", UriKind.Relative); // get the uri from the MXPhoneView attribute, if present object[] attributes = viewType.GetCustomAttributes(true); foreach (MXPhoneViewAttribute t in attributes.OfType<MXPhoneViewAttribute>()) { viewUri = new Uri((t).Uri, UriKind.Relative); break; } // stash the model away so we can get it back when the view shows up! ViewModels[controller.ModelType] = controller.GetModel(); var page = fromView as PhoneApplicationPage; if (page != null) { // NOTE: assumes XAML file matches type name and no sub directories page.NavigationService.Navigate(viewUri); } else { if (_rootFrame != null) { _rootFrame.Navigate(viewUri); } // failure, called too early or Something Very Bad Happened(tm)... } }
/// <summary> /// Raises the controller load failed event. /// </summary> /// <param name="controller">The controller that failed to load.</param> /// <param name="ex">The exception that caused the load to fail.</param> protected override void OnControllerLoadFailed(IMXController controller, Exception ex) { Debug.WriteLine("OnControllerLoadFailed: " + ex.Message); }
public override void Perform(IMXContainer container, IMXView fromView, IMXController controller) { container.Redirect(_redirectUrl); }
protected override void OnControllerLoadFailed (IMXController controller, Exception ex) { Console.WriteLine("Controller Load Failed: " + ex.Message); if (ControllerLoadFailed != null) { ControllerLoadFailed(controller, ex); return; } HideLoading(); UIAlertView alert = new UIAlertView("Load Failed", ex.Message, null, "OK", null); alert.Show(); }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, string viewPerspective, string navigatedUri) { Deployment.Current.Dispatcher.BeginInvoke(() => StartViewForController(fromView, controller, viewPerspective)); }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective) { controller.RenderView(); if (controller.View.GetType().BaseType.GetGenericTypeDefinition() != typeof(MXWebkitView<>) && RenderLayer != null) { HtmlGenericControl control = RenderLayer(controller.View); if (controller.Uri == App.NavigateOnLoad) { MXWebkitView<object>.WriteToResponse(controller.ModelType.ToString(), control.Attributes["title"], control); } else { MXWebkitView<object>.WriteAjaxToResponse(controller.ModelType.ToString(), control.Attributes["title"], control); } } }
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 = MXFormsNavigation.GetViewNavigationContext(controller.View); Page page = controller.View as Page; // iFactr binding options if (page == null) page = RenderLayer(controller.View); ViewNavigationContext navigationContext = MXFormsNavigation.GetViewNavigationContext(controller.View); formsNavigation.PushToModel(page); }
protected override void OnControllerLoadBegin(IMXController controller) { Android.Util.Log.Debug("MXDroidContainer", "OnControllerLoadBegin"); }
/* 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(); }
// currently this class adds no value whatsoever... but it does make the inheritance tree look nice! // keep this class for now - just in case there is future common functionality here public abstract void Perform(IMXContainer container, IMXView fromView, IMXController controller);
protected override void OnControllerLoadFailed(IMXController controller, Exception ex) { Android.Util.Log.Debug("MXDroidContainer", "OnControllerLoadFailed: " + ex.Message); }
public void AddEmptyRoute(IMXController defaultController, string actionName) { NavigationMap.Add(string.Empty, defaultController, new Dictionary<string, string>() {{MXConventionConstants.ActionParameterKeyName, actionName}}); }
public void AddEmptyRoute(IMXController defaultController) { NavigationMap.Add(string.Empty, defaultController); }
public MXNavigation(string pattern, IMXController controller, Dictionary<string, string> parameters) { Controller = controller; Pattern = pattern; Parameters = parameters; }
/// <summary> /// Called when a controller is about to be loaded. /// </summary> /// <param name="controller">The controller to be loaded.</param> /// <param name="fromView">The view that initiated the navigation that resulted in the controller being loaded.</param> protected override void OnControllerLoadBegin(IMXController controller, IMXView fromView) { Debug.WriteLine("OnControllerLoadBegin"); }
protected override void OnControllerLoadComplete(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective) { _viewModelLifeCycleHelper.OnControllerLoadComplete(controller); base.OnControllerLoadComplete(fromView, controller, viewPerspective); }