/// <summary> /// Prepares the given workflow navigation <paramref name="context"/>, i.e. prepares the view data and the /// available filter criteria to be used in the menu. /// </summary> protected void PrepareState(NavigationContext context) { _currentNavigationContext = context; NavigationData navigationData = GetNavigationData(context, false); if (navigationData != null) return; // Initialize root media navigation state. We will set up all sub processes for each media model "part", i.e. // audio, videos, images, browse local media and browse media library. IDictionary<string, object> contextVariables = PrepareRootState(context.WorkflowState.StateId); foreach (KeyValuePair<string, object> variable in contextVariables) context.SetContextVariable(variable.Key, variable.Value); }
protected static void SetNavigationData(NavigationData navigationData, NavigationContext navigationContext) { navigationContext.SetContextVariable(Consts.KEY_NAVIGATION_DATA, navigationData); }
/// <summary> /// Returns the config location corresponding to the workflow state given by the specified /// workflow navigation <paramref name="context"/>. /// </summary> /// <param name="context">The workflow navigation context to lookup the context state.</param> /// <returns>Previously initialized config location of the given navigation <paramref name="context"/> or <c>"/"</c>, /// if the context wasn't initialized before.</returns> protected static string GetConfigLocation(NavigationContext context) { string result = context.GetContextVariable(CONFIG_LOCATION_KEY, false) as string; if (result == null) context.SetContextVariable(CONFIG_LOCATION_KEY, result = "/"); return result; }
protected internal static void SetMode(string mode, NavigationContext context) { if (context == null) return; context.SetContextVariable(Consts.KEY_NAVIGATION_MODE, mode); }
void updateState(NavigationContext context) { bool updateList = false; navigationData = GetNavigationData(context); if (context.WorkflowState.StateId == Guids.ViewItemsState && (navigationData == null || navigationData.StartupState != startupState)) { updateList = true; navigationData = getStartupNavigationData(); context.SetContextVariable(NavigationData.NAVIGATION_DATA, navigationData); } if (navigationData != null) { Header = navigationData.DisplayName; ItemsList items = Items; if (items != null && updateList) { items.Clear(); foreach (ListItem item in navigationData.ItemsList) items.Add(item); items.FireChange(); } else { items = new ItemsList(); foreach (ListItem item in navigationData.ItemsList) items.Add(item); Items = items; } } }