diff --git a/Results/Forms/ListViewEx.cs b/Results/Forms/ListViewEx.cs
index 532dd8cd9..0785c295b 100644
--- a/Results/Forms/ListViewEx.cs
+++ b/Results/Forms/ListViewEx.cs
@@ -67,7 +67,8 @@ namespace Results.Forms
private System.ComponentModel.Container components = null;
public event SubItemEventHandler SubItemClicked;
- public event SubItemEventHandler SubItemBeginEditing;
+ public event SubItemEventHandler SubItemRightClicked;
+ public event SubItemEventHandler SubItemBeginEditing;
public event SubItemEndEditingEventHandler SubItemEndEditing;
public ListViewEx()
@@ -237,12 +238,22 @@ namespace Results.Forms
{
base.OnMouseUp(e);
- if (DoubleClickActivation)
- {
- return;
- }
+ MouseEventArgs me = (MouseEventArgs)e;
+ if (me.Button == MouseButtons.Right)
+ {
+ /// Right mouse button click function
+ RightClickFunctionSubitemAt(new Point(e.X, e.Y));
+ }
+ else
+ {
+ /// Normal function (=edit item)
+ if (DoubleClickActivation)
+ {
+ return;
+ }
- EditSubitemAt(new Point(e.X, e.Y));
+ EditSubitemAt(new Point(e.X, e.Y));
+ }
}
protected override void OnDoubleClick(EventArgs e)
@@ -273,6 +284,20 @@ namespace Results.Forms
}
}
+ ///
+ /// Fire SubItemRightClicked
+ ///
+ ///Point of click/doubleclick
+ private void RightClickFunctionSubitemAt(Point p)
+ {
+ ListViewItem item;
+ int idx = GetSubItemAt(p.X, p.Y, out item);
+ if (idx >= 0)
+ {
+ OnSubItemRightClicked(new SubItemEventArgs(item, idx));
+ }
+ }
+
#endregion
#region In-place editing functions
@@ -298,6 +323,11 @@ namespace Results.Forms
if (SubItemClicked != null) SubItemClicked(this, e);
}
+ protected void OnSubItemRightClicked(SubItemEventArgs e)
+ {
+ if (SubItemRightClicked != null) SubItemRightClicked(this, e);
+ }
+
///
/// Begin in-place editing of given cell
diff --git a/Results/Properties/AssemblyInfo.cs b/Results/Properties/AssemblyInfo.cs
index bfda5d5a8..87edee89a 100644
--- a/Results/Properties/AssemblyInfo.cs
+++ b/Results/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("2.9.330.0")]
-[assembly: AssemblyFileVersion("2.9.330.0")]
+[assembly: AssemblyVersion("2.9.333.0")]
+[assembly: AssemblyFileVersion("2.9.333.0")]
diff --git a/TestBenchFramework/ProcedureDlg.cs b/TestBenchFramework/ProcedureDlg.cs
index b31c01ce0..cbf0635dc 100644
--- a/TestBenchFramework/ProcedureDlg.cs
+++ b/TestBenchFramework/ProcedureDlg.cs
@@ -72,16 +72,20 @@ namespace TBF
/// ListViewEx-es configuration
metrology1ListViewEx.SubItemClicked += new SubItemEventHandler(metrology1ListViewEx_SubItemClicked);
- metrology1ListViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(metrology1ListViewEx_SubItemEndEditing);
+ metrology1ListViewEx.SubItemRightClicked += new SubItemEventHandler(metrology1ListViewEx_SubItemRightClicked);
+ metrology1ListViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(metrology1ListViewEx_SubItemEndEditing);
metrology2ListViewEx.SubItemClicked += new SubItemEventHandler(metrology2ListViewEx_SubItemClicked);
- metrology2ListViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(metrology2ListViewEx_SubItemEndEditing);
+ metrology2ListViewEx.SubItemRightClicked += new SubItemEventHandler(metrology2ListViewEx_SubItemRightClicked);
+ metrology2ListViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(metrology2ListViewEx_SubItemEndEditing);
processListViewEx.SubItemClicked += new SubItemEventHandler(processListViewEx_SubItemClicked);
+ processListViewEx.SubItemRightClicked += new SubItemEventHandler(processListViewEx_SubItemRightClicked);
processListViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(processListViewEx_SubItemEndEditing);
parametersListViewEx.SubItemClicked += new SubItemEventHandler(parametersListViewEx_SubItemClicked);
- parametersListViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(parametersListViewEx_SubItemEndEditing);
+ parametersListViewEx.SubItemRightClicked += new SubItemEventHandler(parametersListViewEx_SubItemRightClicked);
+ parametersListViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(parametersListViewEx_SubItemEndEditing);
}
public ProcedureDlg(Config.Entities.Procedure procedure)
@@ -1112,6 +1116,32 @@ namespace TBF
}
}
+ void metrology1ListViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!unlocked || e.SubItem >= (int)MtrlgyClmn.MtrlgyClmnCount) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in metrology1ListViewEx.Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
private void metrology1ListViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
int dummy;
@@ -1202,13 +1232,47 @@ namespace TBF
private void metrology2ListViewEx_SubItemClicked(object sender, SubItemEventArgs e)
{
- if (unlocked &&
- e.SubItem != (int)Mtrlgy2Clmn.Qfrom &&
- e.SubItem != (int)Mtrlgy2Clmn.Qto &&
- e.SubItem < (int)Mtrlgy2Clmn.Mtrlgy2ClmnCount)
- {
- metrology2ListViewEx.StartEditing(metrology2Editors[e.SubItem], e.Item, e.SubItem);
- }
+ if (!unlocked ||
+ e.SubItem == (int)Mtrlgy2Clmn.Qfrom ||
+ e.SubItem == (int)Mtrlgy2Clmn.Qto ||
+ e.SubItem >= (int)Mtrlgy2Clmn.Mtrlgy2ClmnCount)
+ {
+ return;
+ }
+
+ metrology2ListViewEx.StartEditing(metrology2Editors[e.SubItem], e.Item, e.SubItem);
+ }
+
+ void metrology2ListViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!unlocked ||
+ e.SubItem == (int)Mtrlgy2Clmn.Qfrom ||
+ e.SubItem == (int)Mtrlgy2Clmn.Qto ||
+ e.SubItem >= (int)Mtrlgy2Clmn.Mtrlgy2ClmnCount)
+ {
+ return;
+ }
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in metrology2ListViewEx.Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
}
private void metrology2ListViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
@@ -1238,13 +1302,47 @@ namespace TBF
private void processListViewEx_SubItemClicked(object sender, SubItemEventArgs e)
{
- if (unlocked &&
- e.SubItem != (int)ProcessClmn.Qfrom &&
- e.SubItem != (int)ProcessClmn.Qto &&
- e.SubItem < (int)ProcessClmn.ProcessClmnCount)
- {
- processListViewEx.StartEditing(processEditors[e.SubItem], e.Item, e.SubItem);
- }
+ if (!unlocked ||
+ e.SubItem == (int)ProcessClmn.Qfrom ||
+ e.SubItem == (int)ProcessClmn.Qto ||
+ e.SubItem >= (int)ProcessClmn.ProcessClmnCount)
+ {
+ return;
+ }
+
+ processListViewEx.StartEditing(processEditors[e.SubItem], e.Item, e.SubItem);
+ }
+
+ void processListViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!unlocked ||
+ e.SubItem == (int)ProcessClmn.Qfrom ||
+ e.SubItem == (int)ProcessClmn.Qto ||
+ e.SubItem >= (int)ProcessClmn.ProcessClmnCount)
+ {
+ return;
+ }
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in processListViewEx.Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
}
private void processListViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
@@ -1275,15 +1373,49 @@ namespace TBF
private void parametersListViewEx_SubItemClicked(object sender, SubItemEventArgs e)
{
- if (unlocked &&
- e.SubItem != (int)ParametersClmn.Qfrom &&
- e.SubItem != (int)ParametersClmn.Qto &&
- e.SubItem < (int)ParametersClmn.ParametersClmnCount)
- {
- parametersListViewEx.StartEditing(parametersEditors[e.SubItem], e.Item, e.SubItem);
- }
+ if (!unlocked ||
+ e.SubItem == (int)ParametersClmn.Qfrom ||
+ e.SubItem == (int)ParametersClmn.Qto ||
+ e.SubItem >= (int)ParametersClmn.ParametersClmnCount)
+ {
+ return;
+ }
+
+ parametersListViewEx.StartEditing(parametersEditors[e.SubItem], e.Item, e.SubItem);
}
+ void parametersListViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!unlocked ||
+ e.SubItem == (int)ParametersClmn.Qfrom ||
+ e.SubItem == (int)ParametersClmn.Qto ||
+ e.SubItem >= (int)ParametersClmn.ParametersClmnCount)
+ {
+ return;
+ }
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in parametersListViewEx.Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
private void parametersListViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
int dummy;
diff --git a/TestBenchFramework/Resources/Strings.Designer.cs b/TestBenchFramework/Resources/Strings.Designer.cs
index f93e0035d..216062616 100644
--- a/TestBenchFramework/Resources/Strings.Designer.cs
+++ b/TestBenchFramework/Resources/Strings.Designer.cs
@@ -942,6 +942,15 @@ namespace TBF.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Do you want to copy this value to all cells below this cell?.
+ ///
+ internal static string Do_you_want_to_copy_this_value_to_all_cells_below_this_cell {
+ get {
+ return ResourceManager.GetString("Do_you_want_to_copy_this_value_to_all_cells_below_this_cell", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Do you want to delete the procedure?.
///
diff --git a/TestBenchFramework/Resources/Strings.resx b/TestBenchFramework/Resources/Strings.resx
index f2c6b1409..4284905c9 100644
--- a/TestBenchFramework/Resources/Strings.resx
+++ b/TestBenchFramework/Resources/Strings.resx
@@ -1534,4 +1534,7 @@
Heat meter options
+
+ Do you want to copy this value to all cells below this cell?
+
\ No newline at end of file
diff --git a/TestBenchFramework/UiControls/ListViewEx.cs b/TestBenchFramework/UiControls/ListViewEx.cs
index 653f0b602..0d58a4ae6 100644
--- a/TestBenchFramework/UiControls/ListViewEx.cs
+++ b/TestBenchFramework/UiControls/ListViewEx.cs
@@ -67,7 +67,8 @@ namespace TBF.UiControls
private System.ComponentModel.Container components = null;
public event SubItemEventHandler SubItemClicked;
- public event SubItemEventHandler SubItemBeginEditing;
+ public event SubItemEventHandler SubItemRightClicked;
+ public event SubItemEventHandler SubItemBeginEditing;
public event SubItemEndEditingEventHandler SubItemEndEditing;
public ListViewEx()
@@ -237,12 +238,22 @@ namespace TBF.UiControls
{
base.OnMouseUp(e);
- if (DoubleClickActivation)
- {
- return;
- }
+ MouseEventArgs me = (MouseEventArgs)e;
+ if (me.Button == MouseButtons.Right)
+ {
+ /// Right mouse button click function
+ RightClickFunctionSubitemAt(new Point(e.X, e.Y));
+ }
+ else
+ {
+ /// Normal function (=edit item)
+ if (DoubleClickActivation)
+ {
+ return;
+ }
- EditSubitemAt(new Point(e.X, e.Y));
+ EditSubitemAt(new Point(e.X, e.Y));
+ }
}
protected override void OnDoubleClick(EventArgs e)
@@ -273,6 +284,20 @@ namespace TBF.UiControls
}
}
+ ///
+ /// Fire SubItemRightClicked
+ ///
+ ///Point of click/doubleclick
+ private void RightClickFunctionSubitemAt(Point p)
+ {
+ ListViewItem item;
+ int idx = GetSubItemAt(p.X, p.Y, out item);
+ if (idx >= 0)
+ {
+ OnSubItemRightClicked(new SubItemEventArgs(item, idx));
+ }
+ }
+
#endregion
#region In-place editing functions
@@ -298,6 +323,11 @@ namespace TBF.UiControls
if (SubItemClicked != null) SubItemClicked(this, e);
}
+ protected void OnSubItemRightClicked(SubItemEventArgs e)
+ {
+ if (SubItemRightClicked != null) SubItemRightClicked(this, e);
+ }
+
///
/// Begin in-place editing of given cell
diff --git a/TestBenchFramework/UiControls/MetrologyDlgBalanceTab.cs b/TestBenchFramework/UiControls/MetrologyDlgBalanceTab.cs
index 80462ccfc..ffc664f44 100644
--- a/TestBenchFramework/UiControls/MetrologyDlgBalanceTab.cs
+++ b/TestBenchFramework/UiControls/MetrologyDlgBalanceTab.cs
@@ -73,7 +73,8 @@ namespace TBF.UiControls
this.Controls.Add(correctionTextBox);
listViewEx.SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- listViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ listViewEx.SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ listViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
listViewEx.Columns.Add(new ColumnHeader() { Text = Strings.Nr, Width = 60 });
listViewEx.Columns.Add(new ColumnHeader() { Text = Strings.Mass_kg, Width = 100 });
@@ -143,23 +144,65 @@ namespace TBF.UiControls
}
}
- void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
- {
- float value;
- if (e.SubItem == 1 && Utils.TryParseEFloat(e.DisplayText, out value) && value >= 0)
- {
- (e.Item.Tag as MeasurementCorrection).Measurement = value;
- return;
- }
- else if (e.SubItem == 2 && Utils.TryParseEFloat(e.DisplayText, out value))
- {
- (e.Item.Tag as MeasurementCorrection).Correction = value / 1000.0f;
- return;
- }
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!unlocked || e.SubItem < 1 || e.SubItem > 2) return;
- e.DisplayText = e.Item.Text;
- e.Cancel = true;
- }
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+
+ foreach (ListViewItem item in listViewEx.Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ ParseItem(item, columnNr, value);
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
+ void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
+ {
+ if (ParseItem(e.Item, e.SubItem, e.DisplayText)) return;
+
+ /// New value NOK, revert the original text
+ e.DisplayText = e.Item.Text;
+ e.Cancel = true;
+ }
+
+ ///
+ /// Parse text of a ListViewItem
+ ///
+ /// true = value parsed OK
+ bool ParseItem(ListViewItem item, int subItem, string value)
+ {
+ float fvalue;
+ if (subItem == 1 && Utils.TryParseEFloat(value, out fvalue) && fvalue >= 0)
+ {
+ (item.Tag as MeasurementCorrection).Measurement = fvalue;
+ return true;
+ }
+ else if (subItem == 2 && Utils.TryParseEFloat(value, out fvalue))
+ {
+ (item.Tag as MeasurementCorrection).Correction = fvalue / 1000.0f;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
public void Unlock()
{
diff --git a/TestBenchFramework/UiControls/MetrologyDlgFlowMeterTab.cs b/TestBenchFramework/UiControls/MetrologyDlgFlowMeterTab.cs
index 54af3b4d3..1eeef1fa4 100644
--- a/TestBenchFramework/UiControls/MetrologyDlgFlowMeterTab.cs
+++ b/TestBenchFramework/UiControls/MetrologyDlgFlowMeterTab.cs
@@ -76,7 +76,8 @@ namespace TBF.UiControls
this.Controls.Add(correctionTextBox);
listViewEx.SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- listViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ listViewEx.SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ listViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
listViewEx.Columns.Add(new ColumnHeader() { Text = Strings.Nr, Width = 60 });
listViewEx.Columns.Add(new ColumnHeader() { Text = Strings.Flow_m3h, Width = 100 });
@@ -134,23 +135,65 @@ namespace TBF.UiControls
}
}
- void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
- {
- float value;
- if (e.SubItem == 1 && Utils.TryParseEFloat(e.DisplayText, out value) && value >= 0)
- {
- (e.Item.Tag as MeasurementCorrection).Measurement = value;
- return;
- }
- else if (e.SubItem == 2 && Utils.TryParseEFloat(e.DisplayText, out value))
- {
- (e.Item.Tag as MeasurementCorrection).Correction = value / 1000.0f;
- return;
- }
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!unlocked || e.SubItem < 1 || e.SubItem > 2) return;
- e.DisplayText = e.Item.Text;
- e.Cancel = true;
- }
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+
+ foreach (ListViewItem item in listViewEx.Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ ParseItem(item, columnNr, value);
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
+ void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
+ {
+ if (ParseItem(e.Item, e.SubItem, e.DisplayText)) return;
+
+ /// New value NOK, revert the original text
+ e.DisplayText = e.Item.Text;
+ e.Cancel = true;
+ }
+
+ ///
+ /// Parse text of a ListViewItem
+ ///
+ /// true = value parsed OK
+ bool ParseItem(ListViewItem item, int subItem, string value)
+ {
+ float fvalue;
+ if (subItem == 1 && Utils.TryParseEFloat(value, out fvalue) && fvalue >= 0)
+ {
+ (item.Tag as MeasurementCorrection).Measurement = fvalue;
+ return true;
+ }
+ else if (subItem == 2 && Utils.TryParseEFloat(value, out fvalue))
+ {
+ (item.Tag as MeasurementCorrection).Correction = fvalue / 1000.0f;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
public void Unlock()
{
diff --git a/TestBenchFramework/UiControls/MetrologyDlgPressMeterTab.cs b/TestBenchFramework/UiControls/MetrologyDlgPressMeterTab.cs
index 67b24680c..5d39c5d38 100644
--- a/TestBenchFramework/UiControls/MetrologyDlgPressMeterTab.cs
+++ b/TestBenchFramework/UiControls/MetrologyDlgPressMeterTab.cs
@@ -70,7 +70,8 @@ namespace TBF.UiControls
this.Controls.Add(correctionTextBox);
listViewEx.SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- listViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ listViewEx.SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ listViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
listViewEx.Columns.Add(new ColumnHeader() { Text = Strings.Nr, Width = 60 });
listViewEx.Columns.Add(new ColumnHeader() { Text = Strings.Pressure_bar, Width = 100 });
@@ -107,24 +108,66 @@ namespace TBF.UiControls
}
}
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!unlocked || e.SubItem < 1 || e.SubItem > 2) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+
+ foreach (ListViewItem item in listViewEx.Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ ParseItem(item, columnNr, value);
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
- float value;
- if (e.SubItem == 1 && Utils.TryParseEFloat(e.DisplayText, out value) && value >= 0)
- {
- (e.Item.Tag as MeasurementCorrection).Measurement = value;
- return;
- }
- else if (e.SubItem == 2 && Utils.TryParseEFloat(e.DisplayText, out value))
- {
- (e.Item.Tag as MeasurementCorrection).Correction = value / 1000.0f;
- return;
- }
+ if (ParseItem(e.Item, e.SubItem, e.DisplayText)) return;
+ /// New value NOK, revert the original text
e.DisplayText = e.Item.Text;
e.Cancel = true;
}
+ ///
+ /// Parse text of a ListViewItem
+ ///
+ /// true = value parsed OK
+ bool ParseItem(ListViewItem item, int subItem, string value)
+ {
+ float fvalue;
+ if (subItem == 1 && Utils.TryParseEFloat(value, out fvalue) && fvalue >= 0)
+ {
+ (item.Tag as MeasurementCorrection).Measurement = fvalue;
+ return true;
+ }
+ else if (subItem == 2 && Utils.TryParseEFloat(value, out fvalue))
+ {
+ (item.Tag as MeasurementCorrection).Correction = fvalue / 1000.0f;
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
public void Unlock()
{
unlocked = true;
diff --git a/TestBenchFramework/UiControls/PathsBenchCtrl.cs b/TestBenchFramework/UiControls/PathsBenchCtrl.cs
index 9434621e3..e7bd3b21a 100644
--- a/TestBenchFramework/UiControls/PathsBenchCtrl.cs
+++ b/TestBenchFramework/UiControls/PathsBenchCtrl.cs
@@ -54,7 +54,8 @@ namespace TBF.UiControls
.List();
SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
/// ListViewEx columns
TBF.LocalSettings ls = Program.LocalSettings;
@@ -142,6 +143,32 @@ namespace TBF.UiControls
StartEditing(editors[e.SubItem], e.Item, e.SubItem);
}
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!Unlocked || e.SubItem >= editors.Length) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ Color backColor = Color.White;
+ foreach (ListViewItem item in Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
if (e.SubItem >= fixedColumnsCount)
diff --git a/TestBenchFramework/UiControls/PathsFeedingCtrl.cs b/TestBenchFramework/UiControls/PathsFeedingCtrl.cs
index f06911d21..8763d8be9 100644
--- a/TestBenchFramework/UiControls/PathsFeedingCtrl.cs
+++ b/TestBenchFramework/UiControls/PathsFeedingCtrl.cs
@@ -51,7 +51,8 @@ namespace TBF.UiControls
.List();
SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
/// ListViewEx columns
TBF.LocalSettings ls = Program.LocalSettings;
@@ -114,11 +115,37 @@ namespace TBF.UiControls
StartEditing(editors[e.SubItem], e.Item, e.SubItem);
}
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!Unlocked || e.SubItem >= editors.Length) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ Color backColor = Color.White;
+ foreach (ListViewItem item in Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
if (e.SubItem >= fixedColumnsCount)
{
- e.Item.SubItems[e.SubItem].BackColor = e.DisplayText == Strings.open ? Color.LightGray : Color.White;
+ e.Item.SubItems[e.SubItem].BackColor = (e.DisplayText == Strings.open) ? Color.LightGray : Color.White;
}
}
diff --git a/TestBenchFramework/UiControls/PathsHeatMetersCtrl.cs b/TestBenchFramework/UiControls/PathsHeatMetersCtrl.cs
index ae1cf04e0..9ba82f872 100644
--- a/TestBenchFramework/UiControls/PathsHeatMetersCtrl.cs
+++ b/TestBenchFramework/UiControls/PathsHeatMetersCtrl.cs
@@ -58,6 +58,7 @@ namespace TBF.UiControls
.List();
SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
+ SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
IList tempMeters = new List();
@@ -113,7 +114,7 @@ namespace TBF.UiControls
base.RedrawAll();
#endif
- }
+ }
void listViewEx_SubItemClicked(object sender, SubItemEventArgs e)
{
@@ -127,6 +128,32 @@ namespace TBF.UiControls
StartEditing(editors[e.SubItem], e.Item, e.SubItem);
}
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!Unlocked || e.SubItem >= editors.Length) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
if (e.SubItem >= (int)Column.TWarmFrom && e.SubItem <= (int)Column.TColdTo)
diff --git a/TestBenchFramework/UiControls/PathsMetersCtrl.cs b/TestBenchFramework/UiControls/PathsMetersCtrl.cs
index 27bf576f2..3bd50cb7d 100644
--- a/TestBenchFramework/UiControls/PathsMetersCtrl.cs
+++ b/TestBenchFramework/UiControls/PathsMetersCtrl.cs
@@ -45,7 +45,8 @@ namespace TBF.UiControls
.List();
SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
IList readers = new List();
foreach (var cmpnt in parent.TbfComponents)
@@ -90,6 +91,32 @@ namespace TBF.UiControls
StartEditing(editors[e.SubItem], e.Item, e.SubItem);
}
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!Unlocked || e.SubItem >= editors.Length) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
}
diff --git a/TestBenchFramework/UiControls/PathsOutputCtrl.cs b/TestBenchFramework/UiControls/PathsOutputCtrl.cs
index e4824d63f..138adfb54 100644
--- a/TestBenchFramework/UiControls/PathsOutputCtrl.cs
+++ b/TestBenchFramework/UiControls/PathsOutputCtrl.cs
@@ -58,7 +58,8 @@ namespace TBF.UiControls
.List();
SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
/// ListViewEx columns
TBF.LocalSettings ls = Program.LocalSettings;
@@ -156,6 +157,32 @@ namespace TBF.UiControls
StartEditing(editors[e.SubItem], e.Item, e.SubItem);
}
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!Unlocked || e.SubItem >= editors.Length) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
if (e.SubItem >= fixedColumnsCount)
diff --git a/TestBenchFramework/UiControls/ProcedureParamsCtrl.cs b/TestBenchFramework/UiControls/ProcedureParamsCtrl.cs
index 472cbf03e..77e38cc57 100644
--- a/TestBenchFramework/UiControls/ProcedureParamsCtrl.cs
+++ b/TestBenchFramework/UiControls/ProcedureParamsCtrl.cs
@@ -96,7 +96,8 @@ namespace TBF.UiControls
}
listViewEx.SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- listViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ listViewEx.SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ listViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
RedrawAll();
}
@@ -107,6 +108,39 @@ namespace TBF.UiControls
listViewEx.StartEditing(editors[e.SubItem - nrFixedColumns], e.Item, e.SubItem);
}
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!unlocked || e.Item.Tag == null || e.SubItem < nrFixedColumns || e.SubItem >= nrFixedColumns + editors.Length) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in listViewEx.Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+
+ int itemNr = columnNr - nrFixedColumns;
+ string message;
+ if ((item.Tag as IParamsProvider).ValidateParam(itemNr, value, out message))
+ {
+ (item.Tag as IParamsProvider).UpdateParam(itemNr, value);
+ }
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
private void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
string message;
diff --git a/TestBenchFramework/UiControls/TestParamsCtrl.cs b/TestBenchFramework/UiControls/TestParamsCtrl.cs
index 2b4267435..ec263e8f3 100644
--- a/TestBenchFramework/UiControls/TestParamsCtrl.cs
+++ b/TestBenchFramework/UiControls/TestParamsCtrl.cs
@@ -100,7 +100,8 @@ namespace TBF.UiControls
}
listViewEx.SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- listViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ listViewEx.SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ listViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
RedrawAll();
}
@@ -108,11 +109,44 @@ namespace TBF.UiControls
private void listViewEx_SubItemClicked(object sender, SubItemEventArgs e)
{
int itemNr = showTestsColumn ? (e.SubItem - 1) : e.SubItem;
-
if (!unlocked || e.Item.Tag == null || itemNr >= editors.Length || itemNr < 0) return;
- listViewEx.StartEditing(editors[itemNr], e.Item, e.SubItem);
+
+ listViewEx.StartEditing(editors[itemNr], e.Item, e.SubItem);
}
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ int itemNr = showTestsColumn ? (e.SubItem - 1) : e.SubItem;
+ if (!unlocked || e.Item.Tag == null || itemNr >= editors.Length || itemNr < 0) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in listViewEx.Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+
+ string message;
+ if ((item.Tag as IParamsProvider).ValidateParam(itemNr, value, out message))
+ {
+ (item.Tag as IParamsProvider).UpdateParam(itemNr, value);
+ }
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
private void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
string message;
diff --git a/TestBenchFramework/UiControls/TransitionStepsCtrl.cs b/TestBenchFramework/UiControls/TransitionStepsCtrl.cs
index 1df67852f..b7ca82db0 100644
--- a/TestBenchFramework/UiControls/TransitionStepsCtrl.cs
+++ b/TestBenchFramework/UiControls/TransitionStepsCtrl.cs
@@ -52,7 +52,8 @@ namespace TBF.UiControls
MyItems = sequence.TransitionSteps;
SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
vCount = 0;
fmPumpCount = 0;
@@ -168,6 +169,32 @@ namespace TBF.UiControls
StartEditing(editors[e.SubItem], e.Item, e.SubItem);
}
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!Unlocked || e.SubItem >= editors.Length) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
if (e.SubItem == (int)Column.Duration)
diff --git a/TestBenchFramework/UiControls/VirtualBenchStepsCtrl.cs b/TestBenchFramework/UiControls/VirtualBenchStepsCtrl.cs
index ac0209ea2..8effa1a35 100644
--- a/TestBenchFramework/UiControls/VirtualBenchStepsCtrl.cs
+++ b/TestBenchFramework/UiControls/VirtualBenchStepsCtrl.cs
@@ -50,7 +50,8 @@ namespace TBF.UiControls
MyItems = sequence.VirtualBenchSteps;
SubItemClicked += new SubItemEventHandler(listViewEx_SubItemClicked);
- SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
+ SubItemRightClicked += new SubItemEventHandler(listViewEx_SubItemRightClicked);
+ SubItemEndEditing += new SubItemEndEditingEventHandler(listViewEx_SubItemEndEditing);
vCount = 0;
fmPumpCount = 0;
@@ -136,6 +137,32 @@ namespace TBF.UiControls
StartEditing(editors[e.SubItem], e.Item, e.SubItem);
}
+ void listViewEx_SubItemRightClicked(object sender, SubItemEventArgs e)
+ {
+ if (!Unlocked || e.SubItem >= editors.Length) return;
+
+ if (DialogResult.Yes == MessageBox.Show(Strings.Do_you_want_to_copy_this_value_to_all_cells_below_this_cell,
+ Strings.Confirmation, MessageBoxButtons.YesNo, MessageBoxIcon.Question))
+ {
+ int columnNr = e.SubItem;
+ string value = null;
+ System.Drawing.Color backColor = System.Drawing.Color.White;
+ foreach (ListViewItem item in Items)
+ {
+ if (value != null)
+ {
+ item.SubItems[columnNr].Text = value;
+ item.SubItems[columnNr].BackColor = backColor;
+ }
+ else if (item == e.Item)
+ {
+ value = item.SubItems[columnNr].Text;
+ backColor = item.SubItems[columnNr].BackColor;
+ }
+ }
+ }
+ }
+
void listViewEx_SubItemEndEditing(object sender, SubItemEndEditingEventArgs e)
{
if (e.SubItem == (int)Column.Duration)