/// <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(); } }
public TaskStatusChangedEventArgs(IGisTask task) { if (task == null) { throw new ArgumentNullException("task"); } Task = task; }
private void FireTaskChanged(IGisTask task, TaskEvent taskEvent) { var handler = TaskChanged; if (handler != null) { handler(this, new TaskEventArgs(task, taskEvent)); } }
public TaskEventArgs(IGisTask task, TaskEvent taskEvent) { if (task == null) { throw new ArgumentNullException("task"); } Task = task; Event = taskEvent; }
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); }
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(); }
/// <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); } }
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(); }
/// <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()); } } }
/// <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); }
/// <summary> /// Removes the specified task. /// </summary> /// <param name="task">The task.</param> public void Remove(IGisTask task) { _tasks.Remove(task); FireTaskChanged(task, TaskEvent.Removed); }
/// <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); }
public IGisTask CreateTask() { Task = new GisTask(Tool); return(Task); }