Refactorization : BenchControl -> Rig
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
///
|
||||
/// Copyright (c) 2017 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using log4net;
|
||||
using TBF.Resources;
|
||||
|
||||
namespace TBF.Rig.DataEntry.Standard6
|
||||
{
|
||||
public partial class CycleEndForm : Form, GenericDevices.IHasCompleted
|
||||
{
|
||||
private static readonly ILog log = LogManager.GetLogger(typeof(CycleEndForm));
|
||||
|
||||
/// <summary> Number of text boxes for serial numbers </summary>
|
||||
public readonly int WaterMetersCount;
|
||||
public readonly bool RemarkEnabled;
|
||||
|
||||
// To be retrieved after the form closes
|
||||
public string[] EndStateText;
|
||||
public string[] Remark;
|
||||
public string BatchRemark;
|
||||
|
||||
// Set to 'true' when the form closes
|
||||
public bool Completed { get { return completed; } }
|
||||
bool completed;
|
||||
|
||||
int textBoxesCount;
|
||||
Label[] labels;
|
||||
TextBox[] stateBoxes;
|
||||
TextBox[] remarkBoxes;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Constructor
|
||||
/// </summary>
|
||||
/// <param name="waterMetersCount">Number of text boxes for serial numbers</param>
|
||||
public CycleEndForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
ControlBox = false;
|
||||
|
||||
labels = new Label[] { label1, label2, label3, label4, label5, label6 };
|
||||
stateBoxes = new TextBox[] { textBox1, textBox2, textBox3, textBox4, textBox5, textBox6 };
|
||||
remarkBoxes = new TextBox[] { remarkTextBox1, remarkTextBox2, remarkTextBox3,
|
||||
remarkTextBox4, remarkTextBox5, remarkTextBox6 };
|
||||
textBoxesCount = stateBoxes.Length;
|
||||
this.WaterMetersCount = textBoxesCount;
|
||||
|
||||
completed = false;
|
||||
StartForceCloseHandler();
|
||||
}
|
||||
|
||||
/// <summary> Parameterless constructor for 3 watermeters </summary>
|
||||
public CycleEndForm(int waterMetersCount, bool remarkEnabled)
|
||||
: this()
|
||||
{
|
||||
this.WaterMetersCount = waterMetersCount;
|
||||
this.RemarkEnabled = remarkEnabled;
|
||||
EndStateText = new string[WaterMetersCount];
|
||||
Remark = new string[WaterMetersCount];
|
||||
}
|
||||
|
||||
private void CycleEndForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
Localize();
|
||||
|
||||
Height = 100 + 46 * WaterMetersCount;
|
||||
|
||||
if (!RemarkEnabled)
|
||||
{
|
||||
remarkLabel.Visible = false;
|
||||
batchRemarkButton.Visible = false;
|
||||
Width -= remarkTextBox1.Width;
|
||||
}
|
||||
|
||||
for (int i = 0; i < textBoxesCount; i++)
|
||||
{
|
||||
if (!RemarkEnabled) remarkBoxes[i].Visible = false;
|
||||
|
||||
if (i >= WaterMetersCount)
|
||||
{
|
||||
labels[i].Visible = false;
|
||||
stateBoxes[i].Visible = false;
|
||||
remarkBoxes[i].Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Localize()
|
||||
{
|
||||
Text = Strings.Data;
|
||||
okButton.Text = Strings.OkBtnText;
|
||||
|
||||
for (int i = 0; i < WaterMetersCount; i++)
|
||||
{
|
||||
labels[i].Text = string.Format("{0} {1}:", Strings.Water_Meter, i + 1);
|
||||
}
|
||||
|
||||
stateLabel.Text = string.Format("{0}:", Strings.State);
|
||||
remarkLabel.Text = string.Format("{0} {1}:", Strings.Water_Meter, Strings.Remark);
|
||||
}
|
||||
|
||||
private void okButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
for (int i = 0; i < WaterMetersCount; i++)
|
||||
{
|
||||
EndStateText[i] = stateBoxes[i].Text;
|
||||
Remark[i] = remarkBoxes[i].Text;
|
||||
}
|
||||
|
||||
completed = true;
|
||||
Close();
|
||||
}
|
||||
|
||||
#region Forced close handling
|
||||
|
||||
public void StartForceCloseHandler()
|
||||
{
|
||||
UiBridge.Bridge.CloseModelessFormHandler += delegate(object sender, EventArgs args)
|
||||
{
|
||||
if (InvokeRequired) { Invoke(new EventHandler<EventArgs>(OnForceClose), sender, args); }
|
||||
else OnForceClose(sender, args);
|
||||
};
|
||||
}
|
||||
|
||||
void OnForceClose(object sender, EventArgs args)
|
||||
{
|
||||
DialogResult = DialogResult.Cancel;
|
||||
Close();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private void batchRemarkButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
TBF.UI.Shared.RemarkDlg dlg = new TBF.UI.Shared.RemarkDlg() { Remark = ((BatchRemark == null) ? string.Empty : BatchRemark) };
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
BatchRemark = dlg.Remark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user