Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/18/11 01:38:23 (13 years ago)
Author:
swagner
Message:

Implemented dragging of multiple items in all collection views and refactored drag & drop code (#1112)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Core.Views/3.3/OperatorTreeView.cs

    r5445 r5744  
    353353        IOperator op = GetOperatorTag(node);
    354354        DataObject data = new DataObject();
    355         data.SetData("Type", op.GetType());
    356         data.SetData("Value", op);
     355        data.SetData("HeuristicLab", op);
    357356        if (ReadOnly || (opParam == null)) {
    358357          DoDragDrop(data, DragDropEffects.Copy | DragDropEffects.Link);
     
    366365    private void graphTreeView_DragEnterOver(object sender, DragEventArgs e) {
    367366      e.Effect = DragDropEffects.None;
    368       Type type = e.Data.GetData("Type") as Type;
    369       if (!ReadOnly && (type != null) && (typeof(IOperator).IsAssignableFrom(type))) {
     367      if (!ReadOnly && (e.Data.GetData("HeuristicLab") is IOperator)) {
    370368        TreeNode node = graphTreeView.GetNodeAt(graphTreeView.PointToClient(new Point(e.X, e.Y)));
    371369        if ((node != null) && !node.IsExpanded) node.Expand();
     
    373371          if ((e.KeyState & 8) == 8) e.Effect = DragDropEffects.Copy;  // CTRL key
    374372          else if ((e.KeyState & 4) == 4) e.Effect = DragDropEffects.Move;  // SHIFT key
    375           else if ((e.AllowedEffect & DragDropEffects.Link) == DragDropEffects.Link) e.Effect = DragDropEffects.Link;
    376           else if ((e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy) e.Effect = DragDropEffects.Copy;
    377           else if ((e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move) e.Effect = DragDropEffects.Move;
     373          else if (e.AllowedEffect.HasFlag(DragDropEffects.Link)) e.Effect = DragDropEffects.Link;
     374          else if (e.AllowedEffect.HasFlag(DragDropEffects.Copy)) e.Effect = DragDropEffects.Copy;
     375          else if (e.AllowedEffect.HasFlag(DragDropEffects.Move)) e.Effect = DragDropEffects.Move;
    378376        }
    379377      }
     
    381379    private void graphTreeView_DragDrop(object sender, DragEventArgs e) {
    382380      if (e.Effect != DragDropEffects.None) {
    383         IOperator op = e.Data.GetData("Value") as IOperator;
    384         if ((e.Effect & DragDropEffects.Copy) == DragDropEffects.Copy) op = (IOperator)op.Clone();
     381        IOperator op = e.Data.GetData("HeuristicLab") as IOperator;
     382        if (e.Effect.HasFlag(DragDropEffects.Copy)) op = (IOperator)op.Clone();
    385383        TreeNode node = graphTreeView.GetNodeAt(graphTreeView.PointToClient(new Point(e.X, e.Y)));
    386384        IValueParameter opParam = GetOperatorParameterTag(node);
Note: See TracChangeset for help on using the changeset viewer.