Changeset 1512
- Timestamp:
- 1/13/2010 3:21:44 AM (2 years ago)
- Location:
- branches/eraser6/SpeedMeter
- Files:
-
- 5 edited
-
Eraser.Manager/DirectExecutor.cs (modified) (11 diffs)
-
Eraser.Manager/ProgressManager.cs (modified) (1 diff)
-
Eraser.Manager/Task.cs (modified) (3 diffs)
-
Eraser/ProgressForm.cs (modified) (4 diffs)
-
Eraser/SchedulerPanel.cs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eraser6/SpeedMeter/Eraser.Manager/DirectExecutor.cs
r1508 r1512 383 383 throw new OperationCanceledException(S._("The task was cancelled.")); 384 384 385 task.OnProgressChanged(target, new TaskProgressEventArgs(task, 386 path, 0, 0)); 385 task.OnProgressChanged(target, 386 new ProgressChangedEventArgs(tipSearch, 387 new TaskProgressChangedEventArgs(path, 0, 0))); 387 388 }; 388 389 … … 396 397 tipProgress.Total = totalFiles; 397 398 tipProgress.Completed = currentFile; 398 task.OnProgressChanged(target, new TaskProgressEventArgs(task, 399 currentFilePath, 0, 0)); 399 task.OnProgressChanged(target, 400 new ProgressChangedEventArgs(tipProgress, 401 new TaskProgressChangedEventArgs(currentFilePath, 0, 0))); 400 402 401 403 if (currentTask.Canceled) … … 459 461 { 460 462 mainProgress.Completed += lastWritten; 461 task.OnProgressChanged(target, new TaskProgressEventArgs(task, 462 target.Drive, currentPass, method.Passes)); 463 task.OnProgressChanged(target, 464 new ProgressChangedEventArgs(mainProgress, 465 new TaskProgressChangedEventArgs(target.Drive, currentPass, method.Passes))); 463 466 464 467 if (currentTask.Canceled) … … 481 484 residentProgress.Completed = currentFile; 482 485 residentProgress.Total = totalFiles; 483 task.OnProgressChanged(target, new TaskProgressEventArgs(task, 484 string.Empty, 0, 0)); 486 task.OnProgressChanged(target, 487 new ProgressChangedEventArgs(residentProgress, 488 new TaskProgressChangedEventArgs(string.Empty, 0, 0))); 485 489 486 490 if (currentTask.Canceled) … … 497 501 progress.Steps.Add(new SteppedProgressManager.Step(tempFiles, 498 502 0.0f, S._("Removing temporary files..."))); 499 task.OnProgressChanged(target, new TaskProgressEventArgs(task, string.Empty, 0, 0)); 503 task.OnProgressChanged(target, new ProgressChangedEventArgs(tempFiles, 504 new TaskProgressChangedEventArgs(string.Empty, 0, 0))); 500 505 fsManager.DeleteFolder(info); 501 506 tempFiles.Completed = tempFiles.Total = 1; … … 517 522 518 523 //Set the event parameters, then broadcast the progress event. 519 task.OnProgressChanged(target, new TaskProgressEventArgs(task, 520 string.Empty, 0, 0)); 524 task.OnProgressChanged(target, 525 new ProgressChangedEventArgs(structureProgress, 526 new TaskProgressChangedEventArgs(string.Empty, 0, 0))); 521 527 } 522 528 ); … … 557 563 progress.Steps.Add(new SteppedProgressManager.Step(step, 558 564 1.0f / paths.Count, S._("Erasing files..."))); 559 task.OnProgressChanged(target, new TaskProgressEventArgs( 560 task, paths[i], 0, method.Passes)); 565 task.OnProgressChanged(target, 566 new ProgressChangedEventArgs(step, 567 new TaskProgressChangedEventArgs(paths[i], 0, method.Passes))); 561 568 562 569 //Get the filesystem provider to handle the secure file erasures … … 601 608 step.Completed += lastWritten; 602 609 step.Total = totalData; 603 task.OnProgressChanged(target, new TaskProgressEventArgs(task, 604 info.FullName, currentPass, method.Passes)); 610 task.OnProgressChanged(target, 611 new ProgressChangedEventArgs(step, 612 new TaskProgressChangedEventArgs(info.FullName, currentPass, method.Passes))); 605 613 }); 606 614 … … 659 667 foreach (DirectoryInfo subDir in info.GetDirectories()) 660 668 eraseEmptySubFolders(subDir); 661 task.OnProgressChanged(target, new TaskProgressEventArgs( 662 task, info.FullName, 0, 0)); 669 task.OnProgressChanged(target, 670 new ProgressChangedEventArgs(step, 671 new TaskProgressChangedEventArgs(info.FullName, 0, 0))); 663 672 664 673 FileSystemInfo[] files = info.GetFileSystemInfos(); … … 671 680 { 672 681 DirectoryInfo info = new DirectoryInfo(fldr.Path); 673 task.OnProgressChanged(target, new TaskProgressEventArgs( 674 task, info.FullName, 0, 0)); 682 task.OnProgressChanged(target, 683 new ProgressChangedEventArgs(step, 684 new TaskProgressChangedEventArgs(info.FullName, 0, 0))); 675 685 676 686 //See if this is the root of a volume. … … 694 704 progress.Steps.Add(new SteppedProgressManager.Step(step, 695 705 0.0f, S._("Emptying recycle bin..."))); 696 task.OnProgressChanged(target, new TaskProgressEventArgs(task, string.Empty, 0, 0)); 706 task.OnProgressChanged(target, 707 new ProgressChangedEventArgs(step, 708 new TaskProgressChangedEventArgs(string.Empty, 0, 0))); 697 709 698 710 ShellApi.EmptyRecycleBin(EmptyRecycleBinOptions.NoConfirmation | -
branches/eraser6/SpeedMeter/Eraser.Manager/ProgressManager.cs
r1510 r1512 702 702 private object TaskLock; 703 703 } 704 705 /// <summary> 706 /// Provides data for the Eraser.Manager.ProgressChanged event. 707 /// </summary> 708 public class ProgressChangedEventArgs : EventArgs 709 { 710 /// <summary> 711 /// Constructor. 712 /// </summary> 713 /// <param name="progress">The ProgressManagerBase object that stores the progress 714 /// for the given task.</param> 715 /// <param name="userState">A client-specified state object.</param> 716 public ProgressChangedEventArgs(ProgressManagerBase progress, object userState) 717 { 718 Progress = progress; 719 UserState = userState; 720 } 721 722 /// <summary> 723 /// The ProgressManagerBase object that stores the progress for the given 724 /// task. 725 /// </summary> 726 public ProgressManagerBase Progress { get; private set; } 727 728 /// <summary> 729 /// A client-specified state object. 730 /// </summary> 731 public object UserState { get; private set; } 732 } 733 734 /// <summary> 735 /// Represents the method that will handle the ProgressChanged event from 736 /// the <see cref="ProgressManagerBase"/> class. 737 /// </summary> 738 /// <param name="sender">The source of the event.</param> 739 /// <param name="e">A <see cref="ProgressChangedEventArgs"/> event that 740 /// stores the event data.</param> 741 public delegate void ProgressChangedEventHandler(object sender, ProgressChangedEventArgs e); 704 742 } -
branches/eraser6/SpeedMeter/Eraser.Manager/Task.cs
r1503 r1512 235 235 /// The event object holding all event handlers. 236 236 /// </summary> 237 public EventHandler< TaskProgressEventArgs> ProgressChanged { get; set; }237 public EventHandler<ProgressChangedEventArgs> ProgressChanged { get; set; } 238 238 239 239 /// <summary> … … 264 264 265 265 /// <summary> 266 /// Broadcasts a ProgressChanged event. 266 /// Broadcasts a ProgressChanged event. The sender will be the erasure target 267 /// which broadcast this event; e.UserState will contain extra information 268 /// about the progress which is stored as a TaskProgressChangedEventArgs 269 /// object. 267 270 /// </summary> 268 271 /// <param name="sender">The <see cref="ErasureTarget"/> which is reporting 269 272 /// progress.</param> 270 273 /// <param name="e">The new progress value.</param> 271 internal void OnProgressChanged(ErasureTarget sender, TaskProgressEventArgs e) 272 { 274 /// <exception cref="ArgumentException">e.UserState must be of the type 275 /// <see cref="TaskProgressEventargs"/></exception> 276 /// <exception cref="ArgumentNullException">Both sender and e cannot be null.</exception> 277 internal void OnProgressChanged(ErasureTarget sender, ProgressChangedEventArgs e) 278 { 279 if (sender == null) 280 throw new ArgumentNullException("sender"); 281 if (e == null) 282 throw new ArgumentNullException("sender"); 283 if (e.UserState.GetType() != typeof(TaskProgressChangedEventArgs)) 284 throw new ArgumentException("The Task.OnProgressChanged event expects a " + 285 "TaskProgressEventArgs argument for the ProgressChangedEventArgs' UserState " + 286 "object.", "e"); 287 273 288 if (ProgressChanged != null) 274 289 ProgressChanged(sender, e); … … 1011 1026 } 1012 1027 1013 public class TaskProgressEventArgs : TaskEventArgs 1028 /// <summary> 1029 /// Stores extra information in the <see cref="ProgressChangedEventArgs"/> 1030 /// structure that is not conveyed in the ProgressManagerBase classes. 1031 /// </summary> 1032 public class TaskProgressChangedEventArgs 1014 1033 { 1015 1034 /// <summary> 1016 1035 /// Constructor. 1017 1036 /// </summary> 1018 /// <param name="task">The task being referred to by this event.</param>1019 1037 /// <param name="itemName">The item whose erasure progress is being erased.</param> 1020 1038 /// <param name="itemPass">The current pass number for this item.</param> 1021 1039 /// <param name="itemTotalPasses">The total number of passes to complete erasure 1022 1040 /// of this item.</param> 1023 public TaskProgress EventArgs(Task task,string itemName, int itemPass,1041 public TaskProgressChangedEventArgs(string itemName, int itemPass, 1024 1042 int itemTotalPasses) 1025 : base(task)1026 1043 { 1027 1044 ItemName = itemName; -
branches/eraser6/SpeedMeter/Eraser/ProgressForm.cs
r1509 r1512 31 31 using Eraser.Util; 32 32 using System.Globalization; 33 using ProgressChangedEventArgs = Eraser.Manager.ProgressChangedEventArgs; 33 34 34 35 namespace Eraser … … 63 64 } 64 65 65 private void task_ProgressChanged(object sender, TaskProgressEventArgs e)66 private void task_ProgressChanged(object sender, ProgressChangedEventArgs e) 66 67 { 67 68 if (InvokeRequired) … … 72 73 73 74 lastUpdate = DateTime.Now; 74 Invoke( new EventHandler<TaskProgressEventArgs>(task_ProgressChanged), sender, e);75 Invoke((EventHandler<ProgressChangedEventArgs>)task_ProgressChanged, sender, e); 75 76 return; 76 77 } … … 144 145 } 145 146 146 private void UpdateProgress(SteppedProgressManager targetProgress, TaskProgressEventArgs e) 147 { 147 private void UpdateProgress(SteppedProgressManager targetProgress, ProgressChangedEventArgs e) 148 { 149 TaskProgressChangedEventArgs e2 = (TaskProgressChangedEventArgs)e.UserState; 150 148 151 status.Text = targetProgress.CurrentStep.Name; 149 150 if (e != null) 151 { 152 item.Text = WrapItemName(e.ItemName); 153 pass.Text = e.ItemTotalPasses != 0 ? 154 S._("{0} out of {1}", e.ItemPass, e.ItemTotalPasses) : 155 e.ItemPass.ToString(CultureInfo.CurrentCulture); 152 if (e2 != null) 153 { 154 item.Text = WrapItemName(e2.ItemName); 155 pass.Text = e2.ItemTotalPasses != 0 ? 156 S._("{0} out of {1}", e2.ItemPass, e2.ItemTotalPasses) : 157 e2.ItemPass.ToString(CultureInfo.CurrentCulture); 156 158 } 157 159 -
branches/eraser6/SpeedMeter/Eraser/SchedulerPanel.cs
r1502 r1512 22 22 using System; 23 23 using System.Collections.Generic; 24 using System.ComponentModel;25 24 using System.Data; 26 25 using System.Drawing; … … 35 34 using System.IO; 36 35 using System.Runtime.Serialization; 36 using System.ComponentModel; 37 using ProgressChangedEventArgs = Eraser.Manager.ProgressChangedEventArgs; 37 38 38 39 namespace Eraser … … 207 208 /// Handles the progress event by the task. 208 209 /// </summary> 209 void task_ProgressChanged(object sender, TaskEventArgs e)210 void task_ProgressChanged(object sender, ProgressChangedEventArgs e) 210 211 { 211 212 //Make sure we handle the event in the main thread as this requires … … 213 214 if (scheduler.InvokeRequired) 214 215 { 215 Invoke( new EventHandler<TaskEventArgs>(task_ProgressChanged), sender, e);216 Invoke((EventHandler<ProgressChangedEventArgs>)task_ProgressChanged, sender, e); 216 217 return; 217 218 } 218 219 219 220 //Update the progress bar 220 schedulerProgress.Value = (int)(e.Task.Progress.Progress * 1000.0); 221 ErasureTarget target = (ErasureTarget)sender; 222 schedulerProgress.Value = (int)(target.Task.Progress.Progress * 1000.0); 221 223 } 222 224
Note: See TracChangeset
for help on using the changeset viewer.
