예제 #1
0
        public override void Execute()
        {
            IContentView activeView   = (IContentView)MainFormManager.MainForm.ActiveView;
            var          content      = (IItem)activeView.Content;
            var          clonedConent = (IItem)content.Clone();

            //IOptimizer and IExecutables need some special care
            if (clonedConent is IOptimizer)
            {
                ((IOptimizer)clonedConent).Runs.Clear();
            }
            if (clonedConent is IExecutable)
            {
                IExecutable exec = clonedConent as IExecutable;
                if (exec.ExecutionState != ExecutionState.Prepared)
                {
                    exec.Prepare();
                }
            }

            HiveClient.Instance.Refresh();

            ItemTask       hiveTask = ItemTask.GetItemTaskForItem(clonedConent);
            HiveTask       task     = hiveTask.CreateHiveTask();
            RefreshableJob rJob     = new RefreshableJob();

            rJob.Job.Name = clonedConent.ToString();
            rJob.HiveTasks.Add(task);
            task.ItemTask.ComputeInParallel = clonedConent is Experiment || clonedConent is BatchRun;

            MainFormManager.MainForm.ShowContent(rJob);
        }
        private void jobsTreeView_DragDrop(object sender, DragEventArgs e)
        {
            if (e.Effect != DragDropEffects.None)
            {
                var obj = (IItem)e.Data.GetData(Constants.DragDropDataFormat);

                IItem newObj = null;
                if (e.Effect.HasFlag(DragDropEffects.Copy))
                {
                    newObj = (IItem)obj.Clone();
                }
                else
                {
                    newObj = obj;
                }

                //IOptimizer and IExecutables need some special care
                if (newObj is IOptimizer)
                {
                    ((IOptimizer)newObj).Runs.Clear();
                }
                if (newObj is IExecutable)
                {
                    IExecutable exec = (IExecutable)newObj;
                    if (exec.ExecutionState != ExecutionState.Prepared)
                    {
                        exec.Prepare();
                    }
                }

                ItemTask hiveTask = ItemTask.GetItemTaskForItem(newObj);
                Content.HiveTasks.Add(hiveTask.CreateHiveTask());
            }
        }
예제 #3
0
        public override void Execute()
        {
            IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;

            content = activeView.Content as IItem;

            //IOptimizer and IExecutables need some special care
            if (content is IOptimizer)
            {
                ((IOptimizer)content).Runs.Clear();
            }
            if (content is IExecutable)
            {
                IExecutable exec = content as IExecutable;
                if (exec.ExecutionState != ExecutionState.Prepared)
                {
                    exec.Prepare();
                }
            }

            HiveClient.Instance.Refresh();

            ItemTask       hiveTask = ItemTask.GetItemTaskForItem(content);
            HiveTask       task     = hiveTask.CreateHiveTask();
            RefreshableJob rJob     = new RefreshableJob();

            rJob.Job.Name = content.ToString();
            rJob.HiveTasks.Add(task);
            task.ItemTask.ComputeInParallel = content is Experiment || content is BatchRun;

            var hiveResourceSelectorDialog = new HiveResourceSelectorDialog(rJob.Job.Id, rJob.Job.ProjectId);

            if (HiveClient.Instance.Projects.Count == 1)
            {
                var project = HiveClient.Instance.Projects.FirstOrDefault();
                if (project != null && project.Id != Guid.Empty)
                {
                    hiveResourceSelectorDialog.SelectedProjectId = project.Id;
                }
            }

            if (hiveResourceSelectorDialog.ShowDialog((UserControl)activeView) == DialogResult.OK)
            {
                var selectedProject = hiveResourceSelectorDialog.SelectedProject;
                if (selectedProject != null)
                {
                    rJob.Job.ProjectId   = selectedProject.Id;
                    rJob.Job.ResourceIds = hiveResourceSelectorDialog.SelectedResources.Select(x => x.Id).ToList();

                    progress      = Progress.Show(this.content, "Uploading to Hive...", ProgressMode.Indeterminate);
                    rJob.Progress = progress;
                    progress.ProgressStateChanged += progress_ProgressStateChanged;

                    HiveClient.StartJob(new Action <Exception>(HandleEx), rJob, new CancellationToken());
                }
            }
        }
예제 #4
0
        public override void Execute()
        {
            IContentView activeView = MainFormManager.MainForm.ActiveView as IContentView;

            content = activeView.Content as IItem;

            //IOptimizer and IExecutables need some special care
            if (content is IOptimizer)
            {
                ((IOptimizer)content).Runs.Clear();
            }
            if (content is IExecutable)
            {
                IExecutable exec = content as IExecutable;
                if (exec.ExecutionState != ExecutionState.Prepared)
                {
                    exec.Prepare();
                }
            }

            HiveClient.Instance.Refresh();

            ItemTask       hiveTask = ItemTask.GetItemTaskForItem(content);
            HiveTask       task     = hiveTask.CreateHiveTask();
            RefreshableJob rJob     = new RefreshableJob();

            rJob.Job.Name = content.ToString();
            rJob.HiveTasks.Add(task);
            task.ItemTask.ComputeInParallel = content is Experiment || content is BatchRun;

            progress      = MainFormManager.GetMainForm <MainForm.WindowsForms.MainForm>().AddOperationProgressToContent(this.content, "Uploading to Hive...");
            rJob.Progress = progress;
            progress.ProgressStateChanged += progress_ProgressStateChanged;

            HiveClient.StartJob(new Action <Exception>(HandleEx), rJob, new CancellationToken());
        }