Inheritance: NetIde.Shell.ServiceObject, INiJob
Beispiel #1
0
        private void UpdateOwnProgress(NiJob job)
        {
            if (_progressItemsPanel.Controls.Count > 0)
            {
                double step = (double)_progressBar.Maximum / _jobsSeen;

                Text = job.Handler.Title;

                _statusTextBox.Text = job.CurrentStatus;

                if (!job.Progress.HasValue && _jobsCompleted == 0)
                {
                    _progressBar.Style = ProgressBarStyle.Marquee;
                }
                else
                {
                    _progressBar.Style = ProgressBarStyle.Continuous;

                    _progressBar.Value = (int)(
                        _jobsCompleted * step +
                        job.Progress.GetValueOrDefault(0) * step
                        );
                }
            }
        }
Beispiel #2
0
        private void AddJob(NiJob job)
        {
            if (_controls.ContainsKey(job))
            {
                return;
            }

            _jobsSeen++;

            var control = new JobProgressControl
            {
                Job  = job,
                Dock = DockStyle.Top
            };

            _controls.Add(job, control);

            _progressItemsPanel.Controls.Add(control);
            _progressItemsPanel.Controls.SetChildIndex(control, 0);

            if (job.Running)
            {
                UpdateOwnProgress(job);
            }
        }
Beispiel #3
0
        public IList <NiJob> GetAllJobs()
        {
            NiJob[] result;

            lock (_queue)
            {
                result = new NiJob[_queue.Count];

                _queue.CopyTo(result, 0);
            }

            return(result);
        }
Beispiel #4
0
        public void ReportProgressChanged(NiJob job)
        {
            bool isCurrent;

            lock (_syncRoot)
            {
                isCurrent = ReferenceEquals(job, _currentJob);
            }

            if (isCurrent)
            {
                OnProgressChanged(new JobEventArgs(job));
            }
        }
Beispiel #5
0
        public HResult CreateJob(INiJobHandler handler, out INiJob job)
        {
            job = null;

            try
            {
                job = new NiJob(this, handler);

                return HResult.OK;
            }
            catch (Exception ex)
            {
                return ErrorUtil.GetHResult(ex);
            }
        }
Beispiel #6
0
        public HResult CreateJob(INiJobHandler handler, out INiJob job)
        {
            job = null;

            try
            {
                job = new NiJob(this, handler);

                return(HResult.OK);
            }
            catch (Exception ex)
            {
                return(ErrorUtil.GetHResult(ex));
            }
        }
Beispiel #7
0
        private void UpdateProgress(NiJob job)
        {
            if (job != null)
            {
                JobProgressControl control;

                if (_controls.TryGetValue(job, out control))
                {
                    control.UpdateProgress();

                    if (job.Running)
                    {
                        UpdateOwnProgress(job);
                    }
                }
            }
        }
Beispiel #8
0
        private void RemoveJob(NiJob job)
        {
            JobProgressControl control;

            if (_controls.TryGetValue(job, out control))
            {
                _jobsCompleted++;

                _progressItemsPanel.Controls.Remove(control);

                control.Dispose();

                _controls.Remove(job);

                if (_controls.Count == 0)
                {
                    Dispose();
                }
            }
        }
Beispiel #9
0
        private void AddJob(NiJob job)
        {
            if (_controls.ContainsKey(job))
                return;

            _jobsSeen++;

            var control = new JobProgressControl
            {
                Job = job,
                Dock = DockStyle.Top
            };

            _controls.Add(job, control);

            _progressItemsPanel.Controls.Add(control);
            _progressItemsPanel.Controls.SetChildIndex(control, 0);

            if (job.Running)
                UpdateOwnProgress(job);
        }
Beispiel #10
0
        private void ProcessJobs(object state)
        {
            lock (_syncRoot)
            {
                if (_queue.Count == 0)
                {
                    return;
                }

                _currentJob = _queue.Peek();
            }

            while (true)
            {
                _currentJob.RaisePerform();

                _event.Set();

                lock (_syncRoot)
                {
                    var removedJob = _queue.Dequeue();

                    OnJobRemoved(new JobEventArgs(removedJob));

                    if (_queue.Count == 0)
                    {
                        OnProgressChanged(new JobEventArgs(null));

                        break;
                    }

                    _currentJob = _queue.Peek();
                }
            }

            lock (_syncRoot)
            {
                _currentJob = null;
            }
        }
Beispiel #11
0
 public JobEventArgs(NiJob job)
 {
     Job = job;
 }
Beispiel #12
0
        private void ProcessJobs(object state)
        {
            lock (_syncRoot)
            {
                if (_queue.Count == 0)
                    return;

                _currentJob = _queue.Peek();
            }

            while (true)
            {
                _currentJob.RaisePerform();

                _event.Set();

                lock (_syncRoot)
                {
                    var removedJob = _queue.Dequeue();

                    OnJobRemoved(new JobEventArgs(removedJob));

                    if (_queue.Count == 0)
                    {
                        OnProgressChanged(new JobEventArgs(null));

                        break;
                    }

                    _currentJob = _queue.Peek();
                }
            }

            lock (_syncRoot)
            {
                _currentJob = null;
            }
        }
Beispiel #13
0
        public void ReportProgressChanged(NiJob job)
        {
            bool isCurrent;

            lock (_syncRoot)
            {
                isCurrent = ReferenceEquals(job, _currentJob);
            }

            if (isCurrent)
                OnProgressChanged(new JobEventArgs(job));
        }
Beispiel #14
0
        public IList<NiJob> GetAllJobs()
        {
            NiJob[] result;

            lock (_queue)
            {
                result = new NiJob[_queue.Count];

                _queue.CopyTo(result, 0);
            }

            return result;
        }
Beispiel #15
0
 public JobEventArgs(NiJob job)
 {
     Job = job;
 }
Beispiel #16
0
        private void UpdateProgress(NiJob job)
        {
            if (job != null)
            {
                JobProgressControl control;

                if (_controls.TryGetValue(job, out control))
                {
                    control.UpdateProgress();

                    if (job.Running)
                        UpdateOwnProgress(job);
                }
            }
        }
Beispiel #17
0
        private void UpdateOwnProgress(NiJob job)
        {
            if (_progressItemsPanel.Controls.Count > 0)
            {
                double step = (double)_progressBar.Maximum / _jobsSeen;

                Text = job.Handler.Title;

                _statusTextBox.Text = job.CurrentStatus;

                if (!job.Progress.HasValue && _jobsCompleted == 0)
                {
                    _progressBar.Style = ProgressBarStyle.Marquee;
                }
                else
                {
                    _progressBar.Style = ProgressBarStyle.Continuous;

                    _progressBar.Value = (int)(
                        _jobsCompleted * step +
                        job.Progress.GetValueOrDefault(0) * step
                    );
                }
            }
        }
Beispiel #18
0
        private void RemoveJob(NiJob job)
        {
            JobProgressControl control;

            if (_controls.TryGetValue(job, out control))
            {
                _jobsCompleted++;

                _progressItemsPanel.Controls.Remove(control);

                control.Dispose();

                _controls.Remove(job);

                if (_controls.Count == 0)
                    Dispose();
            }
        }