/// <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); }
private void ProcessFoundBatch(FileSystemInfo[] foundBatch) { pane.Found += foundBatch.Length; var newEntries = from info in foundBatch select EntryFromInfo(info); entries.AddRange(newEntries.ToArray()); }