tbf/TBF/TestWizard/Roi1.cs

137 lines
2.8 KiB
C#

///
/// Copyright (c) 2017 Sensus Metering Systems
///
using System;
using System.Drawing;
using System.Windows.Forms;
using TBF.Resources;
namespace TBF.TestWizard
{
public partial class Roi1 : Form
{
RoiData roiData;
const int StylesCount = 3;
int styleIdx; /// 0 .. StylesCount - 1
public Roi1()
{
InitializeComponent();
}
public Roi1(bool first, bool last, RoiData roiData)
: this()
{
this.roiData = roiData;
Text = "Pointer/arrow style";
teethCount.Text = "Teeth count";
backButton.Text = Strings.BackBtnText;
nextButton.Text = Strings.NextBtnText;
cancelButton.Text = Strings.CancelBtnText;
if (first) backButton.Visible = false;
if (last) nextButton.Text = Strings.FinishBtnText;
}
private void Roi1_Load(object sender, EventArgs e)
{
if (roiData == null) return;
RefreshWizardPage();
}
void RefreshWizardPage()
{
teetgCountTextBox.Text = roiData.TeethCount.ToString();
styleIdx = roiData.StyleIdx;
LoadImageAndUpdateFwBwBtns();
nextButton.Enabled = IsFormValid();
}
void LoadImageAndUpdateFwBwBtns()
{
switch (styleIdx)
{
default:
case 0:
stylePictureBox.Image = new Bitmap(TBF.Properties.Resources.RoiStyle1);
break;
case 1:
stylePictureBox.Image = new Bitmap(TBF.Properties.Resources.RoiStyle2);
break;
case 2:
stylePictureBox.Image = new Bitmap(TBF.Properties.Resources.RoiStyle3);
break;
}
fwButton.Enabled = styleIdx < StylesCount - 1;
bwButton.Enabled = styleIdx > 0;
}
void UpdateTest()
{
roiData.StyleIdx = styleIdx;
roiData.TeethCount = int.Parse(teetgCountTextBox.Text);
}
bool IsFormValid()
{
int teethCnt;
return int.TryParse(teetgCountTextBox.Text, out teethCnt)
&& teethCnt > 0 && teethCnt <= 20
&& styleIdx >= 0 && styleIdx < StylesCount
&& (styleIdx == 2 || teethCnt == 1);
}
private void backButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Retry;
Close();
}
private void nextButton_Click(object sender, EventArgs e)
{
if (roiData != null && IsFormValid())
{
UpdateTest();
DialogResult = DialogResult.OK;
Close();
}
else
{
DialogResult = DialogResult.None;
}
}
private void cancelButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
private void anyTextBox_TextChanged(object sender, EventArgs e)
{
nextButton.Enabled = IsFormValid();
}
private void bwButton_Click(object sender, EventArgs e)
{
if (styleIdx > 0) styleIdx--;
LoadImageAndUpdateFwBwBtns();
nextButton.Enabled = IsFormValid();
}
private void fwButton_Click(object sender, EventArgs e)
{
if (styleIdx < StylesCount - 1) styleIdx++;
LoadImageAndUpdateFwBwBtns();
nextButton.Enabled = IsFormValid();
}
}
}