Changeset 5744 for trunk/sources/HeuristicLab.Core.Views/3.3/ItemSetView.cs
- Timestamp:
- 03/18/11 01:38:23 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Core.Views/3.3/ItemSetView.cs
r5445 r5744 20 20 #endregion 21 21 22 using System.Collections; 22 23 using System.Windows.Forms; 23 24 using HeuristicLab.MainForm; … … 28 29 [Content(typeof(IItemSet<>), false)] 29 30 public partial class ItemSetView<T> : ItemCollectionView<T> where T : class, IItem { 31 protected bool draggedItemsAlreadyContained; 32 30 33 public new IItemSet<T> Content { 31 34 get { return (IItemSet<T>)base.Content; } … … 37 40 } 38 41 39 protected override void itemsListView_DragEnterOver(object sender, DragEventArgs e) { 40 base.itemsListView_DragEnterOver(sender, e); 41 if (e.Effect == DragDropEffects.Link || e.Effect == DragDropEffects.Move) { 42 T item = e.Data.GetData("Value") as T; 43 if (Content.Contains(item)) e.Effect = DragDropEffects.None; 42 protected override void itemsListView_DragEnter(object sender, DragEventArgs e) { 43 base.itemsListView_DragEnter(sender, e); 44 draggedItemsAlreadyContained = false; 45 if (validDragOperation) { 46 if (e.Data.GetData("HeuristicLab") is T) { 47 draggedItemsAlreadyContained = Content.Contains((T)e.Data.GetData("HeuristicLab")); 48 } else if (e.Data.GetData("HeuristicLab") is IEnumerable) { 49 IEnumerable items = (IEnumerable)e.Data.GetData("HeuristicLab"); 50 foreach (object item in items) 51 draggedItemsAlreadyContained = draggedItemsAlreadyContained || Content.Contains((T)item); 52 } 53 } 54 } 55 protected override void itemsListView_DragOver(object sender, DragEventArgs e) { 56 e.Effect = DragDropEffects.None; 57 if (validDragOperation) { 58 if (((e.KeyState & 32) == 32) && !draggedItemsAlreadyContained) e.Effect = DragDropEffects.Link; // ALT key 59 else if (((e.KeyState & 4) == 4) && !draggedItemsAlreadyContained) e.Effect = DragDropEffects.Move; // SHIFT key 60 else if (e.AllowedEffect.HasFlag(DragDropEffects.Copy)) e.Effect = DragDropEffects.Copy; 61 else if (e.AllowedEffect.HasFlag(DragDropEffects.Move) && !draggedItemsAlreadyContained) e.Effect = DragDropEffects.Move; 62 else if (e.AllowedEffect.HasFlag(DragDropEffects.Link) && !draggedItemsAlreadyContained) e.Effect = DragDropEffects.Link; 44 63 } 45 64 }
Note: See TracChangeset
for help on using the changeset viewer.