From 339382765308019b0db4cb4e28317c7f4ff25d3a Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Sun, 18 Jan 2015 11:22:53 +0100 Subject: [PATCH] Configuration of result items for device=harddisk added --- TestBenchFramework/Entities/Enums.cs | 7 ++ .../Forms/ResultsConfig.Designer.cs | 23 +++- TestBenchFramework/Forms/ResultsConfig.cs | 119 ++++++++---------- TestBenchFramework/LocalSettings.cs | 10 ++ .../Screens/ResultsTabPageCtrl.cs | 10 ++ 5 files changed, 98 insertions(+), 71 deletions(-) diff --git a/TestBenchFramework/Entities/Enums.cs b/TestBenchFramework/Entities/Enums.cs index 5dc70d7a2..717063593 100644 --- a/TestBenchFramework/Entities/Enums.cs +++ b/TestBenchFramework/Entities/Enums.cs @@ -46,6 +46,13 @@ namespace TBF.Entities Count, } + public enum Device + { + Screen, + Printer, + Disk, + } + /// /// Possible modes of operation of components and devices. /// diff --git a/TestBenchFramework/Forms/ResultsConfig.Designer.cs b/TestBenchFramework/Forms/ResultsConfig.Designer.cs index ecdfd87b6..0c7215cec 100644 --- a/TestBenchFramework/Forms/ResultsConfig.Designer.cs +++ b/TestBenchFramework/Forms/ResultsConfig.Designer.cs @@ -50,6 +50,7 @@ this.printerRadioButton = new System.Windows.Forms.RadioButton(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.diskRadioButton = new System.Windows.Forms.RadioButton(); this.testsArangementGroupBox.SuspendLayout(); this.metersArangementGroupBox.SuspendLayout(); this.groupBox1.SuspendLayout(); @@ -262,7 +263,7 @@ this.screenRadioButton.Appearance = System.Windows.Forms.Appearance.Button; this.screenRadioButton.AutoSize = true; this.screenRadioButton.Checked = true; - this.screenRadioButton.Location = new System.Drawing.Point(29, 24); + this.screenRadioButton.Location = new System.Drawing.Point(18, 24); this.screenRadioButton.Name = "screenRadioButton"; this.screenRadioButton.Size = new System.Drawing.Size(51, 23); this.screenRadioButton.TabIndex = 50; @@ -275,7 +276,7 @@ // this.printerRadioButton.Appearance = System.Windows.Forms.Appearance.Button; this.printerRadioButton.AutoSize = true; - this.printerRadioButton.Location = new System.Drawing.Point(86, 24); + this.printerRadioButton.Location = new System.Drawing.Point(75, 24); this.printerRadioButton.Name = "printerRadioButton"; this.printerRadioButton.Size = new System.Drawing.Size(47, 23); this.printerRadioButton.TabIndex = 51; @@ -296,15 +297,28 @@ // // groupBox2 // + this.groupBox2.Controls.Add(this.diskRadioButton); this.groupBox2.Controls.Add(this.printerRadioButton); this.groupBox2.Controls.Add(this.screenRadioButton); - this.groupBox2.Location = new System.Drawing.Point(220, 176); + this.groupBox2.Location = new System.Drawing.Point(176, 176); this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(166, 60); + this.groupBox2.Size = new System.Drawing.Size(210, 60); this.groupBox2.TabIndex = 0; this.groupBox2.TabStop = false; this.groupBox2.Text = "Device"; // + // diskRadioButton + // + this.diskRadioButton.Appearance = System.Windows.Forms.Appearance.Button; + this.diskRadioButton.AutoSize = true; + this.diskRadioButton.Location = new System.Drawing.Point(128, 24); + this.diskRadioButton.Name = "diskRadioButton"; + this.diskRadioButton.Size = new System.Drawing.Size(64, 23); + this.diskRadioButton.TabIndex = 52; + this.diskRadioButton.Text = "Hard Disk"; + this.diskRadioButton.UseVisualStyleBackColor = true; + this.diskRadioButton.CheckedChanged += new System.EventHandler(this.diskRadioButton_CheckedChanged); + // // ResultsConfig // this.AcceptButton = this.okButton; @@ -367,5 +381,6 @@ private System.Windows.Forms.RadioButton printerRadioButton; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.RadioButton diskRadioButton; } } \ No newline at end of file diff --git a/TestBenchFramework/Forms/ResultsConfig.cs b/TestBenchFramework/Forms/ResultsConfig.cs index 916a30f8b..9d0eb3895 100644 --- a/TestBenchFramework/Forms/ResultsConfig.cs +++ b/TestBenchFramework/Forms/ResultsConfig.cs @@ -38,17 +38,19 @@ namespace TBF.Forms public IList RsltItems_Screen_CombinedWM; public IList RsltItems_Printer_SingleWM; public IList RsltItems_Printer_CombinedWM; + public IList RsltItems_Disk_SingleWM; + public IList RsltItems_Disk_CombinedWM; - bool combined; /// false = single meter items, true = combined meter items - bool printer; /// false = screen items, true = printer items - bool unlocked; /// true = changes enabled + bool combined; /// false = single meter items, true = combined meter items + Entities.Device device; /// Screen, Printer or Disk + bool unlocked; /// true = changes enabled public ResultsConfig() { InitializeComponent(); combined = false; - printer = false; + device = Entities.Device.Screen; unlocked = false; cancelButton.Visible = false; } @@ -92,20 +94,44 @@ namespace TBF.Forms RedrawSelected(); } + /// + /// Gets the list of selected items based on watermeter type and device selections + /// + /// List of selected result items + IList GetSelectedItems() + { + if (combined) + { + switch (device) + { + default: + case Entities.Device.Screen: return RsltItems_Screen_CombinedWM; + case Entities.Device.Printer: return RsltItems_Printer_CombinedWM; + case Entities.Device.Disk: return RsltItems_Disk_CombinedWM; + } + } + else + { + switch (device) + { + default: + case Entities.Device.Screen: return RsltItems_Screen_SingleWM; + case Entities.Device.Printer: return RsltItems_Printer_SingleWM; + case Entities.Device.Disk: return RsltItems_Disk_SingleWM; + } + } + } + /// /// Redraw selected items (right hand side) /// void RedrawAvailable() { - IList selectedItems; - if (printer) selectedItems = combined ? RsltItems_Printer_CombinedWM : RsltItems_Printer_SingleWM; - else selectedItems = combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM; - availableResultsListBox.Items.Clear(); currentlyAvailableItems = new List(); foreach (var item in ResultItemSpec.AllItems) { - if (!selectedItems.Contains(item) && (combined ? (item.PrintCombined != null) : (item.Print != null))) + if (!GetSelectedItems().Contains(item) && (combined ? (item.PrintCombined != null) : (item.Print != null))) { currentlyAvailableItems.Add(item); availableResultsListBox.Items.Add(item.Name); @@ -118,12 +144,8 @@ namespace TBF.Forms /// void RedrawSelected() { - IList selectedItems; - if (printer) selectedItems = combined ? RsltItems_Printer_CombinedWM : RsltItems_Printer_SingleWM; - else selectedItems = combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM; - selectedResultsListBox.Items.Clear(); - foreach (var item in selectedItems) + foreach (var item in GetSelectedItems()) { selectedResultsListBox.Items.Add(item.Name); } @@ -181,16 +203,7 @@ namespace TBF.Forms if (availableResultsListBox.SelectedIndices.Count == 1) { var item = currentlyAvailableItems[availableResultsListBox.SelectedIndices[0]]; - if (combined) - { - if (printer) RsltItems_Printer_CombinedWM.Add(item); - else RsltItems_Screen_CombinedWM.Add(item); - } - else - { - if (printer) RsltItems_Printer_SingleWM.Add(item); - else RsltItems_Screen_SingleWM.Add(item); - } + GetSelectedItems().Add(item); RedrawAvailable(); RedrawSelected(); } @@ -204,16 +217,7 @@ namespace TBF.Forms for (int i = availableResultsListBox.SelectedIndices.Count - 1; i >= 0; i--) { var item = currentlyAvailableItems[availableResultsListBox.SelectedIndices[i]]; - if (combined) - { - if (printer) RsltItems_Printer_CombinedWM.Add(item); - else RsltItems_Screen_CombinedWM.Add(item); - } - else - { - if (printer) RsltItems_Printer_SingleWM.Add(item); - else RsltItems_Screen_SingleWM.Add(item); - } + GetSelectedItems().Add(item); } RedrawAvailable(); RedrawSelected(); @@ -225,16 +229,7 @@ namespace TBF.Forms if (selectedResultsListBox.SelectedIndices.Count == 1) { - if (combined) - { - if (printer) RsltItems_Printer_CombinedWM.RemoveAt(selectedResultsListBox.SelectedIndices[0]); - else RsltItems_Screen_CombinedWM.RemoveAt(selectedResultsListBox.SelectedIndices[0]); - } - else - { - if (printer) RsltItems_Printer_SingleWM.RemoveAt(selectedResultsListBox.SelectedIndices[0]); - else RsltItems_Screen_SingleWM.RemoveAt(selectedResultsListBox.SelectedIndices[0]); - } + GetSelectedItems().RemoveAt(selectedResultsListBox.SelectedIndices[0]); RedrawAvailable(); RedrawSelected(); } @@ -246,18 +241,7 @@ namespace TBF.Forms for (int i = selectedResultsListBox.SelectedIndices.Count - 1; i >= 0; i--) { - if (combined) - { - ResultItemSpec item = RsltItems_Screen_CombinedWM[selectedResultsListBox.SelectedIndices[i]]; - if (printer) RsltItems_Printer_CombinedWM.Remove(item); - else RsltItems_Screen_CombinedWM.Remove(item); - } - else - { - ResultItemSpec item = RsltItems_Screen_SingleWM[selectedResultsListBox.SelectedIndices[i]]; - if (printer) RsltItems_Printer_SingleWM.Remove(item); - else RsltItems_Screen_SingleWM.Remove(item); - } + GetSelectedItems().RemoveAt(selectedResultsListBox.SelectedIndices[i]); } RedrawAvailable(); RedrawSelected(); @@ -267,16 +251,7 @@ namespace TBF.Forms { /// Remove all items from 'Selected' list - if (combined) - { - if (printer) RsltItems_Printer_CombinedWM.Clear(); - else RsltItems_Screen_CombinedWM.Clear(); - } - else - { - if (printer) RsltItems_Printer_SingleWM.Clear(); - else RsltItems_Screen_SingleWM.Clear(); - } + GetSelectedItems().Clear(); RedrawAvailable(); RedrawSelected(); } @@ -294,11 +269,21 @@ namespace TBF.Forms private void screenRadioButton_CheckedChanged(object sender, EventArgs e) { + if (screenRadioButton.Checked) device = Entities.Device.Screen; + RedrawAvailable(); + RedrawSelected(); } private void printerRadioButton_CheckedChanged(object sender, EventArgs e) { - printer = printerRadioButton.Checked; + if (printerRadioButton.Checked) device = Entities.Device.Printer; + RedrawAvailable(); + RedrawSelected(); + } + + private void diskRadioButton_CheckedChanged(object sender, EventArgs e) + { + if (diskRadioButton.Checked) device = Entities.Device.Disk; RedrawAvailable(); RedrawSelected(); } diff --git a/TestBenchFramework/LocalSettings.cs b/TestBenchFramework/LocalSettings.cs index 026be00e0..ea17cdfc8 100644 --- a/TestBenchFramework/LocalSettings.cs +++ b/TestBenchFramework/LocalSettings.cs @@ -134,6 +134,8 @@ namespace TBF public string[] RsltItems_Screen_CombinedWM; public string[] RsltItems_Printer_SingleWM; public string[] RsltItems_Printer_CombinedWM; + public string[] RsltItems_Disk_SingleWM; + public string[] RsltItems_Disk_CombinedWM; [XmlArrayAttribute("RsltsSingleClmnWdths")] public int[] RsltsSingleClmnWdths; @@ -236,6 +238,14 @@ namespace TBF RsltItems_Printer_CombinedWM = new string[count]; for (int i = 0; i < count; i++) RsltItems_Printer_CombinedWM[i] = ls.RsltItems_Printer_CombinedWM[i]; + count = (ls.RsltItems_Disk_SingleWM != null) ? ls.RsltItems_Disk_SingleWM.Length : 0; + RsltItems_Disk_SingleWM = new string[count]; + for (int i = 0; i < count; i++) RsltItems_Disk_SingleWM[i] = ls.RsltItems_Disk_SingleWM[i]; + + count = (ls.RsltItems_Disk_CombinedWM != null) ? ls.RsltItems_Disk_CombinedWM.Length : 0; + RsltItems_Disk_CombinedWM = new string[count]; + for (int i = 0; i < count; i++) RsltItems_Disk_CombinedWM[i] = ls.RsltItems_Disk_CombinedWM[i]; + RsltsSingleClmnWdths = new int[ls.RsltsSingleClmnCount]; for (int i = 0; i < RsltsSingleClmnCount; i++) RsltsSingleClmnWdths[i] = ls.RsltsSingleClmnWdths[i]; diff --git a/TestBenchFramework/Screens/ResultsTabPageCtrl.cs b/TestBenchFramework/Screens/ResultsTabPageCtrl.cs index 98d54d8a6..e39f17245 100644 --- a/TestBenchFramework/Screens/ResultsTabPageCtrl.cs +++ b/TestBenchFramework/Screens/ResultsTabPageCtrl.cs @@ -21,6 +21,8 @@ namespace TBF.Screens public IList RsltItems_Screen_CombinedWM; public IList RsltItems_Printer_SingleWM; public IList RsltItems_Printer_CombinedWM; + public IList RsltItems_Disk_SingleWM; + public IList RsltItems_Disk_CombinedWM; IList tests; IList testResults; @@ -67,6 +69,8 @@ namespace TBF.Screens RsltItems_Screen_CombinedWM = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Screen_CombinedWM); RsltItems_Printer_SingleWM = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Printer_SingleWM); RsltItems_Printer_CombinedWM = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Printer_CombinedWM); + RsltItems_Disk_SingleWM = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Disk_SingleWM); + RsltItems_Disk_CombinedWM = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Disk_CombinedWM); RedrawAll(); } @@ -83,6 +87,8 @@ namespace TBF.Screens dlg.RsltItems_Screen_CombinedWM = RsltItems_Screen_CombinedWM; dlg.RsltItems_Printer_SingleWM = RsltItems_Printer_SingleWM; dlg.RsltItems_Printer_CombinedWM = RsltItems_Printer_CombinedWM; + dlg.RsltItems_Disk_SingleWM = RsltItems_Disk_SingleWM; + dlg.RsltItems_Disk_CombinedWM = RsltItems_Disk_CombinedWM; if (DialogResult.OK == dlg.ShowDialog()) { MetersArrangement = dlg.MetersArrangement; @@ -91,6 +97,8 @@ namespace TBF.Screens RsltItems_Screen_CombinedWM = dlg.RsltItems_Screen_CombinedWM; RsltItems_Printer_SingleWM = dlg.RsltItems_Printer_SingleWM; RsltItems_Printer_CombinedWM = dlg.RsltItems_Printer_CombinedWM; + RsltItems_Disk_SingleWM = dlg.RsltItems_Disk_SingleWM; + RsltItems_Disk_CombinedWM = dlg.RsltItems_Disk_CombinedWM; Program.LocalSettings.ResultsConfigMeters = MetersArrangement; Program.LocalSettings.ResultsConfigTests = TestsArrangement; @@ -98,6 +106,8 @@ namespace TBF.Screens Program.LocalSettings.RsltItems_Screen_CombinedWM = Forms.ResultItemSpec.ToStrArray(RsltItems_Screen_CombinedWM); Program.LocalSettings.RsltItems_Printer_SingleWM = Forms.ResultItemSpec.ToStrArray(RsltItems_Printer_SingleWM); Program.LocalSettings.RsltItems_Printer_CombinedWM = Forms.ResultItemSpec.ToStrArray(RsltItems_Printer_CombinedWM); + Program.LocalSettings.RsltItems_Disk_SingleWM = Forms.ResultItemSpec.ToStrArray(RsltItems_Disk_SingleWM); + Program.LocalSettings.RsltItems_Disk_CombinedWM = Forms.ResultItemSpec.ToStrArray(RsltItems_Disk_CombinedWM); Program.LocalSettings.Save(); } RedrawAll();