Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/03/14 16:36:10 (10 years ago)
Author:
ascheibe
Message:

#2117 merged r10130, r10150, r10154, r10170, r11079 into stable

Location:
stable
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobView.cs

    r9933 r11083  
    468468    private void jobsTreeView_DragEnter(object sender, DragEventArgs e) {
    469469      e.Effect = DragDropEffects.None;
    470       var obj = e.Data.GetData(Constants.DragDropDataFormat);
    471       if (obj is IOptimizer) {
     470      var obj = (IDeepCloneable)e.Data.GetData(Constants.DragDropDataFormat);
     471
     472      Type objType = obj.GetType();
     473      if (ItemTask.IsTypeSupported(objType)) {
    472474        if (Content.Id != Guid.Empty) e.Effect = DragDropEffects.None;
    473475        else if ((e.KeyState & 32) == 32) e.Effect = DragDropEffects.Link;  // ALT key
     
    478480    private void jobsTreeView_DragDrop(object sender, DragEventArgs e) {
    479481      if (e.Effect != DragDropEffects.None) {
    480         var obj = e.Data.GetData(Constants.DragDropDataFormat);
    481 
    482         var optimizer = obj as IOptimizer;
    483         if (optimizer != null) {
    484           IOptimizer newOptimizer = null;
    485           if (e.Effect.HasFlag(DragDropEffects.Copy)) {
    486             newOptimizer = (IOptimizer)optimizer.Clone();
    487             newOptimizer.Runs.Clear();
    488           } else {
    489             newOptimizer = optimizer;
     482        var obj = (IItem)e.Data.GetData(Constants.DragDropDataFormat);
     483
     484        IItem newObj = null;
     485        if (e.Effect.HasFlag(DragDropEffects.Copy)) {
     486          newObj = (IItem)obj.Clone();
     487        } else {
     488          newObj = obj;
     489        }
     490
     491        //IOptimizer and IExecutables need some special care
     492        if (newObj is IOptimizer) {
     493          ((IOptimizer)newObj).Runs.Clear();
     494        }
     495        if (newObj is IExecutable) {
     496          IExecutable exec = (IExecutable)newObj;
     497          if (exec.ExecutionState != ExecutionState.Prepared) {
     498            exec.Prepare();
    490499          }
    491           if (newOptimizer.ExecutionState != ExecutionState.Prepared) {
    492             newOptimizer.Prepare();
    493           }
    494 
    495           Content.HiveTasks.Add(new OptimizerHiveTask(newOptimizer));
    496         }
     500        }
     501
     502        ItemTask hiveTask = ItemTask.GetItemTaskForItem(newObj);
     503        Content.HiveTasks.Add(hiveTask.CreateHiveTask());
    497504      }
    498505    }
Note: See TracChangeset for help on using the changeset viewer.