/// /// 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 { /// /// Required access rights to make changes with this form /// 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 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(); } } }