/// /// Copyright (c) 2015 Sensus Metering Systems /// using System; using System.Collections.Generic; using System.Windows.Forms; using log4net; using TBF.Resources; namespace TBF.BenchControl.DataEntry.iPerl { public partial class CycleBeginningForm : Form, GenericDevices.IHasCompleted { private static readonly ILog log = LogManager.GetLogger(typeof(CycleBeginningForm)); /// Number of water meters public readonly int WaterMetersCount; /// To be retrieved after the form is closed public string PurchaseOrder; public string[] SNText; public bool[] Disabled; /// Set to 'true' when the form closes public bool Completed { get { return completed; } } bool completed; /// Parameterless constructor for common functionality public CycleBeginningForm() { InitializeComponent(); ControlBox = false; completed = false; StartForceCloseHandler(); } /// /// Constructor /// /// Number of text boxes for serial numbers public CycleBeginningForm(int waterMetersCount) : this() { this.WaterMetersCount = waterMetersCount; SNText = null; Disabled = null; } private void CycleBeginningForm_Load(object sender, EventArgs e) { Text = Strings.Data; orderGroupBox.Text = Strings.Purchase_order; okButton.Text = Strings.OkBtnText; PrepareOrderCombo(orderComboBox); } /// /// Load Purchase order combo box items from the LocalSettings PurchaseOrderHistory array /// /// Puchase order ComboBox void PrepareOrderCombo(ComboBox orderComboBox) { for (int i = 0; i < Program.LocalSettings.PurchaseOrderHistoryCount; i++) { orderComboBox.Items.Add(Program.LocalSettings.PurchaseOrderHistory[i]); } if (orderComboBox.Items.Count > 0) { orderComboBox.Text = orderComboBox.Items[0].ToString(); } } private void okButton_Click(object sender, EventArgs e) { if (orderComboBox.Text.Length > 8) { MessageBox.Show(string.Format(Strings.Purchase_order_may_have_max_N_characters, 8), Strings.Error, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { PurchaseOrder = orderComboBox.Text; Program.LocalSettings.UpdateHistory(orderComboBox.Text, ref Program.LocalSettings.PurchaseOrderHistory); completed = true; Close(); } } #region Forced close handling public void StartForceCloseHandler() { UiBridge.Bridge.CloseModelessFormHandler += delegate(object sender, EventArgs args) { if (InvokeRequired) { Invoke(new EventHandler(OnForceClose), sender, args); } else OnForceClose(sender, args); }; } private void OnForceClose(object sender, EventArgs args) { DialogResult = DialogResult.Cancel; Close(); } #endregion } }