/// <summary> /// Updates active workspace and AssemblyList according to <see cref="PersistedWorkspace.IsActive"/> flags. /// </summary> void UpdateActiveWorkspace() { var mainAssemblyList = SD.ClassBrowser.MainAssemblyList; if ((mainAssemblyList != null) && (activeWorkspace != null)) { // Temporarily detach from event handler mainAssemblyList.Assemblies.CollectionChanged -= AssemblyListCollectionChanged; } activeWorkspace = persistedWorkspaces.FirstOrDefault(w => w.IsActive); if (activeWorkspace == null) { // If no workspace is active, activate default var defaultWorkspace = persistedWorkspaces.FirstOrDefault(w => w.Name == DefaultWorkspaceName); activeWorkspace = defaultWorkspace; defaultWorkspace.IsActive = true; } mainAssemblyList.Assemblies.Clear(); if (activeWorkspace != null) { foreach (string assemblyFile in activeWorkspace.AssemblyFiles) { AppendAssemblyFileToList(assemblyFile); } } // Attach to event handler, again. if (mainAssemblyList != null) { mainAssemblyList.Assemblies.CollectionChanged += AssemblyListCollectionChanged; } }
/// <summary> /// Activates the specified workspace. /// </summary> void ActivateWorkspace(PersistedWorkspace workspace) { // Update the activation flags in workspace list foreach (var workspaceElement in persistedWorkspaces) { workspaceElement.IsActive = (workspaceElement == workspace); } UpdateActiveWorkspace(); }
/// <summary> /// Loads persisted workspaces from configuration. /// </summary> void LoadWorkspaces() { persistedWorkspaces = SD.PropertyService.GetList <PersistedWorkspace>(PersistedWorkspaceSetting).ToList(); if (!persistedWorkspaces.Any()) { // Add at least default workspace persistedWorkspaces = new List <PersistedWorkspace>(); persistedWorkspaces.Add(new PersistedWorkspace() { Name = DefaultWorkspaceName }); } // Load all assemblies (for now always from default workspace) PersistedWorkspace defaultWorkspace = persistedWorkspaces.FirstOrDefault(w => w.Name == DefaultWorkspaceName); ActivateWorkspace(defaultWorkspace); }
/// <summary> /// Updates active workspace and AssemblyList according to <see cref="PersistedWorkspace.IsActive"/> flags. /// </summary> void UpdateActiveWorkspace() { var mainAssemblyList = SD.ClassBrowser.MainAssemblyList; if ((mainAssemblyList != null) && (activeWorkspace != null)) { // Temporarily detach from event handler mainAssemblyList.Assemblies.CollectionChanged -= AssemblyListCollectionChanged; } activeWorkspace = persistedWorkspaces.FirstOrDefault(w => w.IsActive); if (activeWorkspace == null) { // If no workspace is active, activate default var defaultWorkspace = persistedWorkspaces.FirstOrDefault(w => w.Name == DefaultWorkspaceName); activeWorkspace = defaultWorkspace; defaultWorkspace.IsActive = true; } mainAssemblyList.Assemblies.Clear(); if (activeWorkspace != null) { foreach (string assemblyFile in activeWorkspace.AssemblyFiles) { AppendAssemblyFileToList(assemblyFile); } } // Attach to event handler, again. if (mainAssemblyList != null) { mainAssemblyList.Assemblies.CollectionChanged += AssemblyListCollectionChanged; } }
/// <summary> /// Activates the specified workspace. /// </summary> void ActivateWorkspace(PersistedWorkspace workspace) { // Update the activation flags in workspace list foreach (var workspaceElement in persistedWorkspaces) { workspaceElement.IsActive = (workspaceElement == workspace); } UpdateActiveWorkspace(); }