(1) Passed/Failed with color in the on-screen results

(2) Error of main and aux. combined watermeters calculated and can be used in results
(3) Bugfix: no zero reference exception when the list of results items is empty
This commit is contained in:
Milan Hanajik
2015-01-14 03:19:12 +01:00
parent 00b937553c
commit 5a4df5593a
4 changed files with 83 additions and 37 deletions
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using log4net;
using TBF.Resources;
@@ -230,8 +231,9 @@ namespace TBF.Screens
/// <returns>ListView object</returns>
ListView GetResultsTestsAreRows(int mtr, bool combined)
{
if (tests == null) return null;
IList<Forms.ResultItemSpec> items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM);
if (tests == null || items == null) return null;
ListView lview = GetListView();
// Header
@@ -247,15 +249,33 @@ namespace TBF.Screens
{
foreach (var item in items)
{
string str;
if (combined)
{
lvi.SubItems.Add((item.PrintCombined == null) ? string.Empty : item.PrintCombined(testRslt.Meters[2 * mtr],
testRslt.Meters[2 * mtr + 1],
testRslt.CombinedMeters[mtr]));
str = (item.PrintCombined == null) ? string.Empty : item.PrintCombined(testRslt.Meters[2 * mtr],
testRslt.Meters[2 * mtr + 1],
testRslt.CombinedMeters[mtr]);
}
else
{
lvi.SubItems.Add((item.Print == null) ? string.Empty : item.Print(testRslt.Meters[mtr]));
str = (item.Print == null) ? string.Empty : item.Print(testRslt.Meters[mtr]);
}
string[] texts = str.Split(new char[] { '|' });
if (texts.Length == 1)
{
lvi.SubItems.Add(str);
}
else if (texts.Length == 2)
{
Color color = texts[1].Equals("Green") ? Color.Green : (texts[1].Equals("Red") ? Color.Red : Color.White);
lvi.UseItemStyleForSubItems = false;
lvi.SubItems.Add(texts[0]);
lvi.SubItems[lvi.SubItems.Count - 1].BackColor = color;
}
else
{
lvi.SubItems.Add(string.Empty);
}
}
}
@@ -272,8 +292,9 @@ namespace TBF.Screens
/// <returns>ListView object</returns>
ListView GetResultsTestsAreColumns(int mtr, bool combined)
{
if (tests == null) return null;
IList<Forms.ResultItemSpec> items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM);
if (tests == null || items == null) return null;
ListView lview = GetListView();
// Header
@@ -289,16 +310,49 @@ namespace TBF.Screens
{
foreach (var tr in trs)
{
lvi.SubItems.Add((item.PrintCombined == null || tr == null) ? string.Empty : item.PrintCombined(tr.Meters[2 * mtr],
string str = (item.PrintCombined == null || tr == null) ? string.Empty : item.PrintCombined(tr.Meters[2 * mtr],
tr.Meters[2 * mtr + 1],
tr.CombinedMeters[mtr]));
tr.CombinedMeters[mtr]);
string[] texts = str.Split(new char[] { '|' });
if (texts.Length == 1)
{
lvi.SubItems.Add(str);
}
else if (texts.Length == 2)
{
Color color = texts[1].Equals("Green") ? Color.Green : (texts[1].Equals("Red") ? Color.Red : Color.White);
lvi.UseItemStyleForSubItems = false;
lvi.SubItems.Add(texts[0]);
lvi.SubItems[lvi.SubItems.Count - 1].BackColor = color;
}
else
{
lvi.SubItems.Add(string.Empty);
}
}
}
else
{
foreach (var tr in trs)
{
lvi.SubItems.Add((item.Print == null || tr == null) ? string.Empty : item.Print(tr.Meters[mtr]));
string str = (item.Print == null || tr == null) ? string.Empty : item.Print(tr.Meters[mtr]);
string[] texts = str.Split(new char[] { '|' });
if (texts.Length == 1)
{
lvi.SubItems.Add(str);
}
else if (texts.Length == 2)
{
Color color = texts[1].Equals("Green") ? Color.Green : (texts[1].Equals("Red") ? Color.Red : Color.White);
lvi.UseItemStyleForSubItems = false;
lvi.SubItems.Add(texts[0]);
lvi.SubItems[lvi.SubItems.Count - 1].BackColor = color;
}
else
{
lvi.SubItems.Add(string.Empty);
}
}
}
lview.Items.Add(lvi);