Ejemplo n.º 1
0
		public void FivePhase_ProgressesNormally()
		{
			var globalIndicator = new SimpleProgressIndicator();
			var progress = new MultiPhaseProgressIndicator(globalIndicator
				, 5);
			progress.Initialize(); // phase 1
			Assert.That(globalIndicator.Value, Is.EqualTo(0));
			progress.PercentCompleted = 50;
			Assert.That(globalIndicator.Value, Is.EqualTo(10));
			progress.Finish();
			Assert.That(globalIndicator.PercentCompleted, Is.EqualTo(20));

			progress.Initialize(); // phase 2
			Assert.That(progress.PercentCompleted, Is.EqualTo(0));
			Assert.That(globalIndicator.PercentCompleted, Is.EqualTo(20));
			progress.PercentCompleted = 50;
			Assert.That(globalIndicator.PercentCompleted, Is.EqualTo(30));
			progress.Finish();
			Assert.That(progress.PercentCompleted, Is.EqualTo(100));
			Assert.That(globalIndicator.PercentCompleted, Is.EqualTo(40));

			progress.Initialize(); // phase 3
			progress.Finish();
			Assert.That(globalIndicator.PercentCompleted, Is.EqualTo(60));

			progress.Initialize(); // phase 4
			progress.PercentCompleted = 10;
			Assert.That(globalIndicator.PercentCompleted, Is.EqualTo(62));
			progress.Finish();

			progress.Initialize(); // phase 5
			progress.Finish();
		}
Ejemplo n.º 2
0
        /// <summary>
        /// Make folder-browsing controls invisible, and add in some progress controls for the MakeClone procedure:
        /// </summary>
        private void SwitchControlsForCloning()
        {
            panel.Visible = false;
            progressBar.Visible = false;

            var logBox = new LogBox
            {
                Location = new Point(panel.Location.X, panel.Location.Y + 50),
                Width = panel.Width,
                Height = panel.Height - 50,
                Anchor = panel.Anchor,
                ShowCopyToClipboardMenuItem = true,
                ShowDetailsMenuItem = true,
                ShowDiagnosticsMenuItem = true,
                ShowFontMenuItem = true
            };

            var progressIndicator = new SimpleProgressIndicator
            {
                Location = new Point(panel.Location.X, panel.Location.Y + 35),
                Width = panel.Width,
                Height = 10,
                Style = ProgressBarStyle.Marquee,
                Anchor = AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top,
                MarqueeAnimationSpeed = 50
            };
            #if MONO
            progressIndicator.MarqueeAnimationSpeed = 3000;
            #else
            #endif
            progressIndicator.IndicateUnknownProgress();

            _clonerStatusLabel = new TextBox
            {
                Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right,
                BackColor = SystemColors.Control,
                BorderStyle = BorderStyle.None,
                Font = new Font("Microsoft Sans Serif", 12F, FontStyle.Regular, GraphicsUnit.Point, ((0))),
                Location = panel.Location,
                Multiline = true,
                Name = "_clonerStatusLabel",
                ReadOnly = true,
                Size = new Size(panel.Width, 25)
            };

            Controls.Add(logBox);
            Controls.Add(progressIndicator);
            Controls.Add(_clonerStatusLabel);

            _clonerMultiProgess = new MultiProgress();
            _clonerMultiProgess.AddMessageProgress(logBox);
            logBox.ProgressIndicator = progressIndicator;
            _clonerMultiProgess.ProgressIndicator = progressIndicator;

            _clonerStatusLabel.Text = string.Format(LocalizationManager.GetString("Messages.Getting","Getting {0}..."),RepositoryKindLabel);
        }