Results configuration with new parameter 'Nr. meters in a group'. Version 1.4.40

This commit is contained in:
Milan Hanajik
2015-05-21 12:13:15 +02:00
parent 3274b04983
commit 0d1b1423c4
7 changed files with 65 additions and 13 deletions
@@ -19,6 +19,7 @@ namespace TBF.Screens
public TBF.Forms.ResultsConfig.Meters MetersArrangement;
public TBF.Forms.ResultsConfig.TestsAre TestsArrangement;
public int NrMetersInOneGroup;
public IList<TBF.Forms.ResultItemSpec> RsltItems_Screen_SingleWM;
public IList<TBF.Forms.ResultItemSpec> RsltItems_Screen_CombinedWM;
@@ -68,6 +69,7 @@ namespace TBF.Screens
MetersArrangement = Program.LocalSettings.ResultsConfigMeters;
TestsArrangement = Program.LocalSettings.ResultsConfigTests;
NrMetersInOneGroup = Program.LocalSettings.ResultsConfigMetersInOneGroup;
RsltItems_Screen_SingleWM = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Screen_SingleWM);
RsltItems_Screen_CombinedWM = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Screen_CombinedWM);
RsltItems_Printer_SingleWM = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Printer_SingleWM);
@@ -86,6 +88,7 @@ namespace TBF.Screens
TBF.Forms.ResultsConfig dlg = new TBF.Forms.ResultsConfig();
dlg.TestsArrangement = TestsArrangement;
dlg.MetersArrangement = MetersArrangement;
dlg.NrMetersInOneGroup = NrMetersInOneGroup;
dlg.RsltItems_Screen_SingleWM = RsltItems_Screen_SingleWM;
dlg.RsltItems_Screen_CombinedWM = RsltItems_Screen_CombinedWM;
dlg.RsltItems_Printer_SingleWM = RsltItems_Printer_SingleWM;
@@ -96,6 +99,7 @@ namespace TBF.Screens
{
MetersArrangement = dlg.MetersArrangement;
TestsArrangement = dlg.TestsArrangement;
NrMetersInOneGroup = dlg.NrMetersInOneGroup;
RsltItems_Screen_SingleWM = dlg.RsltItems_Screen_SingleWM;
RsltItems_Screen_CombinedWM = dlg.RsltItems_Screen_CombinedWM;
RsltItems_Printer_SingleWM = dlg.RsltItems_Printer_SingleWM;
@@ -105,6 +109,7 @@ namespace TBF.Screens
Program.LocalSettings.ResultsConfigMeters = MetersArrangement;
Program.LocalSettings.ResultsConfigTests = TestsArrangement;
Program.LocalSettings.ResultsConfigMetersInOneGroup = NrMetersInOneGroup;
Program.LocalSettings.RsltItems_Screen_SingleWM = Forms.ResultItemSpec.ToStrArray(RsltItems_Screen_SingleWM);
Program.LocalSettings.RsltItems_Screen_CombinedWM = Forms.ResultItemSpec.ToStrArray(RsltItems_Screen_CombinedWM);
Program.LocalSettings.RsltItems_Printer_SingleWM = Forms.ResultItemSpec.ToStrArray(RsltItems_Printer_SingleWM);
@@ -138,8 +143,6 @@ namespace TBF.Screens
(testResults[0].MetersKind == Entities.MetersKind.Combined));
this.SuspendLayout();
lvWidth = flowLayoutPanel.Width - 10;
lvHeight = flowLayoutPanel.Height - 10;
/// Determine how many water meters were enabled for result evaluation and printing
int enabledWMsCount = 0;
@@ -156,15 +159,20 @@ namespace TBF.Screens
}
}
int metersInOneGroup = Math.Max(1, Math.Min(enabledWMsCount, NrMetersInOneGroup));
int nrGroups = Math.Max(1, (enabledWMsCount + NrMetersInOneGroup - 1) / NrMetersInOneGroup);
if (MetersArrangement == Forms.ResultsConfig.Meters.Horizontally)
{
flowLayoutPanel.FlowDirection = FlowDirection.LeftToRight;
lvWidth = (lvWidth + 5) / Math.Max(enabledWMsCount, 1) - 5;
lvWidth = (lvWidth + 5) / metersInOneGroup - 5;
lvHeight = (flowLayoutPanel.Height + 5) / nrGroups - 5;
}
else
{
flowLayoutPanel.FlowDirection = FlowDirection.TopDown;
lvHeight = (lvHeight + 5) / Math.Max(enabledWMsCount, 1) - 5;
lvWidth = (flowLayoutPanel.Width + 5) / nrGroups - 5;
lvHeight = (lvHeight + 5) /metersInOneGroup - 5;
}
flowLayoutPanel.Controls.Clear();
flowLayoutPanel.WrapContents = false;