Exemplo n.º 1
0
        /// <summary>
        /// Gets icon to display current task status.
        /// </summary>
        /// <exception cref="System.ArgumentOutOfRangeException"></exception>
        public static TaskIcons GetStatusIcon(this IGisTask task)
        {
            switch (task.Status)
            {
            case GisTaskStatus.NotStarted:
                return(TaskIcons.NotStarted);

            case GisTaskStatus.Running:
                return(TaskIcons.InProgress);

            case GisTaskStatus.Success:
                return(TaskIcons.Success);

            case GisTaskStatus.Failed:
                return(TaskIcons.Error);

            case GisTaskStatus.Cancelled:
                return(TaskIcons.Cancel);

            case GisTaskStatus.Paused:
                return(TaskIcons.Pause);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Exemplo n.º 2
0
 public TaskStatusChangedEventArgs(IGisTask task)
 {
     if (task == null)
     {
         throw new ArgumentNullException("task");
     }
     Task = task;
 }
Exemplo n.º 3
0
        private void FireTaskChanged(IGisTask task, TaskEvent taskEvent)
        {
            var handler = TaskChanged;

            if (handler != null)
            {
                handler(this, new TaskEventArgs(task, taskEvent));
            }
        }
Exemplo n.º 4
0
 public TaskEventArgs(IGisTask task, TaskEvent taskEvent)
 {
     if (task == null)
     {
         throw new ArgumentNullException("task");
     }
     Task  = task;
     Event = taskEvent;
 }
Exemplo n.º 5
0
        private TaskNodeWrapper FindTask(IGisTask task)
        {
            foreach (TreeNodeAdv node in _rootNode.Nodes)
            {
                var wrapper = WrapperForNode(node);
                if (wrapper != null && wrapper.Task == task)
                {
                    return(wrapper);
                }
            }

            return(null);
        }
Exemplo n.º 6
0
        public TaskNodeWrapper(TreeViewAdv treeView, IGisTask task)
        {
            if (treeView == null)
            {
                throw new ArgumentNullException("treeView");
            }
            if (task == null)
            {
                throw new ArgumentNullException("task");
            }

            _treeView = treeView;
            _task     = task;

            GenerateNode();
        }
Exemplo n.º 7
0
        /// <summary>
        /// Creates sequentially linked tasks for a list of tools.
        /// </summary>
        public static IEnumerable <IGisTask> CreateSequentialTasks(IEnumerable <IGisTool> tools)
        {
            IGisTask lastTask = null;

            foreach (var t in tools.Reverse())
            {
                var task = new GisTask(t)
                {
                    NextTask = lastTask
                };

                lastTask = task;

                yield return(task);
            }
        }
Exemplo n.º 8
0
        private void DisplayTaskInfo(IGisTask task)
        {
            richTextBox1.Clear();

            string s = task.Tool.Name;

            var lines = task.GetDescription();

            foreach (var line in lines)
            {
                s += line + Environment.NewLine;
            }

            richTextBox1.Text = s;
            richTextBox1.MakeFirstLineBold();
        }
Exemplo n.º 9
0
        /// <summary>
        /// Gets long description of the task including execution time and parameters.
        /// </summary>
        public static IEnumerable <string> GetDescription(this IGisTask task)
        {
            var tool = task.Tool as IParametrizedTool;

            yield return(Environment.NewLine);

            yield return("Status: " + task.Status.EnumToString());

            yield return("Started at: " + task.StartTime.ToLongTimeString());

            if (task.IsFinished)
            {
                yield return("Finished at: " + task.FinishTime.ToLongTimeString());

                yield return("Execution time: " + task.ExecutionTime);
            }

            var gdalTool = tool as IGdalTool;

            if (gdalTool != null && gdalTool.OverrideOptions)
            {
                yield return(string.Empty);

                yield return("Options: " + gdalTool.EffectiveOptions);

                foreach (var p in tool.Parameters.Where(p => p is FilenameParameter || p is OutputLayerParameter))
                {
                    yield return(p.ToString());
                }

                yield break;
            }

            if (tool.Parameters.Any())
            {
                yield return(string.Empty);

                foreach (var p in tool.Parameters.Where(p => !p.IsEmpty && p.Value != p.DefaultValue))
                {
                    yield return(p.ToString());
                }
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// Creates and runs task for a single input datasource. Closes dialog after it.
        /// </summary>
        private bool RunSingleAndClose()
        {
            if (!Validate(Model.Tool))
            {
                return(false);
            }

            IGisTask task = Model.CreateTask();

            if (View.RunInBackground)
            {
                // no progress / log dialog will be shown, so start tracking at once
                _context.Tasks.Add(task);
            }

            task.RunAsync();

            // on success a log window will be opened immediately
            ReturnValue = !View.RunInBackground;

            View.Close();

            return(false);
        }
Exemplo n.º 11
0
 /// <summary>
 /// Removes the specified task.
 /// </summary>
 /// <param name="task">The task.</param>
 public void Remove(IGisTask task)
 {
     _tasks.Remove(task);
     FireTaskChanged(task, TaskEvent.Removed);
 }
Exemplo n.º 12
0
 /// <summary>
 /// Adds the specified task.
 /// </summary>
 /// <param name="task"></param>
 public void Add(IGisTask task)
 {
     task.StatusChanged += (s, e) => FireTaskChanged(e.Task, TaskEvent.StatusChanged);
     _tasks.Add(task);
     FireTaskChanged(task, TaskEvent.Added);
 }
Exemplo n.º 13
0
 public IGisTask CreateTask()
 {
     Task = new GisTask(Tool);
     return(Task);
 }