A list view item that displays the status of a BasicInstallTask
상속: System.Windows.Forms.ListViewItem
		public void CallUpdateBottomBarFeedback(ActivateModsListViewItem p_ActivateModList)
		{
			UpdateBottomBarFeedback(p_ActivateModList, new EventArgs());
		}
예제 #2
0
        /// <summary>
        /// Adds the given <see cref="BasicInstallTask"/> to the view's list. If the <see cref="BasicInstallTask"/>
        /// already exists in the list, nothing is done.
        /// </summary>
        /// <param name="p_tskTask">The <see cref="BasicInstallTask"/> to add to the view's list.</param>
        protected void AddTaskToList(IBackgroundTaskSet p_tskTask)
        {
            foreach (ActivateModsListViewItem lviExisitingTask in lvwActiveTasks.Items)
            {
                if (lviExisitingTask.Task == p_tskTask)
                {
                    return;
                }
            }

            if (m_btsRunningTask != null)
            {
                if (p_tskTask.GetType() == typeof(ModInstaller))
                {
                    foreach (IBackgroundTaskSet iBk in QueuedTasks)
                    {
                        if (iBk.GetType() == typeof(ModInstaller))
                        {
                            if (((ModInstaller)iBk).ModFileName == ((ModInstaller)p_tskTask).ModFileName)
                            {
                                if (((ModInstaller)iBk).IsQueued)
                                {
                                    booQueued = true;
                                }
                            }
                        }
                        else if (iBk.GetType() == typeof(ModUninstaller))
                        {
                            if (((ModUninstaller)iBk).ModFileName == ((ModInstaller)p_tskTask).ModFileName)
                            {
                                if (((ModUninstaller)iBk).IsQueued)
                                {
                                    booQueued = true;
                                }
                            }
                        }
                        else if (iBk.GetType() == typeof(ModUpgrader))
                        {
                            if (((ModUpgrader)iBk).ModFileName == ((ModInstaller)p_tskTask).ModFileName)
                            {
                                if (((ModUpgrader)iBk).IsQueued)
                                {
                                    booQueued = true;
                                }
                            }
                        }
                    }

                    if (m_btsRunningTask.GetType() == typeof(ModInstaller))
                    {
                        if ((((ModInstaller)m_btsRunningTask).ModFileName == ((ModInstaller)p_tskTask).ModFileName) || booQueued)
                        {
                            booQueued = false;
                            m_vmlViewModel.RemoveUselessTask(((ModInstaller)p_tskTask));
                            return;
                        }
                    }
                    else if (m_btsRunningTask.GetType() == typeof(ModUninstaller))
                    {
                        if ((((ModUninstaller)m_btsRunningTask).ModFileName == ((ModInstaller)p_tskTask).ModFileName) || booQueued)
                        {
                            booQueued = false;
                            m_vmlViewModel.RemoveUselessTask(((ModInstaller)p_tskTask));
                            return;
                        }
                    }
                    else if (m_btsRunningTask.GetType() == typeof(ModUpgrader))
                    {
                        if ((((ModUpgrader)m_btsRunningTask).ModFileName == ((ModInstaller)p_tskTask).ModFileName) || booQueued)
                        {
                            booQueued = false;
                            m_vmlViewModel.RemoveUselessTask(((ModInstaller)p_tskTask));
                            return;
                        }
                    }
                }
                else if (p_tskTask.GetType() == typeof(ModUninstaller))
                {
                    foreach (IBackgroundTaskSet iBk in QueuedTasks)
                    {
                        if (iBk.GetType() == typeof(ModInstaller))
                        {
                            if (((ModInstaller)iBk).ModFileName == ((ModUninstaller)p_tskTask).ModFileName)
                            {
                                if (((ModInstaller)iBk).IsQueued)
                                {
                                    booQueued = true;
                                }
                            }
                        }
                        else if (iBk.GetType() == typeof(ModUninstaller))
                        {
                            if (((ModUninstaller)iBk).ModFileName == ((ModUninstaller)p_tskTask).ModFileName)
                            {
                                if (((ModUninstaller)iBk).IsQueued)
                                {
                                    booQueued = true;
                                }
                            }
                        }
                        else if (iBk.GetType() == typeof(ModUpgrader))
                        {
                            if (((ModUpgrader)iBk).ModFileName == ((ModUninstaller)p_tskTask).ModFileName)
                            {
                                if (((ModUpgrader)iBk).IsQueued)
                                {
                                    booQueued = true;
                                }
                            }
                        }
                    }

                    if (m_btsRunningTask.GetType() == typeof(ModInstaller))
                    {
                        if ((((ModInstaller)m_btsRunningTask).ModFileName == ((ModUninstaller)p_tskTask).ModFileName) || booQueued)
                        {
                            booQueued = false;
                            m_vmlViewModel.RemoveUselessTaskUn(((ModUninstaller)p_tskTask));
                            return;
                        }
                    }
                    else if (m_btsRunningTask.GetType() == typeof(ModUninstaller))
                    {
                        if ((((ModUninstaller)m_btsRunningTask).ModFileName == ((ModUninstaller)p_tskTask).ModFileName) || booQueued)
                        {
                            booQueued = false;
                            m_vmlViewModel.RemoveUselessTaskUn(((ModUninstaller)p_tskTask));
                            return;
                        }
                    }
                    else if (m_btsRunningTask.GetType() == typeof(ModUpgrader))
                    {
                        if ((((ModUpgrader)m_btsRunningTask).ModFileName == ((ModUninstaller)p_tskTask).ModFileName) || booQueued)
                        {
                            booQueued = false;
                            m_vmlViewModel.RemoveUselessTaskUn(((ModUninstaller)p_tskTask));
                            return;
                        }
                    }
                }
                else if (p_tskTask.GetType() == typeof(ModUpgrader))
                {
                    foreach (IBackgroundTaskSet iBk in QueuedTasks)
                    {
                        if (iBk.GetType() == typeof(ModInstaller))
                        {
                            if (((ModInstaller)iBk).ModFileName == ((ModUpgrader)p_tskTask).ModFileName)
                            {
                                if (((ModInstaller)iBk).IsQueued)
                                {
                                    booQueued = true;
                                }
                            }
                        }
                        else if (iBk.GetType() == typeof(ModUninstaller))
                        {
                            if (((ModUninstaller)iBk).ModFileName == ((ModUpgrader)p_tskTask).ModFileName)
                            {
                                if (((ModUninstaller)iBk).IsQueued)
                                {
                                    booQueued = true;
                                }
                            }
                        }
                        else if (iBk.GetType() == typeof(ModUpgrader))
                        {
                            if (((ModUpgrader)iBk).ModFileName == ((ModUpgrader)p_tskTask).ModFileName)
                            {
                                if (((ModUpgrader)iBk).IsQueued)
                                {
                                    booQueued = true;
                                }
                            }
                        }
                    }

                    if (m_btsRunningTask.GetType() == typeof(ModInstaller))
                    {
                        if ((((ModInstaller)m_btsRunningTask).ModFileName == ((ModUpgrader)p_tskTask).ModFileName) || booQueued)
                        {
                            booQueued = false;
                            m_vmlViewModel.RemoveUselessTaskUpg(((ModUpgrader)p_tskTask));
                            return;
                        }
                    }
                    else if (m_btsRunningTask.GetType() == typeof(ModUninstaller))
                    {
                        if ((((ModUninstaller)m_btsRunningTask).ModFileName == ((ModUpgrader)p_tskTask).ModFileName) || booQueued)
                        {
                            booQueued = false;
                            m_vmlViewModel.RemoveUselessTaskUpg(((ModUpgrader)p_tskTask));
                            return;
                        }
                    }
                    else if (m_btsRunningTask.GetType() == typeof(ModUpgrader))
                    {
                        if ((((ModUpgrader)m_btsRunningTask).ModFileName == ((ModUpgrader)p_tskTask).ModFileName) || booQueued)
                        {
                            booQueued = false;
                            m_vmlViewModel.RemoveUselessTaskUpg(((ModUpgrader)p_tskTask));
                            return;
                        }
                    }
                }
            }

            p_tskTask.TaskSetCompleted += new EventHandler <TaskSetCompletedEventArgs>(TaskSet_TaskSetCompleted);
            ActivateModsListViewItem lviActivation = new ActivateModsListViewItem(p_tskTask, this);

            lvwActiveTasks.Items.Add(lviActivation);

            if ((m_btsRunningTask == null) || (m_btsRunningTask.IsCompleted))
            {
                m_btsRunningTask = p_tskTask;
                if (m_btsRunningTask.GetType() == typeof(ModInstaller))
                {
                    ((ModInstaller)m_btsRunningTask).Install();
                }
                else if (m_btsRunningTask.GetType() == typeof(ModUninstaller))
                {
                    ((ModUninstaller)m_btsRunningTask).Install();
                }
                else if (m_btsRunningTask.GetType() == typeof(ModUpgrader))
                {
                    ((ModUpgrader)m_btsRunningTask).Install();
                }
            }
            else
            {
                QueuedTasks.Add(p_tskTask);
            }
        }
		/// <summary>
		/// Adds the given <see cref="BasicInstallTask"/> to the view's list. If the <see cref="BasicInstallTask"/>
		/// already exists in the list, nothing is done.
		/// </summary>
		/// <param name="p_tskTask">The <see cref="BasicInstallTask"/> to add to the view's list.</param>
		protected void AddTaskToList(IBackgroundTaskSet p_tskTask)
		{
			foreach (ActivateModsListViewItem lviExisitingTask in lvwActiveTasks.Items)
				if (lviExisitingTask.Task == p_tskTask)
					return;

			if (ViewModel.RunningTask != null)
			{
				if (p_tskTask.GetType() == typeof(ModInstaller))
				{
					foreach (IBackgroundTaskSet iBk in QueuedTasks)
					{
						if (iBk.GetType() == typeof(ModInstaller))
						{
							if (((ModInstaller)iBk).ModFileName == ((ModInstaller)p_tskTask).ModFileName)
								if (((ModInstaller)iBk).IsQueued)
									booQueued = true;
						}
						else if (iBk.GetType() == typeof(ModUninstaller))
						{
							if (((ModUninstaller)iBk).ModFileName == ((ModInstaller)p_tskTask).ModFileName)
								if (((ModUninstaller)iBk).IsQueued)
									booQueued = true;
						}
						else if (iBk.GetType() == typeof(ModUpgrader))
						{
							if (((ModUpgrader)iBk).ModFileName == ((ModInstaller)p_tskTask).ModFileName)
								if (((ModUpgrader)iBk).IsQueued)
									booQueued = true;
						}
					}

					if (ViewModel.RunningTask.GetType() == typeof(ModInstaller))
					{
						if ((((ModInstaller)ViewModel.RunningTask).ModFileName == ((ModInstaller)p_tskTask).ModFileName) || booQueued)
						{
							booQueued = false;
							m_vmlViewModel.RemoveUselessTask(((ModInstaller)p_tskTask));
							return;
						}
					}
					else if (ViewModel.RunningTask.GetType() == typeof(ModUninstaller))
					{
						if ((((ModUninstaller)ViewModel.RunningTask).ModFileName == ((ModInstaller)p_tskTask).ModFileName) || booQueued)
						{
							booQueued = false;
							m_vmlViewModel.RemoveUselessTask(((ModInstaller)p_tskTask));
							return;
						}
					}
					else if (ViewModel.RunningTask.GetType() == typeof(ModUpgrader))
					{
						if ((((ModUpgrader)ViewModel.RunningTask).ModFileName == ((ModInstaller)p_tskTask).ModFileName) || booQueued)
						{
							booQueued = false;
							m_vmlViewModel.RemoveUselessTask(((ModInstaller)p_tskTask));
							return;
						}
					} 
				}
				else if(p_tskTask.GetType() == typeof(ModUninstaller))
				{
					foreach (IBackgroundTaskSet iBk in QueuedTasks)
					{
						if (iBk.GetType() == typeof(ModInstaller))
						{
							if (((ModInstaller)iBk).ModFileName == ((ModUninstaller)p_tskTask).ModFileName)
								if (((ModInstaller)iBk).IsQueued)
									booQueued = true;
						}
						else if (iBk.GetType() == typeof(ModUninstaller))
						{
							if (((ModUninstaller)iBk).ModFileName == ((ModUninstaller)p_tskTask).ModFileName)
								if (((ModUninstaller)iBk).IsQueued)
									booQueued = true;
						}
						else if (iBk.GetType() == typeof(ModUpgrader))
						{
							if (((ModUpgrader)iBk).ModFileName == ((ModUninstaller)p_tskTask).ModFileName)
								if (((ModUpgrader)iBk).IsQueued)
									booQueued = true;
						}
					}

					if (ViewModel.RunningTask.GetType() == typeof(ModInstaller))
					{
						if ((((ModInstaller)ViewModel.RunningTask).ModFileName == ((ModUninstaller)p_tskTask).ModFileName) || booQueued)
						{
							booQueued = false;
							m_vmlViewModel.RemoveUselessTaskUn(((ModUninstaller)p_tskTask));
							return;
						}
					}
					else if (ViewModel.RunningTask.GetType() == typeof(ModUninstaller))
					{
						if ((((ModUninstaller)ViewModel.RunningTask).ModFileName == ((ModUninstaller)p_tskTask).ModFileName) || booQueued)
						{
							booQueued = false;
							m_vmlViewModel.RemoveUselessTaskUn(((ModUninstaller)p_tskTask));
							return;
						}
					}
					else if (ViewModel.RunningTask.GetType() == typeof(ModUpgrader))
					{
						if ((((ModUpgrader)ViewModel.RunningTask).ModFileName == ((ModUninstaller)p_tskTask).ModFileName) || booQueued)
						{
							booQueued = false;
							m_vmlViewModel.RemoveUselessTaskUn(((ModUninstaller)p_tskTask));
							return;
						}
					}
				}
				else if (p_tskTask.GetType() == typeof(ModUpgrader))
				{
					foreach (IBackgroundTaskSet iBk in QueuedTasks)
					{
						if (iBk.GetType() == typeof(ModInstaller))
						{
							if (((ModInstaller)iBk).ModFileName == ((ModUpgrader)p_tskTask).ModFileName)
								if (((ModInstaller)iBk).IsQueued)
									booQueued = true;
						}
						else if (iBk.GetType() == typeof(ModUninstaller))
						{
							if (((ModUninstaller)iBk).ModFileName == ((ModUpgrader)p_tskTask).ModFileName)
								if (((ModUninstaller)iBk).IsQueued)
									booQueued = true;
						}
						else if (iBk.GetType() == typeof(ModUpgrader))
						{
							if (((ModUpgrader)iBk).ModFileName == ((ModUpgrader)p_tskTask).ModFileName)
								if (((ModUpgrader)iBk).IsQueued)
									booQueued = true;
						}
					}

					if (ViewModel.RunningTask.GetType() == typeof(ModInstaller))
					{
						if ((((ModInstaller)ViewModel.RunningTask).ModFileName == ((ModUpgrader)p_tskTask).ModFileName) || booQueued)
						{
							booQueued = false;
							m_vmlViewModel.RemoveUselessTaskUpg(((ModUpgrader)p_tskTask));
							return;
						}
					}
					else if (ViewModel.RunningTask.GetType() == typeof(ModUninstaller))
					{
						if ((((ModUninstaller)ViewModel.RunningTask).ModFileName == ((ModUpgrader)p_tskTask).ModFileName) || booQueued)
						{
							booQueued = false;
							m_vmlViewModel.RemoveUselessTaskUpg(((ModUpgrader)p_tskTask));
							return;
						}
					}
					else if (ViewModel.RunningTask.GetType() == typeof(ModUpgrader))
					{
						if ((((ModUpgrader)ViewModel.RunningTask).ModFileName == ((ModUpgrader)p_tskTask).ModFileName) || booQueued)
						{
							booQueued = false;
							m_vmlViewModel.RemoveUselessTaskUpg(((ModUpgrader)p_tskTask));
							return;
						}
					}
				}
			}

			p_tskTask.TaskSetCompleted += new EventHandler<TaskSetCompletedEventArgs>(TaskSet_TaskSetCompleted);
			ActivateModsListViewItem lviActivation = new ActivateModsListViewItem(p_tskTask, this);
			UpdateBottomBarFeedback(lviActivation, new EventArgs());
			lvwActiveTasks.Items.Add(lviActivation);

			lviActivation.EnsureVisible();

			if ((ViewModel.RunningTask == null) || (ViewModel.RunningTask.IsCompleted))
			{
				ViewModel.RunningTask = p_tskTask;
				if (ViewModel.RunningTask.GetType() == typeof(ModInstaller))
					((ModInstaller)ViewModel.RunningTask).Install();
				else if (ViewModel.RunningTask.GetType() == typeof(ModUninstaller))
					((ModUninstaller)ViewModel.RunningTask).Install();
				else if (ViewModel.RunningTask.GetType() == typeof(ModUpgrader))
					((ModUpgrader)ViewModel.RunningTask).Install();
			}
			else
			{
				QueuedTasks.Add(p_tskTask);
			}
		}
		public void CallUpdateBottomBarFeedback(ActivateModsListViewItem p_ActivateModList)
		{
			UpdateBottomBarFeedback(p_ActivateModList, new EventArgs());
		}