tbf/TestBenchFramework/Forms/ResultsArrangementDlg.cs

133 lines
3.8 KiB
C#

///
/// Copyright (c) 2013-2017 Sensus Metering Systems
///
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Config.Entities;
using Results;
using TBF.Resources;
namespace TBF.Forms
{
public partial class ResultsArrangementDlg : Form
{
/// <summary>
/// Required access rights to make changes with this form
/// </summary>
const Users.Grp.GID RequiredGroupMembership = Users.Grp.GID.Metrologists;
public bool Unlocked; /// true = changes enabled
public TestsArrangement TestsArrangement;
public MetersArrangement MetersArrangement;
public int NrMetersInOneGroup;
public IList<WMeterRsltItemSpec> SelectedItems
{
set { resultsConfigCtrl.SelectedItems = value; }
get { return resultsConfigCtrl.SelectedItems; }
}
public MetersKind MetersKind
{
set
{
resultsConfigCtrl.MetersKind = mtrsKind = value;
Text = string.Format("{0} ({1})", Strings.Configuration, mtrsKind.ToDescription());
}
}
MetersKind mtrsKind;
public ResultsArrangementDlg()
{
InitializeComponent();
resultsConfigCtrl.SupressTestIDColumn = true;
Unlocked = false;
cancelButton.Visible = false;
}
void Localize()
{
Text = string.Format("{0} ({1})", Strings.Configuration, mtrsKind.ToDescription());
testsArangementGroupBox.Text = Strings.Arrangement_of_tests;
metersArangementGroupBox.Text = Strings.Arrangement_of_meters;
testsRowsRadioButton.Text = Strings.Tests_are_rows;
testsColumnsRadioButton.Text = Strings.Tests_are_columns;
horizontallyRadioButton.Text = Strings.Horizontally;
verticallyRadioButton.Text = Strings.Vertically;
nrMetersLabel.Text = Strings.Nr_meters_in_a_group;
unlockButton.Text = Strings.UnlockBtnText;
okButton.Text = Strings.CloseBtnText;
cancelButton.Text = Strings.CancelBtnText;
}
void ResultsConfig_Load(object sender, EventArgs e)
{
Localize();
testsRowsRadioButton.Checked = (TestsArrangement == TestsArrangement.Rows);
testsColumnsRadioButton.Checked = (TestsArrangement == TestsArrangement.Columns);
horizontallyRadioButton.Checked = (MetersArrangement == MetersArrangement.Horizontally);
verticallyRadioButton.Checked = (MetersArrangement == MetersArrangement.Vertically);
nrMetersTextBox.Text = NrMetersInOneGroup.ToString();
}
void unlockButton_Click(object sender, EventArgs e)
{
if (!Unlocked)
{
if (!Users.GlobalData.CurrentUser.IsMemberOf(RequiredGroupMembership))
{
if ((new Users.Forms.LoginDlg(RequiredGroupMembership)).ShowDialog() != DialogResult.OK)
return;
}
else if (Program.LocalSettings.AlwaysAskPasswdWhenUnlocking)
{
if ((new Users.Forms.LoginDlg(Users.GlobalData.CurrentUser.UserName, RequiredGroupMembership)).ShowDialog() != DialogResult.OK)
return;
}
if (Program.MainWnd != null) Program.MainWnd.UpdateUser();
Unlocked = true;
///
/// Unlock user interface controls
///
unlockButton.Enabled = false;
okButton.Text = Strings.OkBtnText;
cancelButton.Visible = true;
testsRowsRadioButton.Enabled = true;
testsColumnsRadioButton.Enabled = true;
verticallyRadioButton.Enabled = true;
horizontallyRadioButton.Enabled = true;
nrMetersTextBox.Enabled = true;
resultsConfigCtrl.Unlocked = true;
}
}
void okButton_Click(object sender, EventArgs e)
{
if (testsColumnsRadioButton.Checked) TestsArrangement = TestsArrangement.Columns;
else TestsArrangement = TestsArrangement.Rows;
if (horizontallyRadioButton.Checked) MetersArrangement = MetersArrangement.Horizontally;
else MetersArrangement = MetersArrangement.Vertically;
int nrInGroup;
if (int.TryParse(nrMetersTextBox.Text, out nrInGroup) && nrInGroup > 0)
{
NrMetersInOneGroup = nrInGroup;
}
DialogResult = DialogResult.OK;
Close();
}
}
}