/// <summary> /// Check if the task can be inserted between two other /// </summary> /// <param name="prev"></param> /// <param name="next"></param> /// <returns></returns> public bool CanInsert(AbstractProcessingTask prev, AbstractProcessingTask next) { bool inok = false; if (prev == null) { inok = In == eTaskItem.None; } else { inok = In == prev.Out; } bool outok = false; if (next == null) { outok = true; } else { outok = Out == next.In; } return(inok && outok); }
/// <summary> /// Compare a Task to another /// </summary> /// <param name="obj"></param> /// <returns></returns> public int CompareTo(object obj) { AbstractProcessingTask other = (AbstractProcessingTask)obj; int c = this.TaskType.CompareTo(other.TaskType); if (c == 0) { c = this.In.CompareTo(other.In); } if (c == 0) { c = this.Out.CompareTo(other.Out); } if (c == 0) { c = this.DisplayName.CompareTo(other.DisplayName); } return(c); }
public AbstractProcessingTask EditSettings(IWin32Window owner, AbstractProcessingTask task, bool defaultsettings) { AbstractProcessingTask ret = task.Clone(); if (ret != null) { if (!ret.RunSettings()) { this.Grid.SelectedObject = task; if (this.ShowDialog(owner) == System.Windows.Forms.DialogResult.OK) { ret = (AbstractProcessingTask)this.Grid.SelectedObject; if (defaultsettings && task.HasBrowsableSettings) { task.SaveToFile(Program.TaskPath); } } } } return ret; }
/// <summary> /// Clone this /// </summary> /// <returns></returns> public override AbstractProcessingTask Clone() { AbstractProcessingTask ret = (AbstractProcessingTask)Activator.CreateInstance(this.GetType()); return(ret); }
/// <summary> /// Check if task can follow another task /// </summary> /// <param name="t"></param> /// <returns></returns> public bool CanFolow(AbstractProcessingTask other) { return(CanFollow(other.Out)); }
/// <summary> /// Check if task can follow another task /// </summary> /// <param name="t"></param> /// <returns></returns> public bool CanFolow(AbstractProcessingTask other) { return CanFollow(other.Out); }
public void Invalidate(AbstractProcessingTask task) { if (task != null) { Invalidate(Items.IndexOf(task)); } else Invalidate(); this.Update(); }
/// <summary> /// Check if the task can be inserted between two other /// </summary> /// <param name="prev"></param> /// <param name="next"></param> /// <returns></returns> public bool CanInsert(AbstractProcessingTask prev, AbstractProcessingTask next) { bool inok = false; if (prev == null) inok = In == eTaskItem.None; else inok = In == prev.Out; bool outok = false; if (next == null) outok = true; else outok = Out == next.In; return inok && outok; }
protected bool GetTaskEnabled(AbstractProcessingTask task) { if (!m_SourceTaskEnableStatus.ContainsKey(task)) m_SourceTaskEnableStatus.Add(task, true); return m_SourceTaskEnableStatus[task]; }
protected void SetTaskEnabled(AbstractProcessingTask task, bool enable) { if (m_SourceTaskEnableStatus.ContainsKey(task)) m_SourceTaskEnableStatus[task] = enable; else m_SourceTaskEnableStatus.Add(task, enable); }
public void Remove(AbstractProcessingTask task) { SuspendLayout(); if (task == null) return; m_SourceTaskEnableStatus.Remove(task); int index = Items.IndexOf(task); Items.RemoveAt(index); ResumeLayout(); }
protected AbstractProcessingTask Change(AbstractProcessingTask oldTask, AbstractProcessingTask newTask) { bool enabled = GetTaskEnabled(oldTask); m_SourceTaskEnableStatus.Remove(oldTask); SetTaskEnabled(newTask, enabled); return newTask; }
public void Insert(int index, AbstractProcessingTask task) { SuspendLayout(); if (index < 0 || index >= this.Items.Count) Items.Add(task); else Items.Insert(index, task); ResumeLayout(); }
public bool Add(AbstractProcessingTask task) { if (task != null) { if (IsValidInsertionIndex(Count, task, eTaskItem.None)) { SuspendLayout(); Items.Add(task); ResumeLayout(); return true; } } return false; }
public bool IsValidInsertionIndex(int index, AbstractProcessingTask newTask, eTaskItem emptyTaskItem) { if (newTask == null || index == -1) return false; AbstractProcessingTask prev = Get(index - 1); AbstractProcessingTask next = Get(index); if (prev == null && next == null) return newTask.In == emptyTaskItem; if (prev == null) return newTask.In == emptyTaskItem && newTask.Out == next.In; else if (next == null) return newTask.In == prev.Out; return newTask.In == prev.Out && newTask.Out == next.In; }