コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
		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;
		}
コード例 #4
0
ファイル: SaveTask.cs プロジェクト: Pandinosaurus/Sardauscan
        /// <summary>
        /// Clone this
        /// </summary>
        /// <returns></returns>
        public override AbstractProcessingTask Clone()
        {
            AbstractProcessingTask ret = (AbstractProcessingTask)Activator.CreateInstance(this.GetType());

            return(ret);
        }
コード例 #5
0
 /// <summary>
 /// Check if task can follow another task
 /// </summary>
 /// <param name="t"></param>
 /// <returns></returns>
 public bool CanFolow(AbstractProcessingTask other)
 {
     return(CanFollow(other.Out));
 }
コード例 #6
0
		/// <summary>
		/// Check if task can follow another task
		/// </summary>
		/// <param name="t"></param>
		/// <returns></returns>
		public bool CanFolow(AbstractProcessingTask other)
		{
			return CanFollow(other.Out);
		}
コード例 #7
0
ファイル: TaskListBox.cs プロジェクト: robotsrulz/Sardauscan
		public void Invalidate(AbstractProcessingTask task)
		{
			if (task != null)
			{
				Invalidate(Items.IndexOf(task));
			}
			else
				Invalidate();
			this.Update();
		}
コード例 #8
0
		/// <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;
		}
コード例 #9
0
ファイル: TaskListBox.cs プロジェクト: robotsrulz/Sardauscan
		protected bool GetTaskEnabled(AbstractProcessingTask task)
		{
			if (!m_SourceTaskEnableStatus.ContainsKey(task))
				m_SourceTaskEnableStatus.Add(task, true);
			return m_SourceTaskEnableStatus[task];
		}
コード例 #10
0
ファイル: TaskListBox.cs プロジェクト: robotsrulz/Sardauscan
		protected void SetTaskEnabled(AbstractProcessingTask task, bool enable)
		{
			if (m_SourceTaskEnableStatus.ContainsKey(task))
				m_SourceTaskEnableStatus[task] = enable;
			else
				m_SourceTaskEnableStatus.Add(task, enable);
		}
コード例 #11
0
ファイル: TaskListBox.cs プロジェクト: robotsrulz/Sardauscan
		public void Remove(AbstractProcessingTask task)
		{
			SuspendLayout();
			if (task == null)
				return;
			m_SourceTaskEnableStatus.Remove(task);
			int index = Items.IndexOf(task);
			Items.RemoveAt(index);
			ResumeLayout();
		}
コード例 #12
0
ファイル: TaskListBox.cs プロジェクト: robotsrulz/Sardauscan
		protected AbstractProcessingTask Change(AbstractProcessingTask oldTask, AbstractProcessingTask newTask)
		{
			bool enabled = GetTaskEnabled(oldTask);
			m_SourceTaskEnableStatus.Remove(oldTask);
			SetTaskEnabled(newTask, enabled);
			return newTask;
		}
コード例 #13
0
ファイル: TaskListBox.cs プロジェクト: robotsrulz/Sardauscan
		public void Insert(int index, AbstractProcessingTask task)
		{
			SuspendLayout();
			if (index < 0 || index >= this.Items.Count)
				Items.Add(task);
			else
				Items.Insert(index, task);
			ResumeLayout();
		}
コード例 #14
0
ファイル: TaskListBox.cs プロジェクト: robotsrulz/Sardauscan
		public bool Add(AbstractProcessingTask task)
		{
			if (task != null)
			{
				if (IsValidInsertionIndex(Count, task, eTaskItem.None))
				{
					SuspendLayout();
					Items.Add(task);
					ResumeLayout();
					return true;
				}
			}
			return false;
		}
コード例 #15
0
ファイル: TaskListBox.cs プロジェクト: robotsrulz/Sardauscan
		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;
		}