/// <summary> /// Looks up the next view based on the incoming graph, view, and navigation values. /// </summary> /// <param name="navigationGraphName">Name of the navigation graph that is being worked in.</param> /// <param name="currentViewName">Name of the current view.</param> /// <param name="navigateValue">Navigate value used to determine the next view to be navigated to from the current view.</param> public virtual ViewSettings GetNextViewSettings(string navigationGraphName, string currentViewName, string navigateValue) { //Retrieve a navgraph class based on nav name NavigationGraphSettings navigationGraph = GetNavigationGraphSettings(navigationGraphName); ViewSettings nextView = null; // Get the current view node settings NodeSettings node = navigationGraph[currentViewName]; if (null == node) { throw new ConfigurationException(Resource.ResourceManager.FormatMessage(Resource.Exceptions.RES_ExceptionCouldNotGetNextViewType, navigationGraphName, currentViewName, navigateValue)); } // Get the next view name from the navigateTo node NavigateToSettings navigateTo = node[navigateValue]; if (null == navigateTo) { nextView = GetSharedTransitionView(navigationGraph, navigateValue); } else { nextView = GetViewSettingsFromName(navigateTo.View); } if (nextView == null) { throw new ConfigurationException(Resource.ResourceManager.FormatMessage(Resource.Exceptions.RES_ExceptionCouldNotGetNextViewType, navigationGraphName, currentViewName, navigateValue)); } return(nextView); }
/// <summary> /// Method used to determine if a view exists within a navigation graph. /// </summary> /// <param name="navigationGraphName">Name of the navigation graph to look in.</param> /// <param name="viewName">Name of the view to search for in the navigation graph.</param> /// <returns></returns> internal bool ViewExistsInNavigationGraph(string navigationGraphName, string viewName) { NavigationGraphSettings settings = GetNavigationGraphSettings(navigationGraphName); foreach (NodeSettings node in settings.Views()) { if (node.View == viewName) { return(true); } } foreach (SharedTransitionSettings sharedTransition in settings.SharedTransitions()) { if (sharedTransition.View == viewName) { return(true); } } foreach (SharedTransitionSettings sharedTransition in UIPConfiguration.Config.SharedTransitions) { if (sharedTransition.View == viewName) { return(true); } } return(false); }
/// <summary> /// Starts a UIProcess for navigation. /// </summary> /// <param name="navGraph">The name of the navigationGraph element in app.config. </param> public static void StartNavigationTask(string navGraph) { NavigationGraphSettings navGraphSettings = UIPConfiguration.Config.GetNavigationGraphSettings(navGraph); GraphNavigator navigator = (navGraphSettings.RunInWizardMode) ? new WizardNavigator(navGraph) : new GraphNavigator(navGraph); navigator.StartTask(); }
/// <summary> /// Handles any StartTask events raised by a controller. /// </summary> /// <param name="sender">Controller that raised the event.</param> /// <param name="e">Arguments used by the event handler.</param> public virtual void OnStartTask(object sender, StartTaskEventArgs e) { if (UIPConfiguration.Config.ContainsNavigationGraphSettings(e.NextNavigationGraph)) { NavigationGraphSettings settings = UIPConfiguration.Config.GetNavigationGraphSettings(e.NextNavigationGraph); if (settings.RunInWizardMode) { WizardNavigator navigator = new WizardNavigator(e.NextNavigationGraph); navigator.StartTask(e.NextTask, e.TaskArguments); } else { GraphNavigator navigator = new GraphNavigator(e.NextNavigationGraph); navigator.StartTask(e.NextTask, e.TaskArguments); } return; } else if (UIPConfiguration.Config.ContainsHostedControlsSettings(e.NextNavigationGraph)) { UserControlsNavigator navigator = new UserControlsNavigator(e.NextNavigationGraph); navigator.StartTask(e.NextTask); return; } OpenNavigator newNavigator = new OpenNavigator("new"); newNavigator.StartTask(e.NextNavigationGraph, e.NextTask); }
private void Initialize(string name) { Name = name; _settings = UIPConfiguration.Config.GetNavigationGraphSettings(name); ViewManager = CreateViewManager(name); _startView = UIPConfiguration.Config.GetFirstViewSettings(name); }
private void LoadWizards(XmlNode configNode, IFormatProvider formatProvider) { foreach (XmlNode wizardNode in configNode.SelectNodes(NodeWizardsXPath)) { WizardSettings wizard = new WizardSettings(_defaultStatePersistence.Name, _defaultState.Name, wizardNode); NavigationGraphSettings navigationGraph = new NavigationGraphSettings(wizard.GetNavGraphXmlNode(formatProvider)); _navigatorCollection.Add(navigationGraph.Name, navigationGraph); } }
/// <summary> /// Returns the settings for the navigation graph. /// </summary> /// <param name="navigationGraphName">The name of the navigation graph element.</param> /// <returns>The settings.</returns> public NavigationGraphSettings GetNavigationGraphSettings(string navigationGraphName) { NavigationGraphSettings navigationGraph = (NavigationGraphSettings)_navigatorCollection[navigationGraphName]; if (navigationGraph == null) { throw new UIPException(Resource.ResourceManager.FormatMessage(Resource.Exceptions.RES_ExceptionNavigationGraphNotFound, navigationGraphName)); } return(navigationGraph); }
private void LoadNavigationGraphs(XmlNode configNode) { //Get the configured navigation graphs NavigationGraphSettings navigationGraph; foreach (XmlNode navigationGraphNode in configNode.SelectNodes(NodeNavigationGraphXPath)) { navigationGraph = new NavigationGraphSettings(navigationGraphNode); _navigatorCollection.Add(navigationGraph.Name, navigationGraph); } }
/// <summary> /// Returns the first view name in given navigation graph. /// </summary> /// <param name="navigationGraphName">The name of the navigation graph to retrieve the first view for.</param> public virtual ViewSettings GetFirstViewSettings(string navigationGraphName) { //Retrieve a navgraph class based on nav name NavigationGraphSettings navigationGraph = GetNavigationGraphSettings(navigationGraphName); // return first view settings if (navigationGraph.FirstView == null) { return(null); } else { return(GetViewSettingsFromName(navigationGraph.FirstView.View)); } }
private ViewSettings GetSharedTransitionView(NavigationGraphSettings navigationGraph, string navigateValue) { SharedTransitionSettings sharedTransition = null; ViewSettings sharedView = null; sharedTransition = navigationGraph.GetSharedTransitionSettings(navigateValue); if (null == sharedTransition) { sharedTransition = this.GetSharedTransitionSettings(navigateValue); } if (sharedTransition != null) { sharedView = GetViewSettingsFromName(sharedTransition.View); } return(sharedView); }
/// <summary> /// Checks if a navigation graph by that name exists. /// </summary> /// <param name="navigationGraphName">The name of the navigation graph element.</param> /// <returns></returns> public bool ContainsNavigationGraphSettings(string navigationGraphName) { NavigationGraphSettings navigationGraph = (NavigationGraphSettings)_navigatorCollection[navigationGraphName]; return(navigationGraph != null); }