Index: Core/Common/src/Core.Common.Controls.Swf/FileSystemTreeView.cs =================================================================== diff -u -rf43e90a16e94b36691e0ebb8e9ffa5989678b093 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/src/Core.Common.Controls.Swf/FileSystemTreeView.cs (.../FileSystemTreeView.cs) (revision f43e90a16e94b36691e0ebb8e9ffa5989678b093) +++ Core/Common/src/Core.Common.Controls.Swf/FileSystemTreeView.cs (.../FileSystemTreeView.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -144,7 +144,7 @@ { private static readonly Bitmap ComputerIcon = Resources.computer; - public override IEnumerable GetChildNodeObjects(ComputerInfo parentNodeData, ITreeNode node) + public override IEnumerable GetChildNodeObjects(ComputerInfo parentNodeData) { foreach (var logicalDrive in Environment.GetLogicalDrives()) { @@ -165,7 +165,7 @@ private static readonly Bitmap FolderIcon = Resources.folder; public string SearchPattern { get; set; } - public override IEnumerable GetChildNodeObjects(DirectoryInfo parentNodeData, ITreeNode node) + public override IEnumerable GetChildNodeObjects(DirectoryInfo parentNodeData) { var childDirectories = Enumerable.Empty(); try @@ -207,7 +207,7 @@ private static readonly Bitmap DriveIcon = Resources.drive; public string SearchPattern { get; set; } - public override IEnumerable GetChildNodeObjects(DriveInfo parentNodeData, ITreeNode node) + public override IEnumerable GetChildNodeObjects(DriveInfo parentNodeData) { var list = new List(); if (parentNodeData.IsReady) Index: Core/Common/src/Core.Common.Controls.Swf/TreeViewControls/TreeViewController.cs =================================================================== diff -u -r622c20f6fc0b693b67a3e57b2ece939823002c62 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/src/Core.Common.Controls.Swf/TreeViewControls/TreeViewController.cs (.../TreeViewController.cs) (revision 622c20f6fc0b693b67a3e57b2ece939823002c62) +++ Core/Common/src/Core.Common.Controls.Swf/TreeViewControls/TreeViewController.cs (.../TreeViewController.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -223,7 +223,7 @@ return; } - var childNodeObjects = nodePresenter.GetChildNodeObjects(treeNode.Tag, treeNode); + var childNodeObjects = nodePresenter.GetChildNodeObjects(treeNode.Tag); if (childNodeObjects == null) { return; @@ -360,7 +360,7 @@ private IEnumerable GetChildNodeObjects(ITreeNode treeNode) { - return (AskNodePresenter(treeNode, p => p.GetChildNodeObjects(treeNode.Tag, treeNode), null) ?? + return (AskNodePresenter(treeNode, p => p.GetChildNodeObjects(treeNode.Tag), null) ?? new object[0]).OfType(); } Index: Core/Common/src/Core.Common.Controls.Swf/TreeViewControls/TreeViewNodePresenterBase.cs =================================================================== diff -u -r8a9a2efad299327b082088189b9a37c32c55a890 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/src/Core.Common.Controls.Swf/TreeViewControls/TreeViewNodePresenterBase.cs (.../TreeViewNodePresenterBase.cs) (revision 8a9a2efad299327b082088189b9a37c32c55a890) +++ Core/Common/src/Core.Common.Controls.Swf/TreeViewControls/TreeViewNodePresenterBase.cs (.../TreeViewNodePresenterBase.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -22,7 +22,7 @@ public abstract void UpdateNode(ITreeNode parentNode, ITreeNode node, T nodeData); - public virtual IEnumerable GetChildNodeObjects(T parentNodeData, ITreeNode node) + public virtual IEnumerable GetChildNodeObjects(T parentNodeData) { return new object[0]; } @@ -84,9 +84,9 @@ UpdateNode(parentNode, node, data); } - IEnumerable ITreeNodePresenter.GetChildNodeObjects(object parentNodeData, ITreeNode node) + IEnumerable ITreeNodePresenter.GetChildNodeObjects(object parentNodeData) { - return GetChildNodeObjects((T) parentNodeData, node); + return GetChildNodeObjects((T) parentNodeData); } /// Will return false. @@ -184,7 +184,7 @@ var indexOf = IndexInParent(presenter, parentNode, e.Item); if (indexOf >= 0) { - ((TreeNode) parentNode).HasChildren = presenter.GetChildNodeObjects(parentNode.Tag, parentNode).GetEnumerator().MoveNext(); + ((TreeNode) parentNode).HasChildren = presenter.GetChildNodeObjects(parentNode.Tag).GetEnumerator().MoveNext(); OnCollectionChanged((T) e.Item, parentNode, e, indexOf); return; // only one Node per tag is supported for now } @@ -209,7 +209,7 @@ { return; } - ((TreeNode) parentNode).HasChildren = parentPresenter.GetChildNodeObjects(parentNode.Tag, parentNode).GetEnumerator().MoveNext(); + ((TreeNode) parentNode).HasChildren = parentPresenter.GetChildNodeObjects(parentNode.Tag).GetEnumerator().MoveNext(); OnCollectionChanged((T) e.Item, parentNode, e, -1); } } @@ -305,7 +305,7 @@ private static int IndexInParent(ITreeNodePresenter presenter, ITreeNode parentNode, object item) { - var childItems = presenter.GetChildNodeObjects(parentNode.Tag, parentNode).OfType().ToList(); + var childItems = presenter.GetChildNodeObjects(parentNode.Tag).OfType().ToList(); var i = 0; foreach (var childItem in childItems) { Index: Core/Common/src/Core.Common.Controls/ITreeNodePresenter.cs =================================================================== diff -u -r8a9a2efad299327b082088189b9a37c32c55a890 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/src/Core.Common.Controls/ITreeNodePresenter.cs (.../ITreeNodePresenter.cs) (revision 8a9a2efad299327b082088189b9a37c32c55a890) +++ Core/Common/src/Core.Common.Controls/ITreeNodePresenter.cs (.../ITreeNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -33,13 +33,12 @@ /// /// Returns array of child objects for for which nodes should be added. /// - /// The data belonging to the parent node specified by - /// The parent node whose child object should be returned + /// The data belonging to the parent node. /// /// The collection of child objects. /// Post condition: Shall not return null. /// - IEnumerable GetChildNodeObjects(object parentNodeData, ITreeNode node); + IEnumerable GetChildNodeObjects(object parentNodeData); /// /// Indicates whether the node text property is editable. Index: Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs =================================================================== diff -u --- Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs (revision 0) +++ Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -0,0 +1,86 @@ +using System.Windows.Forms; +using Core.Common.Controls; + +namespace Core.Common.Gui.ContextMenu +{ + public class ContextMenuBuilder + { + private readonly ContextMenuItemFactory itemsFactory; + private readonly ContextMenuStrip contextMenu; + private readonly ITreeNode treeNode; + + public ContextMenuBuilder(IGui gui, ITreeNode treeNode) + { + contextMenu = new ContextMenuStrip(); + itemsFactory = new ContextMenuItemFactory(gui); + this.treeNode = treeNode; + } + + public ContextMenuBuilder AddExpandAllItem() + { + AddItem(itemsFactory.CreateExpandAllItem(treeNode)); + return this; + } + + public ContextMenuBuilder AddCollapseAllItem() + { + AddItem(itemsFactory.CreateCollapseAllItem(treeNode)); + return this; + } + + public ContextMenuBuilder AddExportItem() + { + AddItem(itemsFactory.CreateExportItem(treeNode)); + return this; + } + + public ContextMenuBuilder AddImportItem() + { + AddItem(itemsFactory.CreateImportItem(treeNode)); + return this; + } + + public ContextMenuBuilder AddPropertiesItem() + { + AddItem(itemsFactory.CreatePropertiesItem(treeNode)); + return this; + } + + public ContextMenuBuilder AddSeparator() + { + if (MayAddSeparator()) + { + AddItem(new ToolStripSeparator()); + } + return this; + } + + private bool MayAddSeparator() + { + if (contextMenu.Items.Count == 0) + { + return false; + } + return !(contextMenu.Items[contextMenu.Items.Count - 1] is ToolStripSeparator); + } + + public ContextMenuBuilder AddCustomItem(ToolStripMenuItem item) + { + AddItem(item); + return this; + } + + public ContextMenuStrip Build() + { + return contextMenu; + } + + private void AddItem(ToolStripItem item) + { + if (item != null) + { + contextMenu.Items.Add(item); + } + } + } +} \ No newline at end of file Index: Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuItemFactory.cs =================================================================== diff -u --- Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuItemFactory.cs (revision 0) +++ Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuItemFactory.cs (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -0,0 +1,112 @@ +using System.Linq; +using System.Windows.Forms; +using Core.Common.Controls; +using Core.Common.Gui.Properties; + +namespace Core.Common.Gui.ContextMenu +{ + internal class ContextMenuItemFactory + { + private readonly IGui gui; + + public ContextMenuItemFactory(IGui gui) + { + this.gui = gui; + } + + public ToolStripItem CreateExpandAllItem(ITreeNode treeNode) + { + if (!GuiSet()) + { + return null; + } + var toolStripMenuItem = new ToolStripMenuItem(Resources.Expand_all) + { + ToolTipText = Resources.Expand_all_ToolTip, + Image = Resources.ExpandAllIcon + }; + toolStripMenuItem.Click += (s, e) => treeNode.TreeView.ExpandAll(treeNode); + return toolStripMenuItem; + } + + public ToolStripItem CreateCollapseAllItem(ITreeNode treeNode) + { + if (!GuiSet()) + { + return null; + } + var toolStripMenuItem = new ToolStripMenuItem(Resources.Collapse_all) + { + ToolTipText = Resources.Collapse_all_ToolTip, + Image = Resources.CollapseAllIcon + }; + toolStripMenuItem.Click += (s, e) => treeNode.TreeView.CollapseAll(treeNode); + return toolStripMenuItem; + } + + public ToolStripItem CreateExportItem(ITreeNode treeNode) + { + if (!GuiSet()) + { + return null; + } + var data = treeNode.Tag; + var exporters = gui.ApplicationCore.GetSupportedFileExporters(data); + var newItem = new ToolStripMenuItem(Resources.Export) + { + ToolTipText = Resources.Export_ToolTip, + Image = Resources.ExportIcon, + Enabled = exporters.Any() + }; + + return newItem; + } + + public ToolStripItem CreateImportItem(ITreeNode treeNode) + { + if (!GuiSet()) + { + return null; + } + var data = treeNode.Tag; + var importers = gui.ApplicationCore.GetSupportedFileImporters(data); + var newItem = new ToolStripMenuItem(Resources.Import) + { + ToolTipText = Resources.Import_ToolTip, + Image = Resources.ImportIcon, + Enabled = importers.Any() + }; + + return newItem; + } + + public ToolStripItem CreatePropertiesItem(ITreeNode treeNode) + { + if (!GuiSet()) + { + return null; + } + var data = treeNode.Tag; + var propertyInfos = gui.Plugins.SelectMany(p => p.GetPropertyInfos()).Where(pi => pi.ObjectType == data.GetType()); + var newItem = new ToolStripMenuItem(Resources.Properties) + { + ToolTipText = Resources.Properties_ToolTip, + Image = Resources.PropertiesIcon, + Enabled = propertyInfos.Any() + }; + + var guiCommandHandler = gui.CommandHandler; + if (guiCommandHandler != null) + { + newItem.Click += (s, e) => guiCommandHandler.ShowProperties(); + } + + return newItem; + } + + private bool GuiSet() + { + return gui != null; + } + } +} \ No newline at end of file Fisheye: Tag e388ea76d1d044298cc89156c8744fbea1bcb736 refers to a dead (removed) revision in file `Core/Common/src/Core.Common.Gui/ContextMenuItemFactory.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj =================================================================== diff -u -rd626df632ea0fa550e1e0811dce714b9486ee926 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj (.../Core.Common.Gui.csproj) (revision d626df632ea0fa550e1e0811dce714b9486ee926) +++ Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj (.../Core.Common.Gui.csproj) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -130,10 +130,11 @@ Properties\GlobalAssembly.cs + - + @@ -363,6 +364,9 @@ Always + + + Index: Core/Common/src/Core.Common.Gui/IContextMenuProvider.cs =================================================================== diff -u -ra85e384df91356b2c2716591531a863e01da876b -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/src/Core.Common.Gui/IContextMenuProvider.cs (.../IContextMenuProvider.cs) (revision a85e384df91356b2c2716591531a863e01da876b) +++ Core/Common/src/Core.Common.Gui/IContextMenuProvider.cs (.../IContextMenuProvider.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -1,9 +1,10 @@ -using System.Windows.Forms; +using Core.Common.Controls; +using Core.Common.Gui.ContextMenu; namespace Core.Common.Gui { public interface IContextMenuProvider { - ContextMenuStrip Get(object obj); + ContextMenuBuilder Get(ITreeNode obj); } } \ No newline at end of file Index: Core/Common/src/Core.Common.Gui/Properties/AssemblyInfo.cs =================================================================== diff -u -re071372c05b65a79f5155b0fca6f37f6fd3ccc86 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/src/Core.Common.Gui/Properties/AssemblyInfo.cs (.../AssemblyInfo.cs) (revision e071372c05b65a79f5155b0fca6f37f6fd3ccc86) +++ Core/Common/src/Core.Common.Gui/Properties/AssemblyInfo.cs (.../AssemblyInfo.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -1,6 +1,8 @@ using System.Reflection; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Core.Common.Gui")] [assembly: AssemblyProduct("Core.Common.Gui")] -[assembly: Guid("b3c117b3-ebeb-43cd-9784-6ec81d1ced36")] \ No newline at end of file +[assembly: Guid("b3c117b3-ebeb-43cd-9784-6ec81d1ced36")] +[assembly: InternalsVisibleTo("Core.Common.Gui.Tests")] \ No newline at end of file Index: Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs =================================================================== diff -u -rd626df632ea0fa550e1e0811dce714b9486ee926 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision d626df632ea0fa550e1e0811dce714b9486ee926) +++ Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -502,8 +502,36 @@ } /// + /// Looks up a localized string similar to Alles i&nklappen. + /// + public static string Collapse_all { + get { + return ResourceManager.GetString("Collapse_all", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Klap deze knoop en al zijn kinderen in.. + /// + public static string Collapse_all_ToolTip { + get { + return ResourceManager.GetString("Collapse_all_ToolTip", resourceCulture); + } + } + + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// + public static System.Drawing.Bitmap CollapseAllIcon { + get { + object obj = ResourceManager.GetObject("CollapseAllIcon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// public static System.Drawing.Bitmap control_play { get { object obj = ResourceManager.GetObject("control_play", resourceCulture); @@ -748,6 +776,24 @@ } /// + /// Looks up a localized string similar to Alles ui&tklappen. + /// + public static string Expand_all { + get { + return ResourceManager.GetString("Expand_all", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Klap deze knoop en al zijn kinderen uit.. + /// + public static string Expand_all_ToolTip { + get { + return ResourceManager.GetString("Expand_all_ToolTip", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Aantal ({0}). /// public static string ExpandableArrayConverter_ConvertTo_Count_0_ { @@ -757,6 +803,16 @@ } /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap ExpandAllIcon { + get { + object obj = ResourceManager.GetObject("ExpandAllIcon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// /// Looks up a localized string similar to &Exporteren.... /// public static string Export { Index: Core/Common/src/Core.Common.Gui/Properties/Resources.resx =================================================================== diff -u -rd626df632ea0fa550e1e0811dce714b9486ee926 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/src/Core.Common.Gui/Properties/Resources.resx (.../Resources.resx) (revision d626df632ea0fa550e1e0811dce714b9486ee926) +++ Core/Common/src/Core.Common.Gui/Properties/Resources.resx (.../Resources.resx) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -842,4 +842,22 @@ ..\resources\property.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\resources\arrow-stop-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Alles i&nklappen + + + Klap deze knoop en al zijn kinderen in. + + + ..\resources\arrow-stop-270.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Alles ui&tklappen + + + Klap deze knoop en al zijn kinderen uit. + \ No newline at end of file Index: Core/Common/src/Core.Common.Gui/Resources/arrow-stop-090.png =================================================================== diff -u Binary files differ Index: Core/Common/src/Core.Common.Gui/Resources/arrow-stop-270.png =================================================================== diff -u Binary files differ Index: Core/Common/src/Core.Common.Gui/Resources/table_delete.png =================================================================== diff -u Binary files differ Index: Core/Common/src/Core.Common.Gui/RingtoetsGui.cs =================================================================== diff -u -rbc238ea43fae81b8a49aa2bdb2c8349815c46039 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/src/Core.Common.Gui/RingtoetsGui.cs (.../RingtoetsGui.cs) (revision bc238ea43fae81b8a49aa2bdb2c8349815c46039) +++ Core/Common/src/Core.Common.Gui/RingtoetsGui.cs (.../RingtoetsGui.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -12,6 +12,7 @@ using Core.Common.Base.Workflow; using Core.Common.Controls; using Core.Common.Controls.Swf; +using Core.Common.Gui.ContextMenu; using Core.Common.Gui.Forms.MainWindow; using Core.Common.Gui.Forms.MessageWindow; using Core.Common.Gui.Forms.ProgressDialog; @@ -62,7 +63,6 @@ private bool isExiting; private Project project; private IActivityRunner activityRunner; - private ContextMenuItemFactory contextMenuItemFactory; private bool userSettingsDirty; private ApplicationSettingsBase userSettings; @@ -94,8 +94,6 @@ ProjectClosing += ApplicationProjectClosing; ProjectOpened += ApplicationProjectOpened; - contextMenuItemFactory = new ContextMenuItemFactory(this); - ActivityRunner = new ActivityRunner(); } @@ -1074,14 +1072,9 @@ Dispose(false); } - public ContextMenuStrip Get(object obj) + public ContextMenuBuilder Get(ITreeNode obj) { - ContextMenuStrip contextMenu = new ContextMenuStrip(); - contextMenu.Items.Add(contextMenuItemFactory.CreateImportItem(obj)); - contextMenu.Items.Add(contextMenuItemFactory.CreateExportItem(obj)); - contextMenu.Items.Add(new ToolStripSeparator()); - contextMenu.Items.Add(contextMenuItemFactory.CreatePropertiesItem(obj)); - return contextMenu; + return new ContextMenuBuilder(this, obj); } } } \ No newline at end of file Index: Core/Common/test/Core.Common.Base.Tests/Controls/Swf/TreeViewControls/TreeViewControllerTest.cs =================================================================== diff -u -r6a2a618c5c06dcc94b092420bda2b193cfd2663a -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/test/Core.Common.Base.Tests/Controls/Swf/TreeViewControls/TreeViewControllerTest.cs (.../TreeViewControllerTest.cs) (revision 6a2a618c5c06dcc94b092420bda2b193cfd2663a) +++ Core/Common/test/Core.Common.Base.Tests/Controls/Swf/TreeViewControls/TreeViewControllerTest.cs (.../TreeViewControllerTest.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -178,7 +178,7 @@ LastCall.On(treeview).IgnoreArguments(); Expect.Call(nodePresenter.NodeTagType).Return(typeof(object)).Repeat.Any(); - Expect.Call(nodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(Enumerable.Empty()); + Expect.Call(nodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(Enumerable.Empty()); Expect.Call(() => nodePresenter.UpdateNode(null, null, null)).IgnoreArguments(); mocks.ReplayAll(); @@ -234,7 +234,7 @@ LastCall.On(treeview).IgnoreArguments(); Expect.Call(nodePresenter.NodeTagType).Return(typeof(Parent)).Repeat.Any(); - Expect.Call(nodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(Enumerable.Empty()); + Expect.Call(nodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(Enumerable.Empty()); Expect.Call(() => nodePresenter.UpdateNode(null, null, null)).IgnoreArguments(); // Property changed is bubbled to nodePresenter => expect 1 call during parent.Name = "Test" @@ -295,7 +295,7 @@ parentNodePresenter.TreeView = treeview; Expect.Call(parentNodePresenter.NodeTagType).Return(typeof(Parent)).Repeat.Any(); - Expect.Call(parentNodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(new[] + Expect.Call(parentNodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(new[] { child1, child2 @@ -352,7 +352,7 @@ treeView.Expect(tv => tv.RefreshChildNodes(null)).IgnoreArguments().Repeat.Once(); Expect.Call(parentNodePresenter.NodeTagType).Return(typeof(Parent)).Repeat.Any(); - Expect.Call(parentNodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(Enumerable.Empty()).Repeat.Twice(); + Expect.Call(parentNodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(Enumerable.Empty()).Repeat.Twice(); Expect.Call(() => parentNodePresenter.UpdateNode(null, null, null)).IgnoreArguments(); mocks.ReplayAll(); @@ -387,13 +387,13 @@ parentNodePresenter.TreeView = treeview; Expect.Call(parentNodePresenter.NodeTagType).Return(typeof(Parent)).Repeat.Any(); Expect.Call(() => parentNodePresenter.UpdateNode(null, null, null)).IgnoreArguments(); - Expect.Call(parentNodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(parent.Children).Repeat.Any(); + Expect.Call(parentNodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(parent.Children).Repeat.Any(); childNodePresenter.TreeView = treeview; Expect.Call(childNodePresenter.NodeTagType).Return(typeof(Child)).Repeat.Any(); Expect.Call(() => childNodePresenter.UpdateNode(null, null, null)).IgnoreArguments().Repeat.Times(5); - Expect.Call(childNodePresenter.GetChildNodeObjects(parent, null)).Return(parent.Children).Repeat.Any(); - Expect.Call(childNodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(Enumerable.Empty()).Repeat.Any(); + Expect.Call(childNodePresenter.GetChildNodeObjects(parent)).Return(parent.Children).Repeat.Any(); + Expect.Call(childNodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(Enumerable.Empty()).Repeat.Any(); mocks.ReplayAll(); @@ -414,7 +414,7 @@ // simulate removing child2 from parent by changing the number of children returned by the parent node presenter parentNodePresenter.BackToRecord(BackToRecordOptions.All); Expect.Call(parentNodePresenter.NodeTagType).Return(typeof(Parent)).Repeat.Any(); - Expect.Call(parentNodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(new[] + Expect.Call(parentNodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(new[] { child1 }); @@ -444,7 +444,7 @@ parentNodePresenter.TreeView = treeview; Expect.Call(parentNodePresenter.NodeTagType).Return(typeof(Parent)).Repeat.Any(); Expect.Call(() => parentNodePresenter.UpdateNode(null, null, null)).IgnoreArguments(); - Expect.Call(parentNodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(new[] + Expect.Call(parentNodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(new[] { child1, child2 @@ -453,7 +453,7 @@ childNodePresenter.TreeView = treeview; Expect.Call(childNodePresenter.NodeTagType).Return(typeof(Child)).Repeat.Any(); Expect.Call(() => childNodePresenter.UpdateNode(null, null, null)).IgnoreArguments().Repeat.Times(6); - Expect.Call(childNodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(Enumerable.Empty()).Repeat.Any(); + Expect.Call(childNodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(Enumerable.Empty()).Repeat.Any(); mocks.ReplayAll(); @@ -499,7 +499,7 @@ nodePresenter.TreeView = treeview; Expect.Call(nodePresenter.NodeTagType).Return(typeof(object)).Repeat.Any(); - Expect.Call(nodePresenter.GetChildNodeObjects(tag, null)).IgnoreArguments().Return(new[] + Expect.Call(nodePresenter.GetChildNodeObjects(tag)).IgnoreArguments().Return(new[] { new object() }); @@ -553,14 +553,14 @@ parentNodePresenter.TreeView = treeview; Expect.Call(parentNodePresenter.NodeTagType).Return(typeof(Parent)).Repeat.Any(); - Expect.Call(parentNodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(new[] + Expect.Call(parentNodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(new[] { child }).Repeat.Any(); childNodePresenter.TreeView = treeview; Expect.Call(childNodePresenter.NodeTagType).Return(typeof(Child)).Repeat.Any(); - Expect.Call(childNodePresenter.GetChildNodeObjects(null, null)).IgnoreArguments().Return(Enumerable.Empty()).Repeat.Any(); + Expect.Call(childNodePresenter.GetChildNodeObjects(null)).IgnoreArguments().Return(Enumerable.Empty()).Repeat.Any(); // expect 1 update call for the parent & child Expect.Call(() => parentNodePresenter.UpdateNode(null, null, null)).IgnoreArguments(); Index: Core/Common/test/Core.Common.Base.Tests/Controls/Swf/TreeViewControls/TreeViewNodePresenterBaseTest.cs =================================================================== diff -u -r7bcd564343094615f52e49178f27f7bfe22cebc8 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/test/Core.Common.Base.Tests/Controls/Swf/TreeViewControls/TreeViewNodePresenterBaseTest.cs (.../TreeViewNodePresenterBaseTest.cs) (revision 7bcd564343094615f52e49178f27f7bfe22cebc8) +++ Core/Common/test/Core.Common.Base.Tests/Controls/Swf/TreeViewControls/TreeViewNodePresenterBaseTest.cs (.../TreeViewNodePresenterBaseTest.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -266,7 +266,7 @@ node.Text = nodeData.Name; } - public override IEnumerable GetChildNodeObjects(TestGroup parentNodeData, ITreeNode node) + public override IEnumerable GetChildNodeObjects(TestGroup parentNodeData) { return parentNodeData.Children; } @@ -279,7 +279,7 @@ node.Text = nodeData.Name; } - public override IEnumerable GetChildNodeObjects(TestGroup parentNodeData, ITreeNode node) + public override IEnumerable GetChildNodeObjects(TestGroup parentNodeData) { return parentNodeData.Children; } Index: Core/Common/test/Core.Common.Base.Tests/Controls/Swf/TreeViewControls/TreeViewTest.cs =================================================================== diff -u -r4e08a66b9a5e271df99e1056f928cf8adf8d9cd6 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/test/Core.Common.Base.Tests/Controls/Swf/TreeViewControls/TreeViewTest.cs (.../TreeViewTest.cs) (revision 4e08a66b9a5e271df99e1056f928cf8adf8d9cd6) +++ Core/Common/test/Core.Common.Base.Tests/Controls/Swf/TreeViewControls/TreeViewTest.cs (.../TreeViewTest.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -446,7 +446,7 @@ node.Text = nodeData.Name; } - public override IEnumerable GetChildNodeObjects(Parent parentNodeData, ITreeNode node) + public override IEnumerable GetChildNodeObjects(Parent parentNodeData) { // always returns a single child with the same name yield return new Child Index: Core/Common/test/Core.Common.Base.Tests/TestObjects/ChildNodePresenter.cs =================================================================== diff -u -r275f55bd5c011375598d201bd95c02cb8da63dba -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/test/Core.Common.Base.Tests/TestObjects/ChildNodePresenter.cs (.../ChildNodePresenter.cs) (revision 275f55bd5c011375598d201bd95c02cb8da63dba) +++ Core/Common/test/Core.Common.Base.Tests/TestObjects/ChildNodePresenter.cs (.../ChildNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -46,7 +46,7 @@ } } - public override IEnumerable GetChildNodeObjects(Child parentNodeData, ITreeNode node) + public override IEnumerable GetChildNodeObjects(Child parentNodeData) { return parentNodeData.Children; } Index: Core/Common/test/Core.Common.Base.Tests/TestObjects/ParentNodePresenter.cs =================================================================== diff -u -r3debb2835679b29531ce363c17d5fde650cbdca3 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/test/Core.Common.Base.Tests/TestObjects/ParentNodePresenter.cs (.../ParentNodePresenter.cs) (revision 3debb2835679b29531ce363c17d5fde650cbdca3) +++ Core/Common/test/Core.Common.Base.Tests/TestObjects/ParentNodePresenter.cs (.../ParentNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -11,7 +11,7 @@ node.Text = nodeData.Name; } - public override IEnumerable GetChildNodeObjects(Parent parentNodeData, ITreeNode node) + public override IEnumerable GetChildNodeObjects(Parent parentNodeData) { return parentNodeData.Children; } Index: Core/Common/test/Core.Common.Gui.Test/ContextMenuItemFactoryTest.cs =================================================================== diff -u -r3d0bcb2ef15e3e8e171f75e0a8cfa20a0a2bbd5e -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/test/Core.Common.Gui.Test/ContextMenuItemFactoryTest.cs (.../ContextMenuItemFactoryTest.cs) (revision 3d0bcb2ef15e3e8e171f75e0a8cfa20a0a2bbd5e) +++ Core/Common/test/Core.Common.Gui.Test/ContextMenuItemFactoryTest.cs (.../ContextMenuItemFactoryTest.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -1,6 +1,7 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using Core.Common.Base; +using Core.Common.Controls; +using Core.Common.Gui.ContextMenu; using Core.Common.TestUtils; using NUnit.Framework; using Rhino.Mocks; @@ -27,6 +28,8 @@ { // Setup var guiMock = mocks.StrictMock(); + var treeNodeMock = mocks.Stub(); + treeNodeMock.Tag = ""; var applicationCore = new ApplicationCore(); applicationCore.AddPlugin(new TestApplicationPlugin(mocks)); guiMock.Expect(g => g.ApplicationCore).Return(applicationCore); @@ -35,7 +38,7 @@ mocks.ReplayAll(); // Call - var item = contextMenuFactory.CreateExportItem(""); + var item = contextMenuFactory.CreateExportItem(treeNodeMock); // Assert Assert.AreEqual(Properties.Resources.Export, item.Text); @@ -49,6 +52,8 @@ { // Setup var guiMock = mocks.StrictMock(); + var treeNodeMock = mocks.Stub(); + treeNodeMock.Tag = 0; var applicationCore = new ApplicationCore(); applicationCore.AddPlugin(new TestApplicationPlugin(mocks)); guiMock.Expect(g => g.ApplicationCore).Return(applicationCore); @@ -57,7 +62,7 @@ mocks.ReplayAll(); // Call - var item = contextMenuFactory.CreateExportItem(0); + var item = contextMenuFactory.CreateExportItem(treeNodeMock); // Assert Assert.AreEqual(Properties.Resources.Export, item.Text); @@ -71,6 +76,8 @@ { // Setup var guiMock = mocks.StrictMock(); + var treeNodeMock = mocks.Stub(); + treeNodeMock.Tag = ""; var applicationCore = new ApplicationCore(); applicationCore.AddPlugin(new TestApplicationPlugin(mocks)); guiMock.Expect(g => g.ApplicationCore).Return(applicationCore); @@ -79,7 +86,7 @@ mocks.ReplayAll(); // Call - var item = contextMenuFactory.CreateImportItem(""); + var item = contextMenuFactory.CreateImportItem(treeNodeMock); // Assert Assert.AreEqual(Properties.Resources.Import, item.Text); @@ -93,6 +100,8 @@ { // Setup var guiMock = mocks.StrictMock(); + var treeNodeMock = mocks.Stub(); + treeNodeMock.Tag = 0; var applicationCore = new ApplicationCore(); applicationCore.AddPlugin(new TestApplicationPlugin(mocks)); guiMock.Expect(g => g.ApplicationCore).Return(applicationCore); @@ -101,7 +110,7 @@ mocks.ReplayAll(); // Call - var item = contextMenuFactory.CreateImportItem(0); + var item = contextMenuFactory.CreateImportItem(treeNodeMock); // Assert Assert.AreEqual(Properties.Resources.Import, item.Text); @@ -115,14 +124,16 @@ { // Setup var guiMock = mocks.StrictMock(); + var treeNodeMock = mocks.Stub(); + treeNodeMock.Tag = 0; guiMock.Expect(g => g.Plugins).Return(pluginList); guiMock.Expect(g => g.CommandHandler).Return(null); var contextMenuFactory = new ContextMenuItemFactory(guiMock); mocks.ReplayAll(); // Call - var item = contextMenuFactory.CreatePropertiesItem(0); + var item = contextMenuFactory.CreatePropertiesItem(treeNodeMock); // Assert Assert.AreEqual(Properties.Resources.Properties, item.Text); @@ -138,14 +149,16 @@ { // Setup var guiMock = mocks.StrictMock(); + var treeNodeMock = mocks.Stub(); + treeNodeMock.Tag = ""; guiMock.Expect(g => g.Plugins).Return(pluginList); guiMock.Expect(g => g.CommandHandler).Return(null); var contextMenuFactory = new ContextMenuItemFactory(guiMock); mocks.ReplayAll(); // Call - var item = contextMenuFactory.CreatePropertiesItem(""); + var item = contextMenuFactory.CreatePropertiesItem(treeNodeMock); // Assert Assert.AreEqual(Properties.Resources.Properties, item.Text); @@ -161,13 +174,15 @@ { // Setup var guiMock = mocks.StrictMock(); + var treeNodeMock = mocks.Stub(); + treeNodeMock.Tag = 0; guiMock.Expect(g => g.Plugins).Return(pluginList); guiMock.Expect(g => g.CommandHandler).Return(null); var contextMenuFactory = new ContextMenuItemFactory(guiMock); mocks.ReplayAll(); - var item = contextMenuFactory.CreatePropertiesItem(0); + var item = contextMenuFactory.CreatePropertiesItem(treeNodeMock); // Call & Assert item.PerformClick(); @@ -180,6 +195,8 @@ { // Setup var guiMock = mocks.StrictMock(); + var treeNodeMock = mocks.Stub(); + treeNodeMock.Tag = 0; var commandHandlerMock = mocks.StrictMock(); guiMock.Expect(g => g.Plugins).Return(pluginList); guiMock.Expect(g => g.CommandHandler).Return(commandHandlerMock); @@ -188,7 +205,7 @@ mocks.ReplayAll(); - var item = contextMenuFactory.CreatePropertiesItem(0); + var item = contextMenuFactory.CreatePropertiesItem(treeNodeMock); // Call & Assert item.PerformClick(); Index: Core/Common/test/Core.Common.Gui.Test/Core.Common.Gui.Tests.csproj =================================================================== diff -u -r3d0bcb2ef15e3e8e171f75e0a8cfa20a0a2bbd5e -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Common/test/Core.Common.Gui.Test/Core.Common.Gui.Tests.csproj (.../Core.Common.Gui.Tests.csproj) (revision 3d0bcb2ef15e3e8e171f75e0a8cfa20a0a2bbd5e) +++ Core/Common/test/Core.Common.Gui.Test/Core.Common.Gui.Tests.csproj (.../Core.Common.Gui.Tests.csproj) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -64,6 +64,10 @@ {3bbfd65b-b277-4e50-ae6d-bd24c3434609} Core.Common.Base + + {9A2D67E6-26AC-4D17-B11A-2B4372F2F572} + Core.Common.Controls + {30e4c2ae-719e-4d70-9fa9-668a9767fbfa} Core.Common.Gui Index: Core/Plugins/src/Core.Plugins.CommonTools.Gui/Forms/Charting/ChartTreeNodePresenter.cs =================================================================== diff -u -r125002b7df54bc7ec7190146cd9b23458999c60e -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Plugins/src/Core.Plugins.CommonTools.Gui/Forms/Charting/ChartTreeNodePresenter.cs (.../ChartTreeNodePresenter.cs) (revision 125002b7df54bc7ec7190146cd9b23458999c60e) +++ Core/Plugins/src/Core.Plugins.CommonTools.Gui/Forms/Charting/ChartTreeNodePresenter.cs (.../ChartTreeNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -34,7 +34,7 @@ chart.Title = newName; } - public override IEnumerable GetChildNodeObjects(IChart chart, ITreeNode node) + public override IEnumerable GetChildNodeObjects(IChart chart) { return chart.Series.Cast(); } Index: Core/Plugins/src/Core.Plugins.ProjectExplorer/NodePresenters/ProjectNodePresenter.cs =================================================================== diff -u -r04f06b5762b758295a52944dd232394a462cf72c -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Plugins/src/Core.Plugins.ProjectExplorer/NodePresenters/ProjectNodePresenter.cs (.../ProjectNodePresenter.cs) (revision 04f06b5762b758295a52944dd232394a462cf72c) +++ Core/Plugins/src/Core.Plugins.ProjectExplorer/NodePresenters/ProjectNodePresenter.cs (.../ProjectNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -16,7 +16,7 @@ GuiPlugin = guiPlugin; } - public override IEnumerable GetChildNodeObjects(Project project, ITreeNode node) + public override IEnumerable GetChildNodeObjects(Project project) { return project.Items; } Index: Core/Plugins/src/Core.Plugins.ProjectExplorer/NodePresenters/TreeFolderNodePresenter.cs =================================================================== diff -u -ra950714ad9510756331d862aa35695fa0b2ed03b -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Plugins/src/Core.Plugins.ProjectExplorer/NodePresenters/TreeFolderNodePresenter.cs (.../TreeFolderNodePresenter.cs) (revision a950714ad9510756331d862aa35695fa0b2ed03b) +++ Core/Plugins/src/Core.Plugins.ProjectExplorer/NodePresenters/TreeFolderNodePresenter.cs (.../TreeFolderNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -17,7 +17,7 @@ node.Image = GetImage(data); } - public override IEnumerable GetChildNodeObjects(TreeFolder parentNodeData, ITreeNode node) + public override IEnumerable GetChildNodeObjects(TreeFolder parentNodeData) { return parentNodeData.ChildItems; } Index: Core/Plugins/src/Core.Plugins.SharpMapGis.Gui/Forms/MapLegendView/MapLayerTreeViewNodePresenter.cs =================================================================== diff -u -reb012559c6dd84e85838dd827a99ea0b858bffd8 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Plugins/src/Core.Plugins.SharpMapGis.Gui/Forms/MapLegendView/MapLayerTreeViewNodePresenter.cs (.../MapLayerTreeViewNodePresenter.cs) (revision eb012559c6dd84e85838dd827a99ea0b858bffd8) +++ Core/Plugins/src/Core.Plugins.SharpMapGis.Gui/Forms/MapLegendView/MapLayerTreeViewNodePresenter.cs (.../MapLayerTreeViewNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -39,7 +39,7 @@ node.IsVisible = layer.ShowInTreeView; } - public override IEnumerable GetChildNodeObjects(ILayer mapLayer, ITreeNode node) + public override IEnumerable GetChildNodeObjects(ILayer mapLayer) { var legend = new MapLayerLegend(mapLayer); Index: Core/Plugins/src/Core.Plugins.SharpMapGis.Gui/Forms/MapLegendView/MapTreeViewNodePresenter.cs =================================================================== diff -u -reb012559c6dd84e85838dd827a99ea0b858bffd8 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Plugins/src/Core.Plugins.SharpMapGis.Gui/Forms/MapLegendView/MapTreeViewNodePresenter.cs (.../MapTreeViewNodePresenter.cs) (revision eb012559c6dd84e85838dd827a99ea0b858bffd8) +++ Core/Plugins/src/Core.Plugins.SharpMapGis.Gui/Forms/MapLegendView/MapTreeViewNodePresenter.cs (.../MapTreeViewNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -57,7 +57,7 @@ } } - public override IEnumerable GetChildNodeObjects(Map map, ITreeNode node) + public override IEnumerable GetChildNodeObjects(Map map) { return map.Layers.Where(l => l.ShowInTreeView); } Index: Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapLayerTreeViewNodePresenterTest.cs =================================================================== diff -u -rf1c02b2d47dc561deec70a24128d8dd49d9bed6a -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapLayerTreeViewNodePresenterTest.cs (.../MapLayerTreeViewNodePresenterTest.cs) (revision f1c02b2d47dc561deec70a24128d8dd49d9bed6a) +++ Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapLayerTreeViewNodePresenterTest.cs (.../MapLayerTreeViewNodePresenterTest.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -173,7 +173,7 @@ Theme = gradientTheme }; - var result = mapLayerNodePresenter.GetChildNodeObjects(vectorLayer, null); + var result = mapLayerNodePresenter.GetChildNodeObjects(vectorLayer); var enumerator = result.GetEnumerator(); Assert.IsTrue(enumerator.MoveNext()); Index: Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapTreeViewNodePresenterTest.cs =================================================================== diff -u -rbc238ea43fae81b8a49aa2bdb2c8349815c46039 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapTreeViewNodePresenterTest.cs (.../MapTreeViewNodePresenterTest.cs) (revision bc238ea43fae81b8a49aa2bdb2c8349815c46039) +++ Core/Plugins/test/Core.Plugins.SharpMapGis.Tests/Forms/MapTreeViewNodePresenterTest.cs (.../MapTreeViewNodePresenterTest.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -32,7 +32,7 @@ }); var mapTreeViewNodePresenter = new MapTreeViewNodePresenter(guiPlugin); - var childNodes = mapTreeViewNodePresenter.GetChildNodeObjects(map, null); + var childNodes = mapTreeViewNodePresenter.GetChildNodeObjects(map); var enumerator = childNodes.GetEnumerator(); Assert.IsTrue(enumerator.MoveNext()); Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Extensions/ContextMenuStripExtensions.cs =================================================================== diff -u -ra85e384df91356b2c2716591531a863e01da876b -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Extensions/ContextMenuStripExtensions.cs (.../ContextMenuStripExtensions.cs) (revision a85e384df91356b2c2716591531a863e01da876b) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Extensions/ContextMenuStripExtensions.cs (.../ContextMenuStripExtensions.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -20,21 +20,7 @@ /// The newly created . public static ToolStripItem AddMenuItem(this ContextMenuStrip parentMenu, string text, string tooltip, Image icon, EventHandler clickHandler) { - return parentMenu.InsertMenuItem(parentMenu.Items.Count, text, tooltip, icon, clickHandler); - } - - /// - /// Inserts a new with all standard parameters at the given . - /// - /// The position in the to add the item to. - /// The parent menu to which the new item is added. - /// Value for . - /// Value for . - /// Value for . - /// Method to handle the user clicking on the item.. - /// The newly created . - public static ToolStripItem InsertMenuItem(this ContextMenuStrip parentMenu, int position, string text, string tooltip, Image icon, EventHandler clickHandler) - { + int position = parentMenu.Items.Count; var newItem = new ToolStripMenuItem(text) { ToolTipText = tooltip, @@ -46,26 +32,5 @@ return newItem; } - - /// - /// Adds a new . - /// - /// The parent menu to which the new item is added. - public static void AddSeperator(this ContextMenuStrip parentMenu) - { - parentMenu.InsertSeperator(parentMenu.Items.Count); - } - - /// - /// Insert a new at the given . - /// - /// The position in the to add the item to. - /// The parent menu to which the new item is added. - public static void InsertSeperator(this ContextMenuStrip parentMenu, int position) - { - var newItem = new ToolStripSeparator(); - - parentMenu.Items.Insert(position, newItem); - } } } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Forms/NodePresenters/CategoryTreeFolderNodePresenter.cs =================================================================== diff -u -r80ebf3911f46c8fde95702b7723e4457b4fd80ea -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Common/src/Ringtoets.Common.Forms/NodePresenters/CategoryTreeFolderNodePresenter.cs (.../CategoryTreeFolderNodePresenter.cs) (revision 80ebf3911f46c8fde95702b7723e4457b4fd80ea) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/NodePresenters/CategoryTreeFolderNodePresenter.cs (.../CategoryTreeFolderNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -21,7 +21,7 @@ node.Image = GetFolderIcon(nodeData.Category); } - protected override IEnumerable GetChildNodeObjects(CategoryTreeFolder nodeData, ITreeNode node) + protected override IEnumerable GetChildNodeObjects(CategoryTreeFolder nodeData) { return nodeData.Contents; } Index: Ringtoets/Common/src/Ringtoets.Common.Forms/NodePresenters/RingtoetsNodePresenterBase.cs =================================================================== diff -u -rca87cfba59d1e35ba9a281b92e5e90f8c8121db0 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Common/src/Ringtoets.Common.Forms/NodePresenters/RingtoetsNodePresenterBase.cs (.../RingtoetsNodePresenterBase.cs) (revision ca87cfba59d1e35ba9a281b92e5e90f8c8121db0) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/NodePresenters/RingtoetsNodePresenterBase.cs (.../RingtoetsNodePresenterBase.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -33,9 +33,9 @@ UpdateNode(parentNode, node, (T)nodeData); } - public IEnumerable GetChildNodeObjects(object parentNodeData, ITreeNode node) + public IEnumerable GetChildNodeObjects(object parentNodeData) { - return GetChildNodeObjects((T)parentNodeData, node).Cast(); + return GetChildNodeObjects((T)parentNodeData).Cast(); } public virtual bool CanRenameNode(ITreeNode node) @@ -118,8 +118,8 @@ /// /// Typed implementation of method . /// - /// - protected virtual IEnumerable GetChildNodeObjects(T nodeData, ITreeNode node) + /// + protected virtual IEnumerable GetChildNodeObjects(T nodeData) { return Enumerable.Empty(); } Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -rd626df632ea0fa550e1e0811dce714b9486ee926 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision d626df632ea0fa550e1e0811dce714b9486ee926) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -137,16 +137,6 @@ } /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - public static System.Drawing.Bitmap ExportIcon { - get { - object obj = ResourceManager.GetObject("ExportIcon", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// /// Looks up a localized string similar to Berekeningen. /// public static string FailureMechanism_Calculations_DisplayName { @@ -156,42 +146,6 @@ } /// - /// Looks up a localized string similar to Alles i&nklappen. - /// - public static string FailureMechanism_Collapse_all { - get { - return ResourceManager.GetString("FailureMechanism_Collapse_all", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Klap deze knoop en al zijn kinderen in.. - /// - public static string FailureMechanism_Collapse_all_ToolTip { - get { - return ResourceManager.GetString("FailureMechanism_Collapse_all_ToolTip", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Alles ui&tklappen. - /// - public static string FailureMechanism_Expand_all { - get { - return ResourceManager.GetString("FailureMechanism_Expand_all", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Klap deze knoop en al zijn kinderen uit.. - /// - public static string FailureMechanism_Expand_all_ToolTip { - get { - return ResourceManager.GetString("FailureMechanism_Expand_all_ToolTip", resourceCulture); - } - } - - /// /// Looks up a localized string similar to Invoer. /// public static string FailureMechanism_Inputs_DisplayName { @@ -276,16 +230,6 @@ /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - public static System.Drawing.Bitmap ImportIcon { - get { - object obj = ResourceManager.GetObject("ImportIcon", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// public static System.Drawing.Bitmap InputFolderIcon { get { object obj = ResourceManager.GetObject("InputFolderIcon", resourceCulture); @@ -314,16 +258,6 @@ } /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - public static System.Drawing.Bitmap PropertiesIcon { - get { - object obj = ResourceManager.GetObject("PropertiesIcon", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// /// Looks up a localized string similar to Algemeen. /// public static string Ringtoets_Category { Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx =================================================================== diff -u -rd626df632ea0fa550e1e0811dce714b9486ee926 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision d626df632ea0fa550e1e0811dce714b9486ee926) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -169,18 +169,9 @@ Open de gegevens in een nieuw documentvenster. - - ..\resources\table-export.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\resources\table-import.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\resources\arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\resources\property.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\resources\playall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -196,18 +187,6 @@ ..\Resources\arrow-stop-270.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Alles i&nklappen - - - Klap deze knoop en al zijn kinderen in. - - - Alles ui&tklappen - - - Klap deze knoop en al zijn kinderen uit. - ..\resources\table_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Resources/property.png =================================================================== diff -u -rd3747e8b32bdedc478c8182bce75fba78269d34d -re388ea76d1d044298cc89156c8744fbea1bcb736 Binary files differ Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Resources/table-export.png =================================================================== diff -u -rd3747e8b32bdedc478c8182bce75fba78269d34d -re388ea76d1d044298cc89156c8744fbea1bcb736 Binary files differ Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Resources/table-import.png =================================================================== diff -u -rd3747e8b32bdedc478c8182bce75fba78269d34d -re388ea76d1d044298cc89156c8744fbea1bcb736 Binary files differ Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj =================================================================== diff -u -r6819809d62f8609b8311b58dfef1b6ddef5701fe -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision 6819809d62f8609b8311b58dfef1b6ddef5701fe) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -95,15 +95,6 @@ - - - - - - - - - Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/NodePresenters/CategoryTreeFolderNodePresenterTest.cs =================================================================== diff -u -r80ebf3911f46c8fde95702b7723e4457b4fd80ea -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/NodePresenters/CategoryTreeFolderNodePresenterTest.cs (.../CategoryTreeFolderNodePresenterTest.cs) (revision 80ebf3911f46c8fde95702b7723e4457b4fd80ea) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/NodePresenters/CategoryTreeFolderNodePresenterTest.cs (.../CategoryTreeFolderNodePresenterTest.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -111,7 +111,7 @@ var nodePresenter = new CategoryTreeFolderNodePresenter(); // Call - IEnumerable children = nodePresenter.GetChildNodeObjects(folder, node); + IEnumerable children = nodePresenter.GetChildNodeObjects(folder); // Assert CollectionAssert.AreEqual(folder.Contents, children); Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/NodePresenters/RingtoetsNodePresenterBaseTest.cs =================================================================== diff -u -rfb32e3411873a7b4c567792b9f335eba462e2702 -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/NodePresenters/RingtoetsNodePresenterBaseTest.cs (.../RingtoetsNodePresenterBaseTest.cs) (revision fb32e3411873a7b4c567792b9f335eba462e2702) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/NodePresenters/RingtoetsNodePresenterBaseTest.cs (.../RingtoetsNodePresenterBaseTest.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -58,7 +58,7 @@ var nodePresenter = new SimpleRingtoetsNodePresenterBase(); // Call - var children = nodePresenter.GetChildNodeObjects(dataMock, nodeMock).OfType().ToArray(); + var children = nodePresenter.GetChildNodeObjects(dataMock).OfType().ToArray(); // Assert CollectionAssert.IsEmpty(children); Fisheye: Tag e388ea76d1d044298cc89156c8744fbea1bcb736 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/ContextMenu/FailureMechanismContextMenu.cs'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag e388ea76d1d044298cc89156c8744fbea1bcb736 refers to a dead (removed) revision in file `Ringtoets/Integration/src/Ringtoets.Integration.Forms/ContextMenu/PlaceholderWithReadonlyNameContextMenu.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/AssessmentSectionBaseNodePresenter.cs =================================================================== diff -u -r5c044a6799b45bec77af170dca0a84bc434c5f6f -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/AssessmentSectionBaseNodePresenter.cs (.../AssessmentSectionBaseNodePresenter.cs) (revision 5c044a6799b45bec77af170dca0a84bc434c5f6f) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/AssessmentSectionBaseNodePresenter.cs (.../AssessmentSectionBaseNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -21,7 +21,7 @@ node.Image = RingtoetsFormsResources.AssessmentSectionFolderIcon; } - protected override IEnumerable GetChildNodeObjects(AssessmentSectionBase nodeData, ITreeNode node) + protected override IEnumerable GetChildNodeObjects(AssessmentSectionBase nodeData) { yield return nodeData.ReferenceLine; yield return nodeData.FailureMechanismContribution; Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/FailureMechanismNodePresenter.cs =================================================================== diff -u -ra85e384df91356b2c2716591531a863e01da876b -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/FailureMechanismNodePresenter.cs (.../FailureMechanismNodePresenter.cs) (revision a85e384df91356b2c2716591531a863e01da876b) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/FailureMechanismNodePresenter.cs (.../FailureMechanismNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -3,6 +3,7 @@ using System.Windows.Forms; using Core.Common.Controls; using Core.Common.Gui; +using Core.Common.Gui.ContextMenu; using Ringtoets.Common.Forms.NodePresenters; using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Integration.Data.Placeholders; @@ -14,12 +15,10 @@ { public class FailureMechanismNodePresenter : RingtoetsNodePresenterBase { - private readonly IGuiCommandHandler guiHandler; private readonly IContextMenuProvider contextMenuProvider; - public FailureMechanismNodePresenter(IContextMenuProvider contextMenuProvider, IGuiCommandHandler guiHandler = null) + public FailureMechanismNodePresenter(IContextMenuProvider contextMenuProvider) { - this.guiHandler = guiHandler; this.contextMenuProvider = contextMenuProvider; } @@ -30,15 +29,41 @@ node.Image = Resources.FailureMechanismIcon; } - protected override IEnumerable GetChildNodeObjects(FailureMechanismPlaceholder nodeData, ITreeNode node) + protected override IEnumerable GetChildNodeObjects(FailureMechanismPlaceholder nodeData) { yield return new CategoryTreeFolder(RingtoetsCommonFormsResources.FailureMechanism_Inputs_DisplayName, GetInputs(nodeData), TreeFolderCategory.Input); yield return new CategoryTreeFolder(RingtoetsCommonFormsResources.FailureMechanism_Outputs_DisplayName, GetOutputs(nodeData), TreeFolderCategory.Output); } protected override ContextMenuStrip GetContextMenu(ITreeNode sender, FailureMechanismPlaceholder nodeData) { - var contextMenu = ContextMenu.FailureMechanismContextMenu.CreateContextMenu(guiHandler, TreeView, nodeData, contextMenuProvider); + ContextMenuBuilder menuBuilder = contextMenuProvider.Get(sender); + + var calculateItem = new ToolStripMenuItem + { + Text = RingtoetsCommonFormsResources.Calculate_all, + ToolTipText = RingtoetsCommonFormsResources.Calculate_all_ToolTip, + Image = RingtoetsCommonFormsResources.CalculateAllIcon, + Enabled = false + }; + var clearOutputItem = new ToolStripMenuItem + { + Text = RingtoetsCommonFormsResources.Clear_all_output, + ToolTipText = RingtoetsCommonFormsResources.Clear_all_output_ToolTip, + Image = RingtoetsCommonFormsResources.ClearIcon, + Enabled = false + }; + var contextMenu = menuBuilder.AddCustomItem(calculateItem) + .AddCustomItem(clearOutputItem) + .AddSeparator() + .AddExpandAllItem() + .AddCollapseAllItem() + .AddSeparator() + .AddImportItem() + .AddExportItem() + .AddSeparator() + .AddPropertiesItem() + .Build(); return contextMenu; } Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/PlaceholderWithReadonlyNameNodePresenter.cs =================================================================== diff -u -ra85e384df91356b2c2716591531a863e01da876b -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/PlaceholderWithReadonlyNameNodePresenter.cs (.../PlaceholderWithReadonlyNameNodePresenter.cs) (revision a85e384df91356b2c2716591531a863e01da876b) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/PlaceholderWithReadonlyNameNodePresenter.cs (.../PlaceholderWithReadonlyNameNodePresenter.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -2,9 +2,9 @@ using System.Windows.Forms; using Core.Common.Controls; using Core.Common.Gui; +using Core.Common.Gui.ContextMenu; using Ringtoets.Common.Forms.NodePresenters; using Ringtoets.Common.Placeholder; -using Ringtoets.Integration.Forms.ContextMenu; using Ringtoets.Integration.Forms.Properties; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; @@ -43,7 +43,35 @@ protected override ContextMenuStrip GetContextMenu(ITreeNode sender, PlaceholderWithReadonlyName nodeData) { - return PlaceholderWithReadonlyNameContextMenu.CreateContextMenu(nodeData, guiHandler, contextMenuProvider); + ContextMenuBuilder menuBuilder = contextMenuProvider.Get(sender); + + if (nodeData is InputPlaceholder || nodeData is OutputPlaceholder) + { + var openItem = new ToolStripMenuItem + { + Text = RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open, + ToolTipText = RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open_ToolTip, + Image = RingtoetsCommonFormsResources.OpenIcon, + Enabled = false + }; + var clearItem = new ToolStripMenuItem + { + Text = RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase, + ToolTipText = RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase_ToolTip, + Image = RingtoetsCommonFormsResources.ClearIcon, + Enabled = false + }; + + menuBuilder.AddCustomItem(openItem) + .AddCustomItem(clearItem) + .AddSeparator(); + } + + return menuBuilder.AddImportItem() + .AddExportItem() + .AddSeparator() + .AddPropertiesItem() + .Build(); } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Ringtoets.Integration.Forms.csproj =================================================================== diff -u -ra85e384df91356b2c2716591531a863e01da876b -re388ea76d1d044298cc89156c8744fbea1bcb736 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Ringtoets.Integration.Forms.csproj (.../Ringtoets.Integration.Forms.csproj) (revision a85e384df91356b2c2716591531a863e01da876b) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Ringtoets.Integration.Forms.csproj (.../Ringtoets.Integration.Forms.csproj) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) @@ -49,8 +49,6 @@ Properties\GlobalAssembly.cs - - @@ -123,6 +121,9 @@ + + +