/// <summary> /// (Re)loads all workflow states from the plugin tree. /// </summary> protected void ReloadWorkflowStates() { ServiceRegistration.Get<ILogger>().Debug(_states.Count == 0 ? "WorkflowManager: Loading workflow states and shortcuts" : "WorkflowManager: Reloading workflow states and shortcuts"); EnterWriteLock("ReloadWorkflowStates"); try { // First remove any previously created shortcuts UnregisterStateShortcuts(); IPluginManager pluginManager = ServiceRegistration.Get<IPluginManager>(); _states.Clear(); foreach (WorkflowState state in pluginManager.RequestAllPluginItems<WorkflowState>(WORKFLOW_STATES_REGISTRATION_LOCATION, _wfStateItemStateTracker)) _states.Add(state.StateId, state); int count = 0; int numPop = 0; foreach (NavigationContext context in _navigationContextStack) { count++; if (!context.WorkflowState.IsTransient && !_states.ContainsKey(context.WorkflowState.StateId)) numPop = count; } if (numPop > 0) NavigatePop(numPop); ServiceRegistration.Get<ILogger>().Debug("WorkflowManager: Loading workflow state shortcuts"); ShortcutResourcesLoader shortcutLoader = new ShortcutResourcesLoader(); shortcutLoader.LoadWorkflowStateShortcuts(); _workflowStateShortcuts = shortcutLoader.WorkflowStateShortcuts; // Register shortcuts after (re-)loading RegisterStateShortcuts(); } finally { ExitWriteLock(); } }
/// <summary> /// (Re)loads all workflow resources from the skin resource manager. This also includes shortcut definitions. /// </summary> protected void ReloadWorkflowActions() { ServiceRegistration.Get<ILogger>().Debug(_states.Count == 0 ? "WorkflowManager: Loading workflow actions and shortcuts" : "WorkflowManager: Reloading workflow actions and shortcuts"); WorkflowResourcesLoader loader = new WorkflowResourcesLoader(); loader.Load(); EnterWriteLock("ReloadWorkflowActions"); // First remove any previously created shortcuts UnregisterActionShortcuts(); _menuActions = loader.MenuActions; ServiceRegistration.Get<ILogger>().Debug("WorkflowManager: Loading workflow action shortcuts"); ShortcutResourcesLoader shortcutLoader = new ShortcutResourcesLoader(); shortcutLoader.LoadWorkflowActionShortcuts(); _workflowActionShortcuts = shortcutLoader.WorkflowActionShortcuts; // Register shortcuts after (re-)loading RegisterActionShortcuts(); ExitWriteLock(); }