Index: Core/Common/src/Core.Common.Controls.TreeView/ITreeView.cs
===================================================================
diff -u -r8cae5d69ac2d4cf678486ac2b457c0dfe97089d5 -r80393d2db0b9788fbedadf667391f67f014086e4
--- Core/Common/src/Core.Common.Controls.TreeView/ITreeView.cs (.../ITreeView.cs) (revision 8cae5d69ac2d4cf678486ac2b457c0dfe97089d5)
+++ Core/Common/src/Core.Common.Controls.TreeView/ITreeView.cs (.../ITreeView.cs) (revision 80393d2db0b9788fbedadf667391f67f014086e4)
@@ -144,6 +144,12 @@
void StartLabelEdit();
///
+ /// Checks if label of the can be edited and starts edit mode if this is the case.
+ ///
+ /// The to start editing the label for.
+ void StartLabelEdit(ITreeNode node);
+
+ ///
/// Attempts to delete the currently selected data.
///
void TryDeleteSelectedNodeData();
Index: Core/Common/src/Core.Common.Controls.TreeView/TreeView.cs
===================================================================
diff -u -r8cae5d69ac2d4cf678486ac2b457c0dfe97089d5 -r80393d2db0b9788fbedadf667391f67f014086e4
--- Core/Common/src/Core.Common.Controls.TreeView/TreeView.cs (.../TreeView.cs) (revision 8cae5d69ac2d4cf678486ac2b457c0dfe97089d5)
+++ Core/Common/src/Core.Common.Controls.TreeView/TreeView.cs (.../TreeView.cs) (revision 80393d2db0b9788fbedadf667391f67f014086e4)
@@ -181,16 +181,6 @@
}
}
- public bool CanDelete(ITreeNode node)
- {
- return controller.CanDeleteNode(node);
- }
-
- public bool SelectedNodeCanRename()
- {
- return controller.CanRenameNode(SelectedNode);
- }
-
public new void CollapseAll()
{
foreach (var node in Nodes)
@@ -225,17 +215,19 @@
}
}
- ///
- /// Checks if label of current node can be edited and starts edit mode if this is the case.
- ///
public void StartLabelEdit()
{
- if (!SelectedNodeCanRename())
+ StartLabelEdit(SelectedNode);
+ }
+
+ public void StartLabelEdit(ITreeNode node)
+ {
+ if (!controller.CanRenameNode(node))
{
return;
}
- SelectedNode.BeginEdit();
+ node.BeginEdit();
}
public void RegisterNodePresenter(ITreeNodePresenter presenter)
@@ -313,7 +305,7 @@
public void TryDeleteNodeData(ITreeNode treeNode)
{
- if (!CanDelete(treeNode))
+ if (!controller.CanDeleteNode(treeNode))
{
MessageBox.Show(Resources.TreeView_DeleteNodeData_The_selected_item_cannot_be_removed, BaseResources.Confirm, MessageBoxButtons.OK);
return;
Index: Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs
===================================================================
diff -u -r8cae5d69ac2d4cf678486ac2b457c0dfe97089d5 -r80393d2db0b9788fbedadf667391f67f014086e4
--- Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs (.../ContextMenuBuilder.cs) (revision 8cae5d69ac2d4cf678486ac2b457c0dfe97089d5)
+++ Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs (.../ContextMenuBuilder.cs) (revision 80393d2db0b9788fbedadf667391f67f014086e4)
@@ -39,6 +39,12 @@
contextMenu = new ContextMenuStrip();
}
+ public IContextMenuBuilder AddRenameItem()
+ {
+ AddItem(treeViewItemsFactory.CreateRenameItem());
+ return this;
+ }
+
public IContextMenuBuilder AddDeleteItem()
{
AddItem(treeViewItemsFactory.CreateDeleteItem());
Index: Core/Common/src/Core.Common.Gui/ContextMenu/IContextMenuBuilder.cs
===================================================================
diff -u -r8cae5d69ac2d4cf678486ac2b457c0dfe97089d5 -r80393d2db0b9788fbedadf667391f67f014086e4
--- Core/Common/src/Core.Common.Gui/ContextMenu/IContextMenuBuilder.cs (.../IContextMenuBuilder.cs) (revision 8cae5d69ac2d4cf678486ac2b457c0dfe97089d5)
+++ Core/Common/src/Core.Common.Gui/ContextMenu/IContextMenuBuilder.cs (.../IContextMenuBuilder.cs) (revision 80393d2db0b9788fbedadf667391f67f014086e4)
@@ -9,7 +9,14 @@
///
public interface IContextMenuBuilder
{
+
///
+ /// Adds an item to the , which starts edit mode for the name of .
+ ///
+ /// The itself.
+ IContextMenuBuilder AddRenameItem();
+
+ ///
/// Adds an item to the , which deletes the .
///
/// The itself.
Index: Core/Common/src/Core.Common.Gui/ContextMenu/TreeViewContextMenuItemFactory.cs
===================================================================
diff -u -r8cae5d69ac2d4cf678486ac2b457c0dfe97089d5 -r80393d2db0b9788fbedadf667391f67f014086e4
--- Core/Common/src/Core.Common.Gui/ContextMenu/TreeViewContextMenuItemFactory.cs (.../TreeViewContextMenuItemFactory.cs) (revision 8cae5d69ac2d4cf678486ac2b457c0dfe97089d5)
+++ Core/Common/src/Core.Common.Gui/ContextMenu/TreeViewContextMenuItemFactory.cs (.../TreeViewContextMenuItemFactory.cs) (revision 80393d2db0b9788fbedadf667391f67f014086e4)
@@ -31,8 +31,42 @@
}
///
+ /// Creates a which is bound to the action of renaming
+ /// the .
+ ///
+ /// The created .
+ public ToolStripItem CreateRenameItem()
+ {
+ var toolStripMenuItem = new ToolStripMenuItem(Resources.Rename)
+ {
+ ToolTipText = Resources.Rename_ToolTip,
+ Image = Resources.RenameIcon,
+ Enabled = treeNode.Presenter.CanRenameNode(treeNode)
+ };
+ toolStripMenuItem.Click += (s, e) => treeNode.TreeView.StartLabelEdit(treeNode);
+ return toolStripMenuItem;
+ }
+
+ ///
+ /// Creates a which is bound to the action of deleting
+ /// the .
+ ///
+ /// The created .
+ public ToolStripItem CreateDeleteItem()
+ {
+ var toolStripMenuItem = new ToolStripMenuItem(Resources.Delete)
+ {
+ ToolTipText = Resources.Delete_ToolTip,
+ Image = Resources.DeleteIcon,
+ Enabled = treeNode.Presenter.CanRemove(treeNode.Parent.Tag, treeNode.Tag)
+ };
+ toolStripMenuItem.Click += (s, e) => treeNode.TreeView.TryDeleteNodeData(treeNode);
+ return toolStripMenuItem;
+ }
+
+ ///
/// Creates a which is bound to the action of expanding
- /// the .
+ /// the .
///
/// The created .
public ToolStripItem CreateExpandAllItem()
@@ -50,7 +84,7 @@
///
/// Creates a which is bound to the action of collapsing
- /// the .
+ /// the .
///
/// The created .
public ToolStripItem CreateCollapseAllItem()
@@ -65,22 +99,5 @@
toolStripMenuItem.Click += (s, e) => treeNode.TreeView.CollapseAll(treeNode);
return toolStripMenuItem;
}
-
- ///
- /// Creates a which is bound to the action of deleting
- /// the current .
- ///
- /// The created .
- public ToolStripItem CreateDeleteItem()
- {
- var toolStripMenuItem = new ToolStripMenuItem(Resources.Delete)
- {
- ToolTipText = Resources.Delete_ToolTip,
- Image = Resources.DeleteIcon,
- Enabled = treeNode.Presenter.CanRemove(treeNode.Parent.Tag, treeNode.Tag)
- };
- toolStripMenuItem.Click += (s, e) => treeNode.TreeView.TryDeleteNodeData(treeNode);
- return toolStripMenuItem;
- }
}
}
\ No newline at end of file
Index: Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj
===================================================================
diff -u -r148b5639633795054317d492507c072ee0bd5ada -r80393d2db0b9788fbedadf667391f67f014086e4
--- Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj (.../Core.Common.Gui.csproj) (revision 148b5639633795054317d492507c072ee0bd5ada)
+++ Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj (.../Core.Common.Gui.csproj) (revision 80393d2db0b9788fbedadf667391f67f014086e4)
@@ -523,6 +523,9 @@
+
+
+