272 lines
11 KiB
C#
272 lines
11 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using NHibernate;
|
|
using log4net;
|
|
using TBF.Entities;
|
|
using TBF.UiBridge;
|
|
|
|
namespace TBF.UiControls
|
|
{
|
|
public partial class BenchControlPanel : UserControl
|
|
{
|
|
static readonly ILog log = LogManager.GetLogger(typeof(BenchControlPanel));
|
|
|
|
public string TestName;
|
|
|
|
// Original (enabled) colors of buttons and empty bench
|
|
Color colorStopEn;
|
|
Color colorTestsEn;
|
|
Color colorCycleEn;
|
|
Color colorPurgeEn;
|
|
Color colorAcceptEn;
|
|
Color colorEmptyEn;
|
|
Color colorOtherEn;
|
|
|
|
Color colorBenchEmpty;
|
|
|
|
// Colors of disabled buttons
|
|
Color colorStopDis;
|
|
Color colorTestsDis;
|
|
Color colorCycleDis;
|
|
Color colorPurgeDis;
|
|
Color colorAcceptDis;
|
|
Color colorEmptyDis;
|
|
Color colorOtherDis;
|
|
|
|
public BenchControlPanel()
|
|
{
|
|
InitializeComponent();
|
|
|
|
Bridge.ButtonsEtcHandler += delegate(object sender, ButtonsEtcEventArgs args)
|
|
{
|
|
if (InvokeRequired)
|
|
{
|
|
Invoke(new EventHandler<ButtonsEtcEventArgs>(OnButtonsEtc), sender, args);
|
|
}
|
|
else OnButtonsEtc(sender, args);
|
|
};
|
|
|
|
Bridge.ProcedureSelectedHandler += delegate(object sender, ProcedureSelectedEventArgs args)
|
|
{
|
|
if (InvokeRequired)
|
|
{
|
|
Invoke(new EventHandler<ProcedureSelectedEventArgs>(OnProcedureSelected), sender, args);
|
|
}
|
|
else OnProcedureSelected(sender, args);
|
|
};
|
|
|
|
Bridge.TestSelectedHandler += delegate(object sender, TestSelectedEventArgs args)
|
|
{
|
|
if (InvokeRequired)
|
|
{
|
|
Invoke(new EventHandler<TestSelectedEventArgs>(OnTestSelected), sender, args);
|
|
}
|
|
else OnTestSelected(sender, args);
|
|
};
|
|
|
|
#if DEBUG
|
|
nextButton.Visible = true;
|
|
nextButton.Enabled = true;
|
|
#endif
|
|
}
|
|
|
|
int Lghtr(int component)
|
|
{
|
|
return 255 - (255 - component) / 2;
|
|
}
|
|
|
|
private void BenchControlPanel_Load(object sender, EventArgs e)
|
|
{
|
|
// Original (enabled) colors of buttons
|
|
colorStopEn = stopBtn.BackColor;
|
|
colorTestsEn = startTestBtn.BackColor;
|
|
colorCycleEn = startCycleBtn.BackColor;
|
|
colorPurgeEn = purgeBeginBtn.BackColor;
|
|
colorAcceptEn = acceptResultsBtn.BackColor;
|
|
colorEmptyEn = emptyTank1Btn.BackColor;
|
|
colorOtherEn = tryHeadsBtn.BackColor;
|
|
colorBenchEmpty = emptyGroupBox.BackColor;
|
|
|
|
// Colors of disabled buttons
|
|
colorStopDis = Color.FromArgb(Lghtr(colorStopEn.R), Lghtr(colorStopEn.G), Lghtr(colorStopEn.B));
|
|
colorTestsDis = Color.FromArgb(Lghtr(colorTestsEn.R), Lghtr(colorTestsEn.G), Lghtr(colorTestsEn.B));
|
|
colorCycleDis = Color.FromArgb(Lghtr(colorCycleEn.R), Lghtr(colorCycleEn.G), Lghtr(colorCycleEn.B));
|
|
colorPurgeDis = Color.FromArgb(Lghtr(colorPurgeEn.R), Lghtr(colorPurgeEn.G), Lghtr(colorPurgeEn.B));
|
|
colorAcceptDis = Color.FromArgb(Lghtr(colorAcceptEn.R), Lghtr(colorAcceptEn.G), Lghtr(colorAcceptEn.B));
|
|
colorEmptyDis = Color.FromArgb(Lghtr(colorEmptyEn.R), Lghtr(colorEmptyEn.G), Lghtr(colorEmptyEn.B));
|
|
colorOtherDis = Color.FromArgb(Lghtr(colorOtherEn.R), Lghtr(colorOtherEn.G), Lghtr(colorOtherEn.B));
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Read the database and re-initialize testComboBox items.
|
|
/// Try to preserve the original selection.
|
|
/// </summary>
|
|
public void ReloadTests()
|
|
{
|
|
if (Program.MainWnd.ProcedureName == null) return;
|
|
|
|
string oriTestName = testComboBox.Text;
|
|
|
|
IList<Procedure> procedures = FluentCommon.CreateSession(Database.Procedures)
|
|
.CreateQuery("FROM Procedure WHERE Name = :name")
|
|
.SetParameter("name", Program.MainWnd.ProcedureName)
|
|
.List<Procedure>();
|
|
|
|
if (procedures.Count != 1)
|
|
{
|
|
testComboBox.Text = string.Empty;
|
|
TestName = null;
|
|
Program.MainWnd.CurrentProcedure = null;
|
|
return;
|
|
}
|
|
|
|
Program.MainWnd.CurrentProcedure = procedures[0];
|
|
|
|
testComboBox.Items.Clear();
|
|
foreach (var test in procedures[0].Tests) testComboBox.Items.Add(test.Name);
|
|
|
|
if (testComboBox.Items.Contains(oriTestName))
|
|
{
|
|
testComboBox.Text = oriTestName;
|
|
TestName = oriTestName;
|
|
}
|
|
else if (procedures[0].Tests.Count > 0)
|
|
{
|
|
testComboBox.Text = procedures[0].Tests[0].Name;
|
|
TestName = procedures[0].Tests[0].Name;
|
|
}
|
|
else
|
|
{
|
|
testComboBox.Text = string.Empty;
|
|
TestName = null;
|
|
}
|
|
}
|
|
|
|
private void testComboBox_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
TestName = testComboBox.Text;
|
|
startTestBtn.Select();
|
|
}
|
|
|
|
|
|
private void startTestBtn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.StartTest); }
|
|
private void startQ1Btn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.StartQ1); }
|
|
private void startQ2Btn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.StartQ2); }
|
|
private void startQ3Btn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.StartQ3); }
|
|
private void startCycleBtn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.StartCycle); }
|
|
private void stopBtn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.Stop); }
|
|
private void purgeBeginBtn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.PurgeBegin); }
|
|
private void purgeEndBtn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.PurgeEnd); }
|
|
private void emptyTank1Btn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.EmptyTank1); }
|
|
private void emptyTank2Btn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.EmptyTank2); }
|
|
private void tryHeadsBtn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.TryOpticalHeads); }
|
|
private void resetResultsBtn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.ResetResults); }
|
|
private void acceptResultsBtn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.AcceptResults); }
|
|
private void calibrationBtn_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.CameraTest); }
|
|
private void sensitivityTestBtn_Click(object sender, EventArgs e){ Bridge.Ui2Bench(UI2BenchCmd.SensitivityTest); }
|
|
private void button1_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.B1); }
|
|
private void button2_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.B2); }
|
|
private void nextButton_Click(object sender, EventArgs e) { Bridge.Ui2Bench(UI2BenchCmd.Next); }
|
|
|
|
/// <summary>
|
|
/// Processes a pressed keys.
|
|
/// </summary>
|
|
/// <param name="key">key (char)</param>
|
|
/// <returns>true when the key is handled, otherwise false</returns>
|
|
public bool ProcessKey(char key)
|
|
{
|
|
switch (key)
|
|
{
|
|
case '0': if (stopBtn.Enabled) { Bridge.Ui2Bench(UI2BenchCmd.Stop); } return true;
|
|
case '1': if (startQ1Btn.Enabled) { Bridge.Ui2Bench(UI2BenchCmd.StartQ1); } return true;
|
|
case '2': if (startQ2Btn.Enabled) { Bridge.Ui2Bench(UI2BenchCmd.StartQ2); } return true;
|
|
case '3': if (startQ3Btn.Enabled) { Bridge.Ui2Bench(UI2BenchCmd.StartQ3); } return true;
|
|
case '4': if (startTestBtn.Enabled) { Bridge.Ui2Bench(UI2BenchCmd.StartTest); } return true;
|
|
case '5': if (startCycleBtn.Enabled) { Bridge.Ui2Bench(UI2BenchCmd.StartCycle); } return true;
|
|
case '6': if (purgeBeginBtn.Enabled) { Bridge.Ui2Bench(UI2BenchCmd.PurgeBegin); } return true;
|
|
case '7': if (purgeEndBtn.Enabled) { Bridge.Ui2Bench(UI2BenchCmd.PurgeEnd); } return true;
|
|
case '8': if (emptyTank1Btn.Enabled) { Bridge.Ui2Bench(UI2BenchCmd.EmptyTank1); } return true;
|
|
case '9': if (emptyTank2Btn.Enabled) { Bridge.Ui2Bench(UI2BenchCmd.EmptyTank2); } return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
public void OnProcedureSelected(object sender, ProcedureSelectedEventArgs args)
|
|
{
|
|
ReloadTests();
|
|
}
|
|
|
|
public void OnTestSelected(object sender, TestSelectedEventArgs args)
|
|
{
|
|
testComboBox.Text = args.Test.Name;
|
|
}
|
|
|
|
|
|
public void OnButtonsEtc(object sender, ButtonsEtcEventArgs args)
|
|
{
|
|
if ((args.Flags & ButtonsEtc.ShowBenchEmpty) != 0)
|
|
{
|
|
purgeGroupBox.BackColor = colorBenchEmpty;
|
|
return;
|
|
}
|
|
else if ((args.Flags & ButtonsEtc.ShowBenchFilled) != 0)
|
|
{
|
|
purgeGroupBox.BackColor = Color.RoyalBlue;
|
|
return;
|
|
}
|
|
|
|
testComboBox.Enabled = ((args.Flags & ButtonsEtc.TestCmbBoxEn) != 0);
|
|
|
|
stopBtn.Enabled = ((args.Flags & ButtonsEtc.StopBtnEn) != 0);
|
|
stopBtn.BackColor = stopBtn.Enabled ? colorStopEn : colorStopDis;
|
|
|
|
startTestBtn.Enabled = ((args.Flags & ButtonsEtc.StartTestBtnsEn) != 0);
|
|
startTestBtn.BackColor = startTestBtn.Enabled ? colorTestsEn : colorTestsDis;
|
|
|
|
startQ1Btn.Enabled = ((args.Flags & ButtonsEtc.StartTestBtnsEn) != 0);
|
|
startQ1Btn.BackColor = startQ1Btn.Enabled ? colorTestsEn : colorTestsDis;
|
|
|
|
startQ2Btn.Enabled = ((args.Flags & ButtonsEtc.StartTestBtnsEn) != 0);
|
|
startQ2Btn.BackColor = startQ2Btn.Enabled ? colorTestsEn : colorTestsDis;
|
|
|
|
startQ3Btn.Enabled = ((args.Flags & ButtonsEtc.StartTestBtnsEn) != 0);
|
|
startQ3Btn.BackColor = startQ3Btn.Enabled ? colorTestsEn : colorTestsDis;
|
|
|
|
startCycleBtn.Enabled = ((args.Flags & ButtonsEtc.StartCycleBtnEn) != 0);
|
|
startCycleBtn.BackColor = startCycleBtn.Enabled ? colorCycleEn : colorCycleDis;
|
|
|
|
purgeBeginBtn.Enabled = ((args.Flags & ButtonsEtc.PurgeBeginBtnEn) != 0);
|
|
purgeBeginBtn.BackColor = purgeBeginBtn.Enabled ? colorPurgeEn : colorPurgeDis;
|
|
|
|
purgeEndBtn.Enabled = ((args.Flags & ButtonsEtc.PurgeEndBtnEn) != 0);
|
|
purgeEndBtn.BackColor = purgeEndBtn.Enabled ? colorPurgeEn : colorPurgeDis;
|
|
|
|
emptyTank1Btn.Enabled = ((args.Flags & ButtonsEtc.EmptyTankBtn1En) != 0);
|
|
emptyTank1Btn.BackColor = emptyTank1Btn.Enabled ? colorEmptyEn : colorEmptyDis;
|
|
|
|
emptyTank2Btn.Enabled = ((args.Flags & ButtonsEtc.EmptyTankBtn2En) != 0);
|
|
emptyTank2Btn.BackColor = emptyTank2Btn.Enabled ? colorEmptyEn : colorEmptyDis;
|
|
|
|
resetResultsBtn.Enabled = ((args.Flags & ButtonsEtc.ResetResultsBtnEn) != 0);
|
|
resetResultsBtn.BackColor = resetResultsBtn.Enabled ? colorStopEn : colorStopDis;
|
|
|
|
acceptResultsBtn.Enabled = ((args.Flags & ButtonsEtc.AcceptResultsBtnEn) != 0);
|
|
acceptResultsBtn.BackColor = acceptResultsBtn.Enabled ? colorAcceptEn : colorAcceptDis;
|
|
|
|
tryHeadsBtn.Enabled = ((args.Flags & ButtonsEtc.TryOpticalHeadsBtnEn) != 0);
|
|
tryHeadsBtn.BackColor = tryHeadsBtn.Enabled ? colorOtherEn : colorOtherDis;
|
|
|
|
calibrationBtn.Enabled = ((args.Flags & ButtonsEtc.CalibrationBtnEn) != 0);
|
|
calibrationBtn.BackColor = calibrationBtn.Enabled ? colorOtherEn : colorOtherDis;
|
|
|
|
sensitivityTestBtn.Enabled = ((args.Flags & ButtonsEtc.SensitivityTestBtnEn) != 0);
|
|
sensitivityTestBtn.BackColor = sensitivityTestBtn.Enabled ? colorOtherEn : colorOtherDis;
|
|
}
|
|
}
|
|
}
|