Index: src/DeltaShell/DeltaShell.Plugins.ProjectExplorer/ProjectExplorerGuiPlugin.cs =================================================================== diff -u -r2ace0d3a03d5bf9e372a9c1032f996488fe2c4eb -r5fc71a385897af92ccb092f2f969b5709afab85a --- src/DeltaShell/DeltaShell.Plugins.ProjectExplorer/ProjectExplorerGuiPlugin.cs (.../ProjectExplorerGuiPlugin.cs) (revision 2ace0d3a03d5bf9e372a9c1032f996488fe2c4eb) +++ src/DeltaShell/DeltaShell.Plugins.ProjectExplorer/ProjectExplorerGuiPlugin.cs (.../ProjectExplorerGuiPlugin.cs) (revision 5fc71a385897af92ccb092f2f969b5709afab85a) @@ -13,8 +13,6 @@ [Extension(typeof(IPlugin))] public class ProjectExplorerGuiPlugin : GuiPlugin { - private ProjectExplorer projectExplorer; - private readonly IList projectTreeViewNodePresenters; public ProjectExplorerGuiPlugin() @@ -23,38 +21,80 @@ projectTreeViewNodePresenters = new List(); } - public static ProjectExplorerGuiPlugin Instance { get; private set; } - public override string Name { - get { return Properties.Resources.ProjectExplorerGuiPlugin_Name_Project_Explorer__UI_; } + get + { + return Properties.Resources.ProjectExplorerGuiPlugin_Name_Project_Explorer__UI_; + } } public override string DisplayName { - get { return Properties.Resources.ProjectExplorerGuiPlugin_DisplayName_Delta_Shell_Project_Explorer__UI_; } + get + { + return Properties.Resources.ProjectExplorerGuiPlugin_DisplayName_Delta_Shell_Project_Explorer__UI_; + } } public override string Description { - get { return Properties.Resources.ProjectExplorerGuiPlugin_Description_TreeView_representation_of_a_project; } + get + { + return Properties.Resources.ProjectExplorerGuiPlugin_Description_TreeView_representation_of_a_project; + } } public override string Version { - get { return GetType().Assembly.GetName().Version.ToString(); } + get + { + return GetType().Assembly.GetName().Version.ToString(); + } } public override Image Image { - get { return Properties.Resources.DLTRS.ToBitmap(); } + get + { + return Properties.Resources.DLTRS.ToBitmap(); + } } - public ProjectExplorer ProjectExplorer + public override IRibbonCommandHandler RibbonCommandHandler { - get { return projectExplorer; } + get + { + return new Ribbon(); + } } + public static ProjectExplorerGuiPlugin Instance { get; private set; } + + public ProjectExplorer ProjectExplorer { get; private set; } + + public void InitializeProjectTreeView() + { + if ((ProjectExplorer == null) || (ProjectExplorer.IsDisposed)) + { + ProjectExplorer = new ProjectExplorer(this) + { + Image = Properties.Resources.Project + }; + + UpdateProjectTreeViewWithRegisteredNodePresenters(); + + // todo redesign user settings to expand settings per plugin + //var isSorted = Gui.Application.Settings["IsProjectExplorerSorted"]; + //projectExplorer.ProjectTreeView.IsSorted = (isSorted == null || bool.Parse(isSorted)); + ProjectExplorer.ProjectTreeView.Project = Gui.Application.Project; + ProjectExplorer.Text = Properties.Resources.ProjectExplorerPluginGui_InitializeProjectTreeView_Project_Explorer; + } + + //add project treeview as a toolwindowview. + Gui.ToolWindowViews.Add(ProjectExplorer, ViewLocation.Left | ViewLocation.Top); + } + public override void Activate() { base.Activate(); @@ -72,8 +112,8 @@ public override void Dispose() { - projectExplorer.Dispose(); - projectExplorer = null; + ProjectExplorer.Dispose(); + ProjectExplorer = null; foreach (var projectTreeViewNodePresenter in projectTreeViewNodePresenters) { @@ -90,43 +130,19 @@ Gui.Application.ProjectClosing -= ApplicationProjectClosed; Gui.Application.ProjectSaving -= ApplicationOnProjectSaving; Gui.Application.ProjectSaved -= ApplicationProjectSaved; - Gui.ToolWindowViews.Remove(projectExplorer); + Gui.ToolWindowViews.Remove(ProjectExplorer); //should the 'instance' be set to null as well??? } - public override IRibbonCommandHandler RibbonCommandHandler - { - get { return new Ribbon(); } - } - /// /// TODO: refactor it to IMenuItem /// public override IMenuItem GetContextMenu(object sender, object nodeTag) { - return projectExplorer != null ? projectExplorer.ProjectTreeView.GetContextMenu(nodeTag) : null; + return ProjectExplorer != null ? ProjectExplorer.ProjectTreeView.GetContextMenu(nodeTag) : null; } - public void InitializeProjectTreeView() - { - if ((projectExplorer == null) || (projectExplorer.IsDisposed)) - { - projectExplorer = new ProjectExplorer(this) { Image = Plugins.ProjectExplorer.Properties.Resources.Project }; - - UpdateProjectTreeViewWithRegisteredNodePresenters(); - - // todo redesign user settings to expand settings per plugin - //var isSorted = Gui.Application.Settings["IsProjectExplorerSorted"]; - //projectExplorer.ProjectTreeView.IsSorted = (isSorted == null || bool.Parse(isSorted)); - projectExplorer.ProjectTreeView.Project = Gui.Application.Project; - projectExplorer.Text = Plugins.ProjectExplorer.Properties.Resources.ProjectExplorerPluginGui_InitializeProjectTreeView_Project_Explorer; - } - - //add project treeview as a toolwindowview. - Gui.ToolWindowViews.Add(projectExplorer, ViewLocation.Left | ViewLocation.Top); - } - private void FillProjectTreeViewNodePresentersFromPlugins() { // query all existing plugin guis @@ -140,31 +156,31 @@ private void ApplicationProjectSaved(Project project) { - projectExplorer.EndWaitMode(); + ProjectExplorer.EndWaitMode(); } private void ApplicationOnProjectSaving(Project project) { - projectExplorer.BeginWaitMode(); + ProjectExplorer.BeginWaitMode(); } - + private void ApplicationProjectClosed(Project project) { - projectExplorer.ProjectTreeView.Project = null; + ProjectExplorer.ProjectTreeView.Project = null; } - + private void ApplicationProjectOpened(Project project) { - projectExplorer.ProjectTreeView.Project = project; + ProjectExplorer.ProjectTreeView.Project = project; } private void UpdateProjectTreeViewWithRegisteredNodePresenters() { foreach (var np in projectTreeViewNodePresenters) { - if (!projectExplorer.ProjectTreeView.TreeView.NodePresenters.Contains(np)) + if (!ProjectExplorer.ProjectTreeView.TreeView.NodePresenters.Contains(np)) { - projectExplorer.ProjectTreeView.TreeView.NodePresenters.Add(np); + ProjectExplorer.ProjectTreeView.TreeView.NodePresenters.Add(np); } } }