Column withs on the results screen can be saved and reused for all LIstView-s/watermeters
This commit is contained in:
@@ -24,6 +24,8 @@ namespace TBF.Screens
|
||||
|
||||
IList<Entities.Test> tests;
|
||||
IList<Entities.TestResult> testResults;
|
||||
bool combined;
|
||||
ListView firstListView;
|
||||
|
||||
int lvWidth;
|
||||
int lvHeight;
|
||||
@@ -136,20 +138,23 @@ namespace TBF.Screens
|
||||
///
|
||||
/// Determine whether combined meter results are displayed
|
||||
///
|
||||
bool combined = ((testResults != null) &&
|
||||
(testResults.Count > 0) &&
|
||||
(testResults[0].MetersKind == Entities.MetersKind.Combined));
|
||||
combined = ((testResults != null) &&
|
||||
(testResults.Count > 0) &&
|
||||
(testResults[0].MetersKind == Entities.MetersKind.Combined));
|
||||
|
||||
bool first = true;
|
||||
for (int mtr = 0; mtr < (combined ? Program.WMsCount / 2 : Program.WMsCount); mtr++)
|
||||
{
|
||||
if (TestsArrangement == Forms.ResultsConfig.TestsAre.Rows)
|
||||
{
|
||||
ListView lview = GetResultsTestsAreRows(mtr, combined);
|
||||
ListView lview = GetResultsTestsAreRows(mtr);
|
||||
if (first) { firstListView = lview; first = false; }
|
||||
if (lview != null) flowLayoutPanel.Controls.Add(lview);
|
||||
}
|
||||
else
|
||||
{
|
||||
ListView lview = GetResultsTestsAreColumns(mtr, combined);
|
||||
ListView lview = GetResultsTestsAreColumns(mtr);
|
||||
if (first) { firstListView = lview; first = false; }
|
||||
if (lview != null) flowLayoutPanel.Controls.Add(lview);
|
||||
}
|
||||
}
|
||||
@@ -229,7 +234,7 @@ namespace TBF.Screens
|
||||
/// </summary>
|
||||
/// <param name="mtr">Water meter number: 0..Program.WMsCount</param>
|
||||
/// <returns>ListView object</returns>
|
||||
ListView GetResultsTestsAreRows(int mtr, bool combined)
|
||||
ListView GetResultsTestsAreRows(int mtr)
|
||||
{
|
||||
IList<Forms.ResultItemSpec> items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM);
|
||||
if (tests == null || items == null) return null;
|
||||
@@ -237,8 +242,27 @@ namespace TBF.Screens
|
||||
ListView lview = GetListView();
|
||||
|
||||
// Header
|
||||
lview.Columns.Add((mtr + 1).ToString());
|
||||
foreach (var item in items) lview.Columns.Add(item.ClmnHeaderText);
|
||||
TBF.LocalSettings ls = Program.LocalSettings;
|
||||
if (combined)
|
||||
{
|
||||
lview.Columns.Add((mtr + 1).ToString(), (ls.RsltsCombinedClmnCount > 0) ? ls.RsltsCombinedClmnWdths[0] : 50);
|
||||
int i = 1;
|
||||
foreach (var item in items)
|
||||
{
|
||||
lview.Columns.Add(item.ClmnHeaderText, (ls.RsltsCombinedClmnCount > i) ? ls.RsltsCombinedClmnWdths[i] : 70);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lview.Columns.Add((mtr + 1).ToString(), (ls.RsltsSingleClmnCount > 0) ? ls.RsltsSingleClmnWdths[0] : 50);
|
||||
int i = 1;
|
||||
foreach (var item in items)
|
||||
{
|
||||
lview.Columns.Add(item.ClmnHeaderText, (ls.RsltsSingleClmnCount > i) ? ls.RsltsSingleClmnWdths[i] : 70);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
IList<string> testNames = GetAllDecoratedTestNames();
|
||||
int ix = 0;
|
||||
@@ -290,7 +314,7 @@ namespace TBF.Screens
|
||||
/// </summary>
|
||||
/// <param name="mtr">Water meter number: 0..Program.WMsCount</param>
|
||||
/// <returns>ListView object</returns>
|
||||
ListView GetResultsTestsAreColumns(int mtr, bool combined)
|
||||
ListView GetResultsTestsAreColumns(int mtr)
|
||||
{
|
||||
IList<Forms.ResultItemSpec> items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM);
|
||||
if (tests == null || items == null) return null;
|
||||
@@ -389,5 +413,32 @@ namespace TBF.Screens
|
||||
RedrawAll();
|
||||
}
|
||||
}
|
||||
|
||||
private void columnWidthsButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (firstListView == null) return;
|
||||
|
||||
/// Update the column widths
|
||||
if (combined)
|
||||
{
|
||||
Program.LocalSettings.RsltsCombinedClmnWdths = new int[firstListView.Columns.Count];
|
||||
for (int i = 0; i < firstListView.Columns.Count; i++)
|
||||
{
|
||||
Program.LocalSettings.RsltsCombinedClmnWdths[i] = firstListView.Columns[i].Width;
|
||||
}
|
||||
Program.LocalSettings.Save();
|
||||
}
|
||||
else
|
||||
{
|
||||
Program.LocalSettings.RsltsSingleClmnWdths = new int[firstListView.Columns.Count];
|
||||
for (int i = 0; i < firstListView.Columns.Count; i++)
|
||||
{
|
||||
Program.LocalSettings.RsltsSingleClmnWdths[i] = firstListView.Columns[i].Width;
|
||||
}
|
||||
Program.LocalSettings.Save();
|
||||
}
|
||||
|
||||
RedrawAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user