Ejemplo n.º 1
0
    /// <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();
      }
    }
Ejemplo n.º 2
0
    /// <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();
    }