Esempio n. 1
0
        /*public void UpdateProgress (object sender, IterationEventArgs e)
         * {
         *  if (ProgressUpdate == null)
         *      return;
         *
         *  int iteration = e.IterationIndex + 1;
         *
         *  if (iteration == 1)
         *      stopwatch = System.Diagnostics.Stopwatch.StartNew();
         *
         *  var progressUpdate = new ProgressUpdateEventArgs();
         *
         *  if (e.IterationCount > 0)
         *  {
         *      progressUpdate.Total = 1000;
         *      progressUpdate.Current = e.IterationCount == 0 ? 0 : Math.Min(progressUpdate.Total, (int) Math.Round((double) iteration / e.IterationCount * 1000.0));
         *      double progressRate = stopwatch.Elapsed.TotalSeconds > 0 ? iteration / stopwatch.Elapsed.TotalSeconds : 0;
         *      long iterationsRemaining = e.IterationCount - iteration;
         *      TimeSpan timeRemaining = progressRate == 0 ? TimeSpan.Zero
         *                                                 : TimeSpan.FromSeconds(iterationsRemaining / progressRate);
         *      progressUpdate.Message = String.Format("{0} ({1}/{2}) - {3} per second, {4}h{5}m{6}s remaining",
         *                                             e.Message,
         *                                             iteration,
         *                                             e.IterationCount,
         *                                             (long) progressRate,
         *                                             timeRemaining.Hours,
         *                                             timeRemaining.Minutes,
         *                                             timeRemaining.Seconds);
         *  }
         *  else
         *  {
         *      progressUpdate.Total = 0;
         *      progressUpdate.Current = iteration;
         *      progressUpdate.Message = String.Format("{0} ({1})",
         *                                             e.Message,
         *                                             iteration);
         *  }
         *
         *  ProgressUpdate(this, progressUpdate);
         *  e.Cancel = progressUpdate.Cancel;
         * }*/

        public void UpdateProgress(object sender, MergerWrapper.MergingProgressEventArgs e)
        {
            if (ProgressUpdate == null)
            {
                return;
            }

            if (e.MergedFiles == 0)
            {
                stopwatch = Stopwatch.StartNew();
            }

            var progressUpdate = new ProgressUpdateEventArgs();

            progressUpdate.Total   = e.TotalFiles;
            progressUpdate.Current = e.MergedFiles;
            double   progressRate   = stopwatch.Elapsed.TotalSeconds > 0 ? e.MergedFiles / stopwatch.Elapsed.TotalSeconds : 0;
            long     bytesRemaining = e.TotalFiles - e.MergedFiles;
            TimeSpan timeRemaining  = progressRate == 0 ? TimeSpan.Zero
                                                       : TimeSpan.FromSeconds(bytesRemaining / progressRate);

            progressUpdate.Message = String.Format("Merging results... ({0}/{1}) - {2} per second, {3}h{4}m{5}s remaining",
                                                   e.MergedFiles,
                                                   e.TotalFiles,
                                                   Math.Round(progressRate, 1),
                                                   timeRemaining.Hours,
                                                   timeRemaining.Minutes,
                                                   timeRemaining.Seconds);

            ProgressUpdate(this, progressUpdate);
            e.Cancel = progressUpdate.Cancel;
        }
Esempio n. 2
0
        public void UpdateProgress(object sender, Util.PrecacheProgressUpdateEventArgs e)
        {
            if (ProgressUpdate == null)
            {
                return;
            }

            if (e.PercentComplete == 0)
            {
                stopwatch = Stopwatch.StartNew();
            }

            var progressUpdate = new ProgressUpdateEventArgs {
                Total = 1000
            };

            progressUpdate.Current = (int)Math.Round(e.PercentComplete * 1000);
            double   progressRate   = stopwatch.Elapsed.TotalSeconds > 0 ? progressUpdate.Current / stopwatch.Elapsed.TotalSeconds : 0;
            long     bytesRemaining = progressUpdate.Total - progressUpdate.Current;
            TimeSpan timeRemaining  = progressRate == 0 ? TimeSpan.Zero
                                                       : TimeSpan.FromSeconds(bytesRemaining / progressRate);

            progressUpdate.Message = String.Format("Precaching idpDB... {0}m{1}s remaining",
                                                   timeRemaining.Minutes,
                                                   timeRemaining.Seconds);

            ProgressUpdate(this, progressUpdate);
            e.Cancel = progressUpdate.Cancel;
        }
Esempio n. 3
0
        public void UpdateProgress(object sender, DataFilter.FilteringProgressEventArgs e)
        {
            var progressUpdate = new ProgressUpdateEventArgs();

            progressUpdate.Total   = e.TotalFilters;
            progressUpdate.Current = e.CompletedFilters;

            progressUpdate.Message = String.Format("{0} ({1}/{2})",
                                                   e.FilteringStage,
                                                   e.CompletedFilters,
                                                   e.TotalFilters);

            ProgressUpdate(this, progressUpdate);
            e.Cancel = progressUpdate.Cancel;
        }
Esempio n. 4
0
        public void UpdateProgress(object sender, Qonverter.QonversionProgressEventArgs e)
        {
            if (ProgressUpdate == null)
            {
                return;
            }

            var progressUpdate = new ProgressUpdateEventArgs();

            progressUpdate.Total   = e.TotalAnalyses;
            progressUpdate.Current = e.QonvertedAnalyses;

            progressUpdate.Message = String.Format("Calculating Q values... ({2}: {0}/{1})",
                                                   e.QonvertedAnalyses,
                                                   e.TotalAnalyses,
                                                   e.Message);

            ProgressUpdate(this, progressUpdate);
            e.Cancel = progressUpdate.Cancel;
        }
Esempio n. 5
0
        /*public void UpdateProgress (object sender, IterationEventArgs e)
        {
            if (ProgressUpdate == null)
                return;

            int iteration = e.IterationIndex + 1;

            if (iteration == 1)
                stopwatch = System.Diagnostics.Stopwatch.StartNew();

            var progressUpdate = new ProgressUpdateEventArgs();

            if (e.IterationCount > 0)
            {
                progressUpdate.Total = 1000;
                progressUpdate.Current = e.IterationCount == 0 ? 0 : Math.Min(progressUpdate.Total, (int) Math.Round((double) iteration / e.IterationCount * 1000.0));
                double progressRate = stopwatch.Elapsed.TotalSeconds > 0 ? iteration / stopwatch.Elapsed.TotalSeconds : 0;
                long iterationsRemaining = e.IterationCount - iteration;
                TimeSpan timeRemaining = progressRate == 0 ? TimeSpan.Zero
                                                           : TimeSpan.FromSeconds(iterationsRemaining / progressRate);
                progressUpdate.Message = String.Format("{0} ({1}/{2}) - {3} per second, {4}h{5}m{6}s remaining",
                                                       e.Message,
                                                       iteration,
                                                       e.IterationCount,
                                                       (long) progressRate,
                                                       timeRemaining.Hours,
                                                       timeRemaining.Minutes,
                                                       timeRemaining.Seconds);
            }
            else
            {
                progressUpdate.Total = 0;
                progressUpdate.Current = iteration;
                progressUpdate.Message = String.Format("{0} ({1})",
                                                       e.Message,
                                                       iteration);
            }

            ProgressUpdate(this, progressUpdate);
            e.Cancel = progressUpdate.Cancel;
        }*/

        public void UpdateProgress (object sender, MergerWrapper.MergingProgressEventArgs e)
        {
            if (e.MergingException != null)
                Program.HandleException(e.MergingException);

            if (ProgressUpdate == null)
                return;

            if (e.MergedFiles == 0)
                stopwatch = Stopwatch.StartNew();

            var progressUpdate = new ProgressUpdateEventArgs();

            progressUpdate.Total = e.TotalFiles;
            progressUpdate.Current = e.MergedFiles;
            double progressRate = stopwatch.Elapsed.TotalSeconds > 0 ? e.MergedFiles / stopwatch.Elapsed.TotalSeconds : 0;
            long bytesRemaining = e.TotalFiles - e.MergedFiles;
            TimeSpan timeRemaining = progressRate == 0 ? TimeSpan.Zero
                                                       : TimeSpan.FromSeconds(bytesRemaining / progressRate);
            progressUpdate.Message = String.Format("Merging results... ({0}/{1}) - {2} per second, {3}h{4}m{5}s remaining",
                                                   e.MergedFiles,
                                                   e.TotalFiles,
                                                   Math.Round(progressRate, 1),
                                                   timeRemaining.Hours,
                                                   timeRemaining.Minutes,
                                                   timeRemaining.Seconds);

            ProgressUpdate(this, progressUpdate);
            e.Cancel = progressUpdate.Cancel;
        }
Esempio n. 6
0
        public void UpdateProgress(object sender, Util.PrecacheProgressUpdateEventArgs e)
        {
            if (ProgressUpdate == null)
                return;

            if (e.PercentComplete == 0)
                stopwatch = Stopwatch.StartNew();

            var progressUpdate = new ProgressUpdateEventArgs { Total = 1000 };

            progressUpdate.Current = (int) Math.Round(e.PercentComplete * 1000);
            double progressRate = stopwatch.Elapsed.TotalSeconds > 0 ? progressUpdate.Current / stopwatch.Elapsed.TotalSeconds : 0;
            long bytesRemaining = progressUpdate.Total - progressUpdate.Current;
            TimeSpan timeRemaining = progressRate == 0 ? TimeSpan.Zero
                                                       : TimeSpan.FromSeconds(bytesRemaining / progressRate);
            progressUpdate.Message = String.Format("Precaching idpDB... {0}m{1}s remaining",
                                                   timeRemaining.Minutes,
                                                   timeRemaining.Seconds);

            ProgressUpdate(this, progressUpdate);
            e.Cancel = progressUpdate.Cancel;
        }
Esempio n. 7
0
        public void UpdateProgress (object sender, DataFilter.FilteringProgressEventArgs e)
        {
            var progressUpdate = new ProgressUpdateEventArgs();

            progressUpdate.Total = e.TotalFilters;
            progressUpdate.Current = e.CompletedFilters;

            progressUpdate.Message = String.Format("{0} ({1}/{2})",
                                                   e.FilteringStage,
                                                   e.CompletedFilters,
                                                   e.TotalFilters);

            ProgressUpdate(this, progressUpdate);
            e.Cancel = progressUpdate.Cancel;
        }
Esempio n. 8
0
        public void UpdateProgress (object sender, Qonverter.QonversionProgressEventArgs e)
        {
            if (ProgressUpdate == null)
                return;

            var progressUpdate = new ProgressUpdateEventArgs();

            progressUpdate.Total = e.TotalAnalyses;
            progressUpdate.Current = e.QonvertedAnalyses;

            progressUpdate.Message = String.Format("Calculating Q values... ({2}: {0}/{1})",
                                                   e.QonvertedAnalyses,
                                                   e.TotalAnalyses,
                                                   e.Message);

            ProgressUpdate(this, progressUpdate);
            e.Cancel = progressUpdate.Cancel;
        }
Esempio n. 9
0
        void progressMonitor_ProgressUpdate (object sender, ProgressUpdateEventArgs e)
        {
            if (InvokeRequired)
            {
                BeginInvoke((MethodInvoker) (() => progressMonitor_ProgressUpdate(sender, e)));
                return;
            }

            if (IsDisposed || toolStripProgressBar.IsDisposed)
            {
                e.Cancel = true;
                return;
            }

            toolStripStatusLabel.Text = e.Message.Length > 0 ? (e.Message[0].ToString().ToUpper() + e.Message.Substring(1)) : String.Empty;
            toolStripProgressBar.Visible = true;

            if (e.Total == 0)
                toolStripProgressBar.Style = ProgressBarStyle.Marquee;
            else
            {
                toolStripProgressBar.Style = ProgressBarStyle.Continuous;
                toolStripProgressBar.Maximum = e.Total;
                toolStripProgressBar.Value = e.Current;
            }

            if (TaskbarManager.IsPlatformSupported)
            {
                TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Normal);
                TaskbarManager.Instance.SetProgressValue(e.Current, e.Total);
            }

            Application.DoEvents();

            // TODO: add a cancel option: e.Cancel

            // if the work is done, schedule a delayed return to the "Ready" state
            if (e.Total == 0 || e.Total == e.Current)
            {
                var clearProgressInvoker = new BackgroundWorker();
                clearProgressInvoker.DoWork += delegate
                {
                    Thread.Sleep(200);
                    clearProgress(e.Message);
                };
                clearProgressInvoker.RunWorkerAsync();
            }
        }