Index: Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj
===================================================================
diff -u -rd9deb9cd1a014270bb216a10c36b09d594f740d1 -r50437248686b1183bb0f23de244f7a36beef36a6
--- Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj (.../Core.Common.Gui.csproj) (revision d9deb9cd1a014270bb216a10c36b09d594f740d1)
+++ Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj (.../Core.Common.Gui.csproj) (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -123,6 +123,9 @@
True
Resources.resx
+
+ UserControl
+
Index: Core/Common/src/Core.Common.Gui/Forms/ProjectExplorer/ProjectExplorer.Designer.cs
===================================================================
diff -u
--- Core/Common/src/Core.Common.Gui/Forms/ProjectExplorer/ProjectExplorer.Designer.cs (revision 0)
+++ Core/Common/src/Core.Common.Gui/Forms/ProjectExplorer/ProjectExplorer.Designer.cs (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -0,0 +1,87 @@
+// Copyright (C) Stichting Deltares 2021. All rights reserved.
+//
+// This file is part of Riskeer.
+//
+// Riskeer is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+namespace Core.Common.Gui.Forms.ProjectExplorer
+{
+ partial class ProjectExplorer
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProjectExplorer));
+ this.treeViewPanel = new System.Windows.Forms.Panel();
+ this.treeViewControl = new Core.Common.Controls.TreeView.TreeViewControl();
+ this.treeViewPanel.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // treeViewPanel
+ //
+ this.treeViewPanel.Controls.Add(this.treeViewControl);
+ resources.ApplyResources(this.treeViewPanel, "treeViewPanel");
+ this.treeViewPanel.Name = "treeViewPanel";
+ //
+ // treeViewControl
+ //
+ resources.ApplyResources(this.treeViewControl, "treeViewControl");
+ this.treeViewControl.Name = "treeViewControl";
+ //
+ // ProjectExplorer
+ //
+ resources.ApplyResources(this, "$this");
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.treeViewPanel);
+ this.Name = "ProjectExplorer";
+ this.treeViewPanel.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Panel treeViewPanel;
+ private Common.Controls.TreeView.TreeViewControl treeViewControl;
+ }
+}
Index: Core/Common/src/Core.Common.Gui/Forms/ProjectExplorer/ProjectExplorer.cs
===================================================================
diff -u
--- Core/Common/src/Core.Common.Gui/Forms/ProjectExplorer/ProjectExplorer.cs (revision 0)
+++ Core/Common/src/Core.Common.Gui/Forms/ProjectExplorer/ProjectExplorer.cs (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -0,0 +1,129 @@
+// Copyright (C) Stichting Deltares 2021. All rights reserved.
+//
+// This file is part of Riskeer.
+//
+// Riskeer is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+using Core.Common.Controls.TreeView;
+using Core.Common.Gui.Commands;
+using Core.Common.Gui.Properties;
+using Core.Common.Util.Events;
+
+namespace Core.Common.Gui.Forms.ProjectExplorer
+{
+ ///
+ /// This class describes a Project Explorer, which can be used to navigate and open views for elements
+ /// in the project.
+ ///
+ public sealed partial class ProjectExplorer : UserControl, IProjectExplorer
+ {
+ private readonly IViewCommands viewCommands;
+
+ public event EventHandler SelectionChanged;
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The provider of view related commands.
+ /// The of which
+ /// are used to draw nodes.
+ /// Thrown when either:
+ ///
+ /// is null ,
+ /// is null
+ ///
+ ///
+ public ProjectExplorer(IViewCommands viewCommands, IEnumerable treeNodeInfos)
+ {
+ if (viewCommands == null)
+ {
+ throw new ArgumentNullException(nameof(viewCommands));
+ }
+
+ if (treeNodeInfos == null)
+ {
+ throw new ArgumentNullException(nameof(treeNodeInfos));
+ }
+
+ InitializeComponent();
+
+ Text = Resources.ProjectExplorer_DisplayName;
+
+ this.viewCommands = viewCommands;
+
+ RegisterTreeNodeInfos(treeNodeInfos);
+ BindTreeInteractionEvents();
+ }
+
+ public object Data
+ {
+ get
+ {
+ return treeViewControl.Data;
+ }
+ set
+ {
+ if (!IsDisposed)
+ {
+ treeViewControl.Data = value;
+ }
+ }
+ }
+
+ public object Selection
+ {
+ get
+ {
+ return treeViewControl.SelectedData;
+ }
+ }
+
+ private void BindTreeInteractionEvents()
+ {
+ treeViewControl.DataDoubleClick += TreeViewControlDataDoubleClick;
+ treeViewControl.DataDeleted += TreeViewControlDataDeleted;
+ treeViewControl.SelectedDataChanged += TreeViewControlSelectedDataChanged;
+ }
+
+ private void RegisterTreeNodeInfos(IEnumerable treeNodeInfos)
+ {
+ foreach (TreeNodeInfo info in treeNodeInfos)
+ {
+ treeViewControl.RegisterTreeNodeInfo(info);
+ }
+ }
+
+ private void TreeViewControlSelectedDataChanged(object sender, EventArgs e)
+ {
+ SelectionChanged?.Invoke(this, new EventArgs());
+ }
+
+ private void TreeViewControlDataDoubleClick(object sender, EventArgs e)
+ {
+ viewCommands.OpenViewForSelection();
+ }
+
+ private void TreeViewControlDataDeleted(object sender, EventArgs e)
+ {
+ viewCommands.RemoveAllViewsForItem(e.Value);
+ }
+ }
+}
\ No newline at end of file
Index: Core/Common/src/Core.Common.Gui/Forms/ProjectExplorer/ProjectExplorer.resx
===================================================================
diff -u
--- Core/Common/src/Core.Common.Gui/Forms/ProjectExplorer/ProjectExplorer.resx (revision 0)
+++ Core/Common/src/Core.Common.Gui/Forms/ProjectExplorer/ProjectExplorer.resx (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -0,0 +1,192 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Fill
+
+
+
+ 0
+
+
+
+ 0, 0
+
+
+ 0
+
+
+ 375, 352
+
+
+ 0
+
+
+ treeViewControl
+
+
+ Core.Common.Controls.TreeView.TreeView, Core.Common.Controls.TreeView, Culture=neutral, PublicKeyToken=null
+
+
+ treeViewPanel
+
+
+ 0
+
+
+ Fill
+
+
+ 0, 0
+
+
+ 375, 352
+
+
+ 5
+
+
+ treeViewPanel
+
+
+ System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ $this
+
+
+ 0
+
+
+ True
+
+
+ 6, 13
+
+
+ 375, 352
+
+
+ ProjectExplorer
+
+
+ System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
Index: Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs
===================================================================
diff -u -re63a6c37c6df68f5af5f7bb02b2affc6876e4bee -r50437248686b1183bb0f23de244f7a36beef36a6
--- Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision e63a6c37c6df68f5af5f7bb02b2affc6876e4bee)
+++ Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -1137,6 +1137,15 @@
}
///
+ /// Looks up a localized string similar to Projectverkenner.
+ ///
+ public static string ProjectExplorer_DisplayName {
+ get {
+ return ResourceManager.GetString("ProjectExplorer_DisplayName", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
public static System.Drawing.Bitmap ProjectIcon {
Index: Core/Common/src/Core.Common.Gui/Properties/Resources.resx
===================================================================
diff -u -re63a6c37c6df68f5af5f7bb02b2affc6876e4bee -r50437248686b1183bb0f23de244f7a36beef36a6
--- Core/Common/src/Core.Common.Gui/Properties/Resources.resx (.../Resources.resx) (revision e63a6c37c6df68f5af5f7bb02b2affc6876e4bee)
+++ Core/Common/src/Core.Common.Gui/Properties/Resources.resx (.../Resources.resx) (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -595,4 +595,7 @@
Grafiek
+
+ Projectverkenner
+
\ No newline at end of file
Index: Core/Common/test/Core.Common.Gui.Test/Forms/ProjectExplorer/ProjectExplorerTest.cs
===================================================================
diff -u
--- Core/Common/test/Core.Common.Gui.Test/Forms/ProjectExplorer/ProjectExplorerTest.cs (revision 0)
+++ Core/Common/test/Core.Common.Gui.Test/Forms/ProjectExplorer/ProjectExplorerTest.cs (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -0,0 +1,318 @@
+// Copyright (C) Stichting Deltares 2021. All rights reserved.
+//
+// This file is part of Riskeer.
+//
+// Riskeer is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.Windows.Forms;
+using Core.Common.Base.Data;
+using Core.Common.Controls.TreeView;
+using Core.Common.Gui.Commands;
+using Core.Common.Gui.Forms.ProjectExplorer;
+using Core.Common.TestUtil;
+using Core.Common.Util.Reflection;
+using NUnit.Extensions.Forms;
+using NUnit.Framework;
+using Rhino.Mocks;
+
+namespace Core.Common.Gui.Test.Forms.ProjectExplorer
+{
+ [TestFixture]
+ public class ProjectExplorerTest : NUnitFormTest
+ {
+ [Test]
+ [TestCase(0)]
+ [TestCase(1)]
+ public void Constructor_ArgumentsNull_ThrowsArgumentNullException(int paramNullIndex)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ IViewCommands viewCommands = paramNullIndex == 0 ? null : mocks.StrictMock();
+ IEnumerable treeNodeInfos = paramNullIndex == 1 ? null : Enumerable.Empty();
+
+ mocks.ReplayAll();
+
+ // Call
+ TestDelegate test = () => new Common.Gui.Forms.ProjectExplorer.ProjectExplorer(viewCommands, treeNodeInfos);
+
+ // Assert
+ Assert.Throws(test);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Constructor_NoNullArguments_CreatesNewInstance()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewCommands = mocks.StrictMock();
+ IEnumerable treeNodeInfos = Enumerable.Empty();
+
+ mocks.ReplayAll();
+
+ // Call
+ using (var explorer = new Common.Gui.Forms.ProjectExplorer.ProjectExplorer(viewCommands, treeNodeInfos))
+ {
+ // Assert
+ Assert.IsInstanceOf(explorer);
+ Assert.IsInstanceOf(explorer);
+ Assert.IsNull(explorer.Data);
+ }
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Data_Always_SetTreeViewControlData()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewCommands = mocks.StrictMock();
+ var project = mocks.Stub();
+
+ mocks.ReplayAll();
+
+ IEnumerable treeNodeInfos = new[]
+ {
+ new TreeNodeInfo
+ {
+ TagType = typeof(IProject)
+ }
+ };
+
+ using (var explorer = new Common.Gui.Forms.ProjectExplorer.ProjectExplorer(viewCommands, treeNodeInfos))
+ {
+ var treeViewControl = TypeUtils.GetField(explorer, "treeViewControl");
+
+ // Call
+ explorer.Data = project;
+
+ // Assert
+ Assert.AreSame(project, treeViewControl.Data);
+ }
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void ProjectDataDeleted_Always_CallsRemoveAllViewsForItemWithTag()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewCommands = mocks.StrictMock();
+ var project = mocks.Stub();
+
+ viewCommands.Expect(vc => vc.RemoveAllViewsForItem(project));
+
+ mocks.ReplayAll();
+
+ IEnumerable treeNodeInfos = new[]
+ {
+ new TreeNodeInfo
+ {
+ TagType = typeof(IProject),
+ CanRemove = (item, parent) => true
+ }
+ };
+
+ DialogBoxHandler = (name, wnd) =>
+ {
+ var messageBox = new MessageBoxTester(wnd);
+ messageBox.ClickOk();
+ };
+
+ using (var explorer = new Common.Gui.Forms.ProjectExplorer.ProjectExplorer(viewCommands, treeNodeInfos)
+ {
+ Data = project
+ })
+ {
+ var treeViewControl = TypeUtils.GetField(explorer, "treeViewControl");
+
+ // Call
+ treeViewControl.TryRemoveNodeForData(project);
+ }
+
+ // Assert
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [Apartment(ApartmentState.STA)]
+ public void TreeViewSelectedNodeChanged_Always_SelectionChangedFired()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewCommands = mocks.StrictMock();
+
+ var project = mocks.Stub();
+ const string stringA = "testA";
+
+ mocks.ReplayAll();
+
+ const string stringB = "testB";
+
+ IEnumerable treeNodeInfos = new[]
+ {
+ new TreeNodeInfo
+ {
+ TagType = typeof(IProject),
+ ChildNodeObjects = o => new object[]
+ {
+ stringA,
+ stringB
+ }
+ },
+ new TreeNodeInfo
+ {
+ TagType = typeof(string)
+ }
+ };
+
+ using (var explorer = new Common.Gui.Forms.ProjectExplorer.ProjectExplorer(viewCommands, treeNodeInfos)
+ {
+ Data = project
+ })
+ {
+ var treeViewControl = TypeUtils.GetField(explorer, "treeViewControl");
+
+ WindowsFormsTestHelper.Show(treeViewControl);
+
+ var selectionChangedCount = 0;
+ explorer.SelectionChanged += (sender, args) => selectionChangedCount++;
+
+ // Call
+ treeViewControl.TrySelectNodeForData(stringA);
+
+ // Assert
+ Assert.AreEqual(1, selectionChangedCount);
+ }
+
+ WindowsFormsTestHelper.CloseAll();
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [Apartment(ApartmentState.STA)]
+ public void TreeViewEnterPress_Always_OpenViewForSelection()
+ {
+ // Setup
+ const string treeIdentifier = "SomeName";
+ const string formIdentifier = "SomeForm";
+ var mocks = new MockRepository();
+
+ var viewCommands = mocks.StrictMock();
+ viewCommands.Expect(a => a.OpenViewForSelection());
+
+ var project = mocks.Stub();
+
+ mocks.ReplayAll();
+
+ IEnumerable treeNodeInfos = new[]
+ {
+ new TreeNodeInfo
+ {
+ TagType = typeof(IProject)
+ }
+ };
+
+ using (var explorer = new Common.Gui.Forms.ProjectExplorer.ProjectExplorer(viewCommands, treeNodeInfos)
+ {
+ Data = project
+ })
+ {
+ var form = new Form
+ {
+ Name = formIdentifier
+ };
+ form.Controls.Add(explorer);
+ form.Show();
+
+ var treeViewControl = TypeUtils.GetField(explorer, "treeViewControl");
+
+ TypeUtils.GetField(treeViewControl, "treeView").Name = treeIdentifier;
+
+ // Precondition
+ Assert.AreSame(treeViewControl.SelectedData, project);
+
+ var tester = new TreeViewTester(treeIdentifier);
+
+ // Call
+ tester.DoubleClick();
+ }
+
+ // Assert
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [Apartment(ApartmentState.STA)]
+ public void Selection_Always_ReturnsSelectedNodeData()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewCommands = mocks.StrictMock();
+ var project = mocks.Stub();
+
+ mocks.ReplayAll();
+
+ const string stringA = "testA";
+ const string stringB = "testB";
+
+ IEnumerable treeNodeInfos = new[]
+ {
+ new TreeNodeInfo
+ {
+ TagType = typeof(IProject),
+ ChildNodeObjects = o => new object[]
+ {
+ stringA,
+ stringB
+ }
+ },
+ new TreeNodeInfo
+ {
+ TagType = typeof(string)
+ }
+ };
+
+ using (var explorer = new Common.Gui.Forms.ProjectExplorer.ProjectExplorer(viewCommands, treeNodeInfos)
+ {
+ Data = project
+ })
+ {
+ var treeViewControl = TypeUtils.GetField(explorer, "treeViewControl");
+
+ WindowsFormsTestHelper.Show(treeViewControl);
+ treeViewControl.TrySelectNodeForData(stringA);
+
+ // Call
+ object selection = explorer.Selection;
+
+ // Assert
+ Assert.AreSame(stringA, selection);
+ }
+
+ WindowsFormsTestHelper.CloseAll();
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Fisheye: Tag 50437248686b1183bb0f23de244f7a36beef36a6 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorer.Designer.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 50437248686b1183bb0f23de244f7a36beef36a6 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorer.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 50437248686b1183bb0f23de244f7a36beef36a6 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorer.resx'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerPlugin.cs
===================================================================
diff -u -r2247cb12b320db2490950094f19ae92ad546c35c -r50437248686b1183bb0f23de244f7a36beef36a6
--- Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerPlugin.cs (.../ProjectExplorerPlugin.cs) (revision 2247cb12b320db2490950094f19ae92ad546c35c)
+++ Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerPlugin.cs (.../ProjectExplorerPlugin.cs) (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -26,6 +26,7 @@
using Core.Common.Controls.TreeView;
using Core.Common.Gui;
using Core.Common.Gui.Commands;
+using Core.Common.Gui.Forms.ProjectExplorer;
using Core.Common.Gui.Plugin;
using Core.Plugins.ProjectExplorer.Exceptions;
using ProjectExplorerResources = Core.Plugins.ProjectExplorer.Properties.Resources;
Index: Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerViewController.cs
===================================================================
diff -u -rcbde09a1860a8a4480b958d6671de3480b995886 -r50437248686b1183bb0f23de244f7a36beef36a6
--- Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerViewController.cs (.../ProjectExplorerViewController.cs) (revision cbde09a1860a8a4480b958d6671de3480b995886)
+++ Core/Plugins/src/Core.Plugins.ProjectExplorer/ProjectExplorerViewController.cs (.../ProjectExplorerViewController.cs) (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -26,6 +26,7 @@
using Core.Common.Controls.TreeView;
using Core.Common.Gui;
using Core.Common.Gui.Commands;
+using Core.Common.Gui.Forms.ProjectExplorer;
using Core.Common.Gui.Forms.ViewHost;
using Core.Plugins.ProjectExplorer.Properties;
@@ -40,7 +41,7 @@
private readonly IEnumerable treeNodeInfos;
private readonly IViewCommands viewCommands;
- private ProjectExplorer projectExplorer;
+ private Common.Gui.Forms.ProjectExplorer.ProjectExplorer projectExplorer;
///
/// Fired when the project explorer view has been opened.
@@ -142,7 +143,7 @@
private void OpenProjectExplorer()
{
- projectExplorer = new ProjectExplorer(viewCommands, treeNodeInfos);
+ projectExplorer = new Common.Gui.Forms.ProjectExplorer.ProjectExplorer(viewCommands, treeNodeInfos);
viewController.ViewHost.AddToolView(projectExplorer, ToolViewLocation.Left);
viewController.ViewHost.SetImage(projectExplorer, Resources.ProjectExplorerIcon);
Index: Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/Commands/ToggleProjectExplorerCommandTest.cs
===================================================================
diff -u -rcbde09a1860a8a4480b958d6671de3480b995886 -r50437248686b1183bb0f23de244f7a36beef36a6
--- Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/Commands/ToggleProjectExplorerCommandTest.cs (.../ToggleProjectExplorerCommandTest.cs) (revision cbde09a1860a8a4480b958d6671de3480b995886)
+++ Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/Commands/ToggleProjectExplorerCommandTest.cs (.../ToggleProjectExplorerCommandTest.cs) (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -90,11 +90,11 @@
if (isViewOpen)
{
- viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull,
+ viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull,
Arg.Matches(vl => vl == ToolViewLocation.Left)))
- .WhenCalled(invocation => toolViewList.Add(invocation.Arguments[0] as ProjectExplorer));
+ .WhenCalled(invocation => toolViewList.Add(invocation.Arguments[0] as Common.Gui.Forms.ProjectExplorer.ProjectExplorer));
viewHost.Expect(tvc => tvc.SetImage(null, null)).IgnoreArguments();
- viewHost.Expect(vm => vm.Remove(Arg.Is.TypeOf));
+ viewHost.Expect(vm => vm.Remove(Arg.Is.TypeOf));
}
var viewController = mocks.StrictMock();
@@ -135,12 +135,12 @@
var viewHost = mocks.StrictMock();
viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
- viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull,
+ viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull,
Arg.Matches(vl => vl == ToolViewLocation.Left)))
- .WhenCalled(invocation => toolViewList.Add(invocation.Arguments[0] as ProjectExplorer));
+ .WhenCalled(invocation => toolViewList.Add(invocation.Arguments[0] as Common.Gui.Forms.ProjectExplorer.ProjectExplorer));
viewHost.Stub(vm => vm.SetImage(null, null)).IgnoreArguments();
- viewHost.Expect(tvc => tvc.Remove(Arg.Is.TypeOf));
+ viewHost.Expect(tvc => tvc.Remove(Arg.Is.TypeOf));
var viewController = mocks.StrictMock();
viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);
Index: Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerPluginTest.cs
===================================================================
diff -u -r54c889ff0f67cd16eb8371a7e9c468444a4732ba -r50437248686b1183bb0f23de244f7a36beef36a6
--- Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerPluginTest.cs (.../ProjectExplorerPluginTest.cs) (revision 54c889ff0f67cd16eb8371a7e9c468444a4732ba)
+++ Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerPluginTest.cs (.../ProjectExplorerPluginTest.cs) (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -78,7 +78,7 @@
gui.Stub(g => g.ViewCommands).Return(mocks.Stub());
gui.Stub(g => g.GetTreeNodeInfos()).Return(Enumerable.Empty());
viewHost.Stub(vm => vm.ToolViews).Return(new IView[0]);
- viewHost.Stub(vm => vm.AddToolView(Arg.Is.TypeOf, Arg.Matches(vl => vl == ToolViewLocation.Left)));
+ viewHost.Stub(vm => vm.AddToolView(Arg.Is.TypeOf, Arg.Matches(vl => vl == ToolViewLocation.Left)));
viewHost.Stub(vm => vm.SetImage(null, null)).IgnoreArguments();
gui.Stub(g => g.ViewHost).Return(viewHost);
gui.Expect(g => g.ProjectOpened += null).IgnoreArguments();
@@ -111,7 +111,7 @@
gui.Stub(g => g.ViewCommands).Return(mocks.Stub());
gui.Stub(g => g.GetTreeNodeInfos()).Return(Enumerable.Empty());
viewHost.Stub(vm => vm.ToolViews).Return(new IView[0]);
- viewHost.Stub(vm => vm.AddToolView(Arg.Is.TypeOf, Arg.Matches(vl => vl == ToolViewLocation.Left)));
+ viewHost.Stub(vm => vm.AddToolView(Arg.Is.TypeOf, Arg.Matches(vl => vl == ToolViewLocation.Left)));
viewHost.Stub(vm => vm.SetImage(null, null)).IgnoreArguments();
gui.Stub(g => g.ViewHost).Return(viewHost);
gui.Stub(g => g.ProjectOpened += null).IgnoreArguments();
@@ -150,7 +150,7 @@
gui.Stub(g => g.ViewCommands).Return(mocks.Stub());
gui.Stub(g => g.GetTreeNodeInfos()).Return(Enumerable.Empty());
viewHost.Stub(vm => vm.ToolViews).Return(new IView[0]);
- viewHost.Stub(vm => vm.AddToolView(Arg.Is.TypeOf, Arg.Matches(vl => vl == ToolViewLocation.Left)));
+ viewHost.Stub(vm => vm.AddToolView(Arg.Is.TypeOf, Arg.Matches(vl => vl == ToolViewLocation.Left)));
viewHost.Stub(vm => vm.SetImage(null, null)).IgnoreArguments();
gui.Stub(g => g.ViewHost).Return(viewHost);
gui.Stub(g => g.ProjectOpened += null).IgnoreArguments();
@@ -241,11 +241,11 @@
// Activate
var toolViews = new List();
viewHost.Stub(vm => vm.ToolViews).Return(toolViews);
- viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull, Arg.Matches(vl => vl == ToolViewLocation.Left))).WhenCalled(invocation => toolViews.Add(invocation.Arguments[0] as ProjectExplorer));
+ viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull, Arg.Matches(vl => vl == ToolViewLocation.Left))).WhenCalled(invocation => toolViews.Add(invocation.Arguments[0] as Common.Gui.Forms.ProjectExplorer.ProjectExplorer));
viewHost.Expect(vm => vm.SetImage(null, null)).IgnoreArguments();
// Dispose
- viewHost.Expect(tvc => tvc.Remove(Arg.Is.NotNull));
+ viewHost.Expect(tvc => tvc.Remove(Arg.Is.NotNull));
gui.Expect(g => g.ProjectOpened += null).IgnoreArguments();
gui.Expect(g => g.ProjectOpened -= null).IgnoreArguments();
Fisheye: Tag 50437248686b1183bb0f23de244f7a36beef36a6 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerViewControllerTest.cs
===================================================================
diff -u -rcbde09a1860a8a4480b958d6671de3480b995886 -r50437248686b1183bb0f23de244f7a36beef36a6
--- Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerViewControllerTest.cs (.../ProjectExplorerViewControllerTest.cs) (revision cbde09a1860a8a4480b958d6671de3480b995886)
+++ Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerViewControllerTest.cs (.../ProjectExplorerViewControllerTest.cs) (revision 50437248686b1183bb0f23de244f7a36beef36a6)
@@ -68,11 +68,11 @@
var toolViewList = new List();
viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
- viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull,
+ viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull,
Arg.Matches(vl => vl == ToolViewLocation.Left)))
- .WhenCalled(invocation => toolViewList.Add(invocation.Arguments[0] as ProjectExplorer));
+ .WhenCalled(invocation => toolViewList.Add(invocation.Arguments[0] as Common.Gui.Forms.ProjectExplorer.ProjectExplorer));
viewHost.Expect(vm => vm.SetImage(null, null)).IgnoreArguments();
- viewHost.Expect(vm => vm.Remove(Arg.Is.TypeOf));
+ viewHost.Expect(vm => vm.Remove(Arg.Is.TypeOf));
var viewController = mocks.StrictMock();
viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);
@@ -101,7 +101,7 @@
var viewHost = mocks.Stub();
viewHost.Stub(vm => vm.ToolViews).Return(new List());
- viewHost.Stub(vm => vm.AddToolView(Arg.Is.TypeOf, Arg.Matches(vl => vl == ToolViewLocation.Left)));
+ viewHost.Stub(vm => vm.AddToolView(Arg.Is.TypeOf, Arg.Matches(vl => vl == ToolViewLocation.Left)));
viewHost.Expect(vm => vm.SetImage(null, null)).IgnoreArguments();
var viewController = mocks.StrictMock();
@@ -138,11 +138,11 @@
if (isOpen)
{
- viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull,
+ viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull,
Arg.Matches(vl => vl == ToolViewLocation.Left)))
- .WhenCalled(invocation => toolViewList.Add(invocation.Arguments[0] as ProjectExplorer));
+ .WhenCalled(invocation => toolViewList.Add(invocation.Arguments[0] as Common.Gui.Forms.ProjectExplorer.ProjectExplorer));
viewHost.Expect(vm => vm.SetImage(null, null)).IgnoreArguments();
- viewHost.Expect(vm => vm.Remove(Arg.Is.TypeOf));
+ viewHost.Expect(vm => vm.Remove(Arg.Is.TypeOf));
}
mocks.ReplayAll();
@@ -175,11 +175,11 @@
var toolViewList = new List();
viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
- viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull,
+ viewHost.Expect(vm => vm.AddToolView(Arg.Is.NotNull,
Arg.Matches(vl => vl == ToolViewLocation.Left)))
- .WhenCalled(invocation => toolViewList.Add(invocation.Arguments[0] as ProjectExplorer));
+ .WhenCalled(invocation => toolViewList.Add(invocation.Arguments[0] as Common.Gui.Forms.ProjectExplorer.ProjectExplorer));
viewHost.Expect(vm => vm.SetImage(null, null)).IgnoreArguments();
- viewHost.Expect(vm => vm.Remove(Arg.Is.TypeOf));
+ viewHost.Expect(vm => vm.Remove(Arg.Is.TypeOf));
var viewController = mocks.Stub();
viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);