From c928f88b5cf534ccf5efe7464cacd1f555661908 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Thu, 9 Jan 2014 14:37:24 +0100 Subject: [PATCH] Fix compiler errors in ICSharpCode.TreeView.Demo. --- .../ICSharpCode.TreeView.Demo/FileNode.cs | 10 +-- .../FileSystemNode.cs | 68 +++++++++---------- .../ICSharpCode.TreeView.Demo/FolderNode.cs | 16 ++--- .../ICSharpCode.TreeView.Demo.csproj | 19 +++++- .../ICSharpCode.TreeView.Demo/Window1.xaml | 2 +- .../ICSharpCode.TreeView/SharpTreeViewItem.cs | 13 ++-- 6 files changed, 70 insertions(+), 58 deletions(-) diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FileNode.cs b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FileNode.cs index 7feb4a18c4..105b58af78 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FileNode.cs +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FileNode.cs @@ -84,10 +84,10 @@ namespace ICSharpCode.TreeView.Demo { get { return info.FullName; } } - - public override void Paste(IDataObject data) - { - Parent.Paste(data); - } +// +// public override void Paste(IDataObject data) +// { +// Parent.Paste(data); +// } } } diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FileSystemNode.cs b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FileSystemNode.cs index 0453affd88..72026b3daf 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FileSystemNode.cs +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FileSystemNode.cs @@ -29,42 +29,40 @@ namespace ICSharpCode.TreeView.Demo { return FullPath; } - - public override bool CanCopy(SharpTreeNode[] nodes) - { - return true; - } +// +// public override bool CanCopy(SharpTreeNode[] nodes) +// { +// return true; +// } public override IDataObject Copy(SharpTreeNode[] nodes) { var data = new DataObject(); - var paths = SharpTreeNode.ActiveNodes.Cast().Select(n => n.FullPath).ToArray(); + var paths = nodes.OfType().Select(n => n.FullPath).ToArray(); data.SetData(typeof(string[]), paths); return data; } - - public override bool CanPaste(IDataObject data) +// +// public override bool CanPaste(IDataObject data) +// { +// return true; +// } +// + public override bool CanDelete() { return true; } - - public override bool CanDelete(SharpTreeNode[] nodes) - { - return nodes.All(n => n.Parent != null); - } - - public override void Delete(SharpTreeNode[] nodes) + + public override void Delete() { if (MessageBox.Show("Sure?", "Delete", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { - DeleteCore(nodes); + DeleteCore(); } } - - public override void DeleteCore(SharpTreeNode[] nodes) + + public override void DeleteCore() { - foreach (var node in nodes.ToArray()) { - node.Parent.Children.Remove(node); - } + this.Parent.Children.Remove(this); } public override bool CanDrag(SharpTreeNode[] nodes) @@ -72,19 +70,19 @@ namespace ICSharpCode.TreeView.Demo return true; } - ContextMenu menu; - - public override ContextMenu GetContextMenu() - { - if (menu == null) { - menu = new ContextMenu(); - menu.Items.Add(new MenuItem() { Command = ApplicationCommands.Cut }); - menu.Items.Add(new MenuItem() { Command = ApplicationCommands.Copy }); - menu.Items.Add(new MenuItem() { Command = ApplicationCommands.Paste }); - menu.Items.Add(new Separator()); - menu.Items.Add(new MenuItem() { Command = ApplicationCommands.Delete }); - } - return menu; - } +// ContextMenu menu; +// +// public override ContextMenu GetContextMenu() +// { +// if (menu == null) { +// menu = new ContextMenu(); +// menu.Items.Add(new MenuItem() { Command = ApplicationCommands.Cut }); +// menu.Items.Add(new MenuItem() { Command = ApplicationCommands.Copy }); +// menu.Items.Add(new MenuItem() { Command = ApplicationCommands.Paste }); +// menu.Items.Add(new Separator()); +// menu.Items.Add(new MenuItem() { Command = ApplicationCommands.Delete }); +// } +// return menu; +// } } } diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FolderNode.cs b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FolderNode.cs index 7a5ecdfc70..8d6ee7d43f 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FolderNode.cs +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/FolderNode.cs @@ -59,7 +59,7 @@ namespace ICSharpCode.TreeView.Demo get { return path; } } - public override void LoadChildren() + protected override void LoadChildren() { try { foreach (var p in Directory.GetDirectories(path) @@ -75,18 +75,14 @@ namespace ICSharpCode.TreeView.Demo } } - public override DropEffect CanDrop(IDataObject data, DropEffect requestedEffect) + public override bool CanDrop(DragEventArgs e, int index) { - var paths = data.GetData(typeof(string[])) as string[]; - if (paths != null) { - return requestedEffect == DropEffect.Link ? DropEffect.Move : requestedEffect; - } - return DropEffect.None; + return e.Data.GetDataPresent(typeof(string[])); } - - public override void Drop(IDataObject data, int index, DropEffect finalEffect) + + public override void Drop(DragEventArgs e, int index) { - var paths = data.GetData(typeof(string[])) as string[]; + var paths = e.Data.GetData(typeof(string[])) as string[]; if (paths != null) { for (int i = 0; i < paths.Length; i++) { var p = paths[i]; diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/ICSharpCode.TreeView.Demo.csproj b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/ICSharpCode.TreeView.Demo.csproj index 1c0929bf90..ad8b6c4170 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/ICSharpCode.TreeView.Demo.csproj +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/ICSharpCode.TreeView.Demo.csproj @@ -14,11 +14,16 @@ 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 + False + False + False + False + obj\$(Configuration)\ true - full - false + Full + False bin\Debug\ DEBUG;TRACE prompt @@ -32,6 +37,16 @@ prompt 4 + + False + obj\ + + + 4194304 + x86 + False + Auto + diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/Window1.xaml b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/Window1.xaml index 874f31ad49..52ba7c5de9 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/Window1.xaml +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView.Demo/Window1.xaml @@ -10,7 +10,7 @@ - Features: MVVM (POCO variant), Multiselect, Drag and Drop (with or without order), Cut / Copy / Paste / Delete, Rename (try rename file to '?'), + Features: MVVM (VM must derive from SharpTreeNode), Multiselect, Drag and Drop (with or without order), Cut / Copy / Paste / Delete, Rename (try rename file to '?'), VirtualizationMode.Recycling (by default), Root Lines, Columns (using ListView), Icon, Checkbox, ContextMenu, Lazy Loading. Changes does not affect real file system. diff --git a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeViewItem.cs b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeViewItem.cs index 2ee2fce53e..2dc2eed43e 100644 --- a/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeViewItem.cs +++ b/src/Libraries/SharpTreeView/ICSharpCode.TreeView/SharpTreeViewItem.cs @@ -33,13 +33,16 @@ namespace ICSharpCode.TreeView { switch (e.Key) { case Key.F2: -// if (SharpTreeNode.ActiveNodes.Count == 1 && Node.IsEditable) { -// Node.IsEditing = true; -// e.Handled = true; -// } + if (Node.IsEditable && ParentTreeView != null && ParentTreeView.SelectedItems.Count == 1 && ParentTreeView.SelectedItems[0] == Node) { + Node.IsEditing = true; + e.Handled = true; + } break; case Key.Escape: - Node.IsEditing = false; + if (Node.IsEditing) { + Node.IsEditing = false; + e.Handled = true; + } break; } }