/// /// Copyright (c) 2013-2016 Sensus Metering Systems /// using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using TBF.Resources; namespace TBF.Forms { /// /// Provides login dialog that includes test bench selection. /// It is used only once on program startup. Does not do authorisation /// as User.users have not been loadded from the DB yet. /// public partial class LoginDlgWithBenchSelection : Form { // Private fields string alias; string password; string benchName = null; // Readonly public properties to do the authorization. public string Alias { get { return alias; } } public string Password { get { return password; } } public string BenchName { get { return benchName; } } public Config.Entities.LoginMethod Method; /// /// Constructor. /// public LoginDlgWithBenchSelection() { InitializeComponent(); } /// /// Constructor with a predefined bench. /// public LoginDlgWithBenchSelection(string predefinedBench) : this() { benchName = predefinedBench; } private void LoginDlgWithBenchSelection_Load(object sender, EventArgs e) { Localize(); #if DEBUG userNameTextBox.Text = "milan"; passwordTextBox.Text = "napajedla"; #endif for (int i = 0; i < Program.LocalSettings.BenchesCount; i++) { testBenchComboBox.Items.Add(Program.LocalSettings.TestBenches[i].BenchName); if (benchName != null && benchName == Program.LocalSettings.TestBenches[i].BenchName) { testBenchComboBox.Text = benchName; } } } void Localize() { Text = Strings.User_Login + " TBF v." + Program.Version; aliasLabel.Text = GetAliasLabel(); passwordLabel.Text = Strings.Password; testBenchLabel.Text = Strings.Test_bench; okButton.Text = Strings.OkBtnText; cancelButton.Text = Strings.CancelBtnText; } string GetAliasLabel() { switch (Method) { default: case Config.Entities.LoginMethod.UserName: return Strings.User_name; case Config.Entities.LoginMethod.FullName: return Strings.Full_name; case Config.Entities.LoginMethod.Number: return Strings.User_code; } } /// /// OK clicked (authorization is done outside this dialog). /// private void okButton_Click(object sender, EventArgs e) { if (testBenchComboBox.SelectedItem != null) { alias = userNameTextBox.Text; password = passwordTextBox.Text; benchName = testBenchComboBox.SelectedItem.ToString(); DialogResult = DialogResult.OK; Close(); return; } else { MessageBox.Show(Strings.PLs_select_testbench, Strings.Warning, MessageBoxButtons.OK); } } /// /// Cancel clicked. /// private void cancelButton_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; Close(); return; } private void passwordTextBox_TextChanged(object sender, EventArgs e) { if (passwordTextBox.Text != "") { this.AcceptButton = okButton; } } private void userNameTextBox_KeyPress(object sender, KeyPressEventArgs e) { if (Convert.ToInt32(e.KeyChar) == 13) { passwordTextBox.Focus(); } } private void aliasLabel_Click(object sender, EventArgs e) { Method++; if (Method == Config.Entities.LoginMethod.Count) Method = 0; aliasLabel.Text = GetAliasLabel(); } } }