source: branches/eraser6/Eraser/TaskDataSelectionForm.cs @ 128

Revision 128, 2.8 KB checked in by lowjoel, 7 years ago (diff)

-Implement the Public API for the TaskDataSelectionForm?
-Populate the Erase Unused Space drive combobox

Line 
1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Text;
7using System.Windows.Forms;
8
9using Eraser.Manager;
10using Eraser.Util;
11
12namespace Eraser
13{
14    public partial class TaskDataSelectionForm : Form
15    {
16        public TaskDataSelectionForm()
17        {
18            //Create the UI
19            InitializeComponent();
20            file.Checked = true;
21
22            //Populate the drives list
23            string[] drives = Environment.GetLogicalDrives();
24            foreach (string drive in drives)
25            {
26                DriveTypes driveType = Drives.GetDriveType(drive);
27                if (driveType != DriveTypes.DRIVE_UNKNOWN &&
28                    driveType != DriveTypes.DRIVE_NO_ROOT_DIR &&
29                    driveType != DriveTypes.DRIVE_CDROM &&
30                    driveType != DriveTypes.DRIVE_REMOTE)
31                {
32                    unusedDisk.Items.Add(File.GetFileDescription(drive));
33                }
34            }
35        }
36
37        /// <summary>
38        /// Retrieves the settings on the property page as the Eraser Manager API equivalent.
39        /// </summary>
40        /// <returns>An Eraser.Manager.Task.Data or Eraser.Manager.Task.FreeSpace object
41        /// or any of its inherited classes, depending on the task selected</returns>
42        public Task.EraseTarget GetTaskEntry()
43        {
44            Task.EraseTarget result = null;
45            if (file.Checked)
46            {
47                Manager.Task.File fileTask = new Task.File();
48                result = fileTask;
49
50                fileTask.Path = filePath.Text;
51            }
52            else if (folder.Checked)
53            {
54                Manager.Task.Folder folderTask = new Task.Folder();
55                result = folderTask;
56
57                folderTask.Path = folderPath.Text;
58                folderTask.IncludeMask = folderInclude.Text;
59                folderTask.ExcludeMask = folderExclude.Text;
60                folderTask.DeleteIfEmpty = folderDelete.Checked;
61            }
62            else
63            {
64                Task.FreeSpace freeSpaceTask = new Task.FreeSpace();
65                result = freeSpaceTask;
66
67                freeSpaceTask.Drive = (string)unusedDisk.SelectedValue;
68            }
69
70            return result;
71        }
72
73        private void data_CheckedChanged(object sender, EventArgs e)
74        {
75            filePath.Enabled = fileBrowse.Enabled = file.Checked;
76            folderPath.Enabled = folderBrowse.Enabled = folderIncludeLbl.Enabled =
77                folderInclude.Enabled = folderExcludeLbl.Enabled = folderExclude.Enabled =
78                folderDelete.Enabled = folder.Checked;
79            unusedDisk.Enabled = unused.Checked;
80        }
81
82        private void fileBrowse_Click(object sender, EventArgs e)
83        {
84            fileDialog.FileName = filePath.Text;
85            if (fileDialog.ShowDialog() == DialogResult.OK)
86                filePath.Text = fileDialog.FileName;
87        }
88
89        private void folderBrowse_Click(object sender, EventArgs e)
90        {
91            folderDialog.SelectedPath = folderPath.Text;
92            if (folderDialog.ShowDialog() == DialogResult.OK)
93                folderPath.Text = folderDialog.SelectedPath;
94        }
95
96        private void ok_Click(object sender, EventArgs e)
97        {
98            DialogResult = DialogResult.OK;
99            Close();
100        }
101    }
102}
Note: See TracBrowser for help on using the repository browser.