using System;
using System.Windows.Forms;
using Common;
using SharedDatabase;
using SharedDatabase.Entities;
using WorkflowConfigurator.Resources;
namespace WorkflowConfigurator.Forms
{
public partial class PartDlg : Form
{
public Part Part;
public bool AnyChange; /// if AnyChange == true the dialog returns DialogResult.OK
///
/// Constructor when a new part is being created
///
/// Part name
/// Process
public PartDlg(string name, Process process)
{
InitializeComponent();
Part = new Part(name, process, CodeType.UniqueNr, CodeForm.QRCode, CodeLocation.OnPart);
Text = Strings.New_part;
AnyChange = true;
}
///
/// Constructor when a part is being editted
///
/// Part
public PartDlg(Part part, bool unlockedCompletely, bool unlockedReleased)
{
InitializeComponent();
Part = part;
Text = Strings.Part_properties;
AnyChange = false;
if (unlockedCompletely)
{
nameTextBox.Enabled = true;
descriptionTextBox.Enabled = true;
lifetimeManagementComboBox.Enabled = true;
typeRadioButton1.Enabled = true;
typeRadioButton2.Enabled = true;
typeRadioButton3.Enabled = true;
typeRadioButton4.Enabled = true;
typeRadioButton5.Enabled = true;
typeRadioButton6.Enabled = true;
typeRadioButton7.Enabled = true;
typeRadioButton8.Enabled = true;
typeRadioButton9.Enabled = true;
formRadioButton1.Enabled = true;
formRadioButton2.Enabled = true;
formRadioButton3.Enabled = true;
formRadioButton4.Enabled = true;
formRadioButton5.Enabled = true;
formRadioButton6.Enabled = true;
formRadioButton7.Enabled = true;
formRadioButton8.Enabled = true;
formRadioButton9.Enabled = true;
formRadioButton10.Enabled = true;
formRadioButton11.Enabled = true;
locationRadioButton1.Enabled = true;
locationRadioButton2.Enabled = true;
}
else if (unlockedReleased)
{
nameTextBox.Enabled = true;
descriptionTextBox.Enabled = true;
lifetimeManagementComboBox.Enabled = true;
typeRadioButton1.Enabled = true;
typeRadioButton2.Enabled = true;
typeRadioButton3.Enabled = true;
typeRadioButton4.Enabled = true;
typeRadioButton5.Enabled = true;
typeRadioButton6.Enabled = true;
typeRadioButton7.Enabled = true;
typeRadioButton8.Enabled = true;
typeRadioButton9.Enabled = true;
formRadioButton1.Enabled = true;
formRadioButton2.Enabled = true;
formRadioButton3.Enabled = true;
formRadioButton4.Enabled = true;
formRadioButton5.Enabled = true;
formRadioButton6.Enabled = true;
formRadioButton7.Enabled = true;
formRadioButton8.Enabled = true;
formRadioButton9.Enabled = true;
formRadioButton10.Enabled = true;
formRadioButton11.Enabled = true;
locationRadioButton1.Enabled = false;
locationRadioButton2.Enabled = false;
}
else
{
nameTextBox.Enabled = false;
descriptionTextBox.Enabled = false;
lifetimeManagementComboBox.Enabled = false;
typeRadioButton1.Enabled = false;
typeRadioButton2.Enabled = false;
typeRadioButton3.Enabled = false;
typeRadioButton4.Enabled = false;
typeRadioButton5.Enabled = false;
typeRadioButton6.Enabled = false;
typeRadioButton7.Enabled = false;
typeRadioButton8.Enabled = false;
typeRadioButton9.Enabled = false;
formRadioButton1.Enabled = false;
formRadioButton2.Enabled = false;
formRadioButton3.Enabled = false;
formRadioButton4.Enabled = false;
formRadioButton5.Enabled = false;
formRadioButton6.Enabled = false;
formRadioButton7.Enabled = false;
formRadioButton8.Enabled = false;
formRadioButton9.Enabled = false;
formRadioButton10.Enabled = false;
formRadioButton11.Enabled = false;
locationRadioButton1.Enabled = false;
locationRadioButton2.Enabled = false;
okButton.Visible = false;
cancelButton.Text = Strings.Close;
}
}
private void PartDlg_Load(object sender, EventArgs e)
{
for (LifetimeManagement lm = 0; lm < LifetimeManagement.Count; lm++)
{
lifetimeManagementComboBox.Items.Add(lm.ToString());
}
Redraw();
}
void Redraw()
{
nameTextBox.Text = Part.Name;
descriptionTextBox.Text = Part.Description;
lifetimeManagementComboBox.Text = Part.LifetimeManagement.ToString();
typeRadioButton1.Checked = (Part.CodeType == (sbyte)CodeType.UniqueNr);
typeRadioButton2.Checked = (Part.CodeType == (sbyte)CodeType.FlowtubeNr);
typeRadioButton3.Checked = (Part.CodeType == (sbyte)CodeType.FlowtubeNrLU);
typeRadioButton4.Checked = (Part.CodeType == (sbyte)CodeType.BatchNr);
typeRadioButton5.Checked = (Part.CodeType == (sbyte)CodeType.BatchNrContainingPartName);
typeRadioButton6.Checked = (Part.CodeType == (sbyte)CodeType.DateMMYY);
typeRadioButton7.Checked = (Part.CodeType == (sbyte)CodeType.QualityCheck);
typeRadioButton8.Checked = (Part.CodeType == (sbyte)CodeType.PO);
typeRadioButton9.Checked = (Part.CodeType == (sbyte)CodeType.Silicon);
formRadioButton1.Checked = (Part.CodeForm == (sbyte)CodeForm.Barcode);
formRadioButton2.Checked = (Part.CodeForm == (sbyte)CodeForm.QRCode);
formRadioButton3.Checked = (Part.CodeForm == (sbyte)CodeForm.Keyboard);
formRadioButton4.Checked = (Part.CodeForm == (sbyte)CodeForm.OkNok);
formRadioButton5.Checked = (Part.CodeForm == (sbyte)CodeForm.SerialNr);
formRadioButton6.Checked = (Part.CodeForm == (sbyte)CodeForm.Camera);
formRadioButton7.Checked = (Part.CodeForm == (sbyte)CodeForm.Scale);
formRadioButton8.Checked = (Part.CodeForm == (sbyte)CodeForm.SNGenerator);
formRadioButton9.Checked = (Part.CodeForm == (sbyte)CodeForm.DataStream);
formRadioButton10.Checked = (Part.CodeForm == (sbyte)CodeForm.Spare2);
formRadioButton11.Checked = (Part.CodeForm == (sbyte)CodeForm.Spare3);
locationRadioButton1.Checked = (Part.CodeLocation == CodeLocation.OnPart);
locationRadioButton2.Checked = (Part.CodeLocation == CodeLocation.OnPallet);
}
void UpdateFromForm()
{
if (Part.Name != nameTextBox.Text) { AnyChange = true; Part.Name = nameTextBox.Text; }
if (Part.Description != descriptionTextBox.Text) { AnyChange = true; Part.Description = descriptionTextBox.Text; }
for (LifetimeManagement lm = 0; lm < LifetimeManagement.Count; lm++)
{
if (lifetimeManagementComboBox.Text.Equals(lm.ToString()))
{
if (Part.LifetimeManagement != lm)
{
AnyChange = true;
Part.LifetimeManagement = lm;
}
break;
}
}
CodeType codeType = typeRadioButton1.Checked ? CodeType.UniqueNr :
(typeRadioButton2.Checked ? CodeType.FlowtubeNr :
(typeRadioButton3.Checked ? CodeType.FlowtubeNrLU :
(typeRadioButton4.Checked ? CodeType.BatchNr :
(typeRadioButton5.Checked ? CodeType.BatchNrContainingPartName :
(typeRadioButton6.Checked ? CodeType.DateMMYY :
(typeRadioButton7.Checked ? CodeType.QualityCheck :
(typeRadioButton8.Checked ? CodeType.PO :
CodeType.Silicon)))))));
if (Part.CodeType != (sbyte)codeType)
{
AnyChange = true;
Part.CodeType = (sbyte)codeType;
}
CodeForm codeForm = formRadioButton1.Checked ? CodeForm.Barcode :
(formRadioButton2.Checked ? CodeForm.QRCode :
(formRadioButton3.Checked ? CodeForm.Keyboard :
(formRadioButton4.Checked ? CodeForm.OkNok :
(formRadioButton5.Checked ? CodeForm.SerialNr :
(formRadioButton6.Checked ? CodeForm.Camera :
(formRadioButton7.Checked ? CodeForm.Scale :
(formRadioButton8.Checked ? CodeForm.SNGenerator :
(formRadioButton8.Checked ? CodeForm.DataStream :
(formRadioButton8.Checked ? CodeForm.Spare2 :
CodeForm.Spare3)))))))));
if (Part.CodeForm != (sbyte)codeForm)
{
AnyChange = true;
Part.CodeForm = (sbyte)codeForm;
}
CodeLocation codeLoc = locationRadioButton1.Checked ? CodeLocation.OnPart :
CodeLocation.OnPallet;
if (Part.CodeLocation != codeLoc)
{
AnyChange = true;
Part.CodeLocation = codeLoc;
}
}
///
/// Returns true if verification passed OK
///
///
bool Verify(out string message)
{
if (nameTextBox.Text.Length > Const.MaxPartNameLen)
{
message = string.Format(Strings.Max_part_name_length_is_0_characters, Const.MaxPartNameLen);
return false;
}
message = string.Empty;
return true;
}
private void okButton_Click(object sender, EventArgs e)
{
string message;
if (!Verify(out message))
{
MessageBox.Show(string.Format("{0}{1}{2}", Strings.Invalid_data, Environment.NewLine, message),
Strings.Error, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
UpdateFromForm();
DialogResult = AnyChange ? DialogResult.OK : DialogResult.Cancel;
Close();
}
private void cancelButton_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
Close();
}
}
}