/// <summary>
        /// Initializes JobsPanePresenter and registers for job update callback from JobsPool.
        /// </summary>
        public JobsPanePresenter(IJobsPane pane)
        {
            this.pane = pane;

            JobsPool.RegisterNewJobsPane(JobChanged, out List <IJobView> views);

            entriesHolder = new UnsortedEntriesHolder <JobEntry>((EntriesPane <JobEntry>)pane);

            JobEntry[] entries = new JobEntry[views.Count];
            int        i       = 0;

            foreach (var view in views)
            {
                switch (view.LastStatus)
                {
                case JobStatus.Waiting:
                    pane.JobsQueued++;
                    break;

                case JobStatus.Running:
                    pane.JobsQueued++;
                    break;
                }

                entries[i] = new JobEntry(view, view.GetJobTypeDescription());
                i++;
            }

            entriesHolder.AddRange(entries);
        }
Beispiel #2
0
        private void ProcessFoundBatch(FileSystemInfo[] foundBatch)
        {
            pane.Found += foundBatch.Length;
            var newEntries = from info in foundBatch
                             select EntryFromInfo(info);

            entries.AddRange(newEntries.ToArray());
        }