/// /// Copyright (c) 2013-2015 Sensus Metering Systems /// using System; using System.Collections.Generic; using System.Windows.Forms; using log4net; using TBF.Resources; using TBF.UiControls; namespace TBF { public partial class ProceduresDlg : Form { static readonly ILog log = LogManager.GetLogger(typeof(ProceduresDlg)); /// Used when re-scaling the dialog: 100% = 96dpi, 125% = 120dpi, 150% = 144dpi public readonly int Dpi; public const int Dpi100pct = 96; public ProceduresDlg() { /// Detect display setting: 100% = 96dpi, 125% = 120dpi, 150% = 144dpi. Dpi = (int)this.CreateGraphics().DpiX; InitializeComponent(); /// SharedDlgButtons configuration sharedButtons.RequiredGroupMembership = Users.Grp.GID.TestingSpecialists; sharedButtons.OptionalButtons = SharedButtons.Buttons.Add | SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up | SharedButtons.Buttons.Down | SharedButtons.Buttons.Edit | SharedButtons.Buttons.Copy; sharedButtons.Unlocked += Unlocked; sharedButtons.OKClicked += okButton_Click; sharedButtons.CancelClicked += cancelButton_Click; sharedButtons.AddClicked += addButton_Click; sharedButtons.RemoveClicked += removeButton_Click; sharedButtons.UpClicked += upButton_Click; sharedButtons.DownClicked += downButton_Click; sharedButtons.EditClicked += proceduresCtrl.editButton_Click; sharedButtons.CopyClicked += proceduresCtrl.copyButton_Click; } private void ProceduresDlg_Load(object sender, EventArgs e) { TBF.LocalSettings ls = Program.LocalSettings; Width = (ls.ProceduresDlgWidth > 0) ? ls.ProceduresDlgWidth : 600; Height = (ls.ProceduresDlgHeight > 0) ? ls.ProceduresDlgHeight : 500; Left = (ls.ProceduresDlgLeft != 0) ? ls.ProceduresDlgLeft : 200; Top = (ls.ProceduresDlgTop != 0) ? ls.ProceduresDlgTop : 100; Text = Strings.Procedures; proceduresCtrl.Initialize(this, splitContainer.Panel1); } /// /// Called from ProceduresCtrl when item editing is completed with OK. /// Authorisation occurs in the editted ProcedureDlg dialog. /// public void Unlock() { sharedButtons.UnlockButtons(); proceduresCtrl.Unlock(); } /// /// Called from sharedButtons when user clicks 'Unlock' button an is authorised. /// private void Unlocked(object sender, EventArgs e) { proceduresCtrl.Unlock(); } private void okButton_Click(object sender, EventArgs e) { proceduresCtrl.OkBtnClicked(); Program.LocalSettings.ProceduresDlgLeft = Location.X; Program.LocalSettings.ProceduresDlgTop = Location.Y; Program.LocalSettings.ProceduresDlgWidth = Size.Width; Program.LocalSettings.ProceduresDlgHeight = Size.Height; Program.LocalSettings.Save(); DialogResult = DialogResult.OK; Close(); } private void cancelButton_Click(object sender, EventArgs e) { proceduresCtrl.CancelBtnClicked(); Program.LocalSettings.ProceduresDlgLeft = Location.X; Program.LocalSettings.ProceduresDlgTop = Location.Y; Program.LocalSettings.ProceduresDlgWidth = Size.Width; Program.LocalSettings.ProceduresDlgHeight = Size.Height; Program.LocalSettings.Save(); DialogResult = DialogResult.Cancel; Close(); } private void addButton_Click(object sender, EventArgs e) { proceduresCtrl.AddOne(); } private void removeButton_Click(object sender, EventArgs e) { proceduresCtrl.RemoveSelected(); } private void upButton_Click(object sender, EventArgs e) { proceduresCtrl.MoveUpSelected(); } private void downButton_Click(object sender, EventArgs e) { //if (DialogResult.Yes == MessageBox.Show("Chcete naplnit 'Publish' a 'Evaluate' vsetkych testov?", "Otazka", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) //{ // UpgradeAllTests(); // return; //} proceduresCtrl.MoveDownSelected(); } private void proceduresCtrl_MouseDoubleClick(object sender, MouseEventArgs e) { proceduresCtrl.editButton_Click(sender, e); } /// /// Common part for three xxxListViewEx_SelectedIndexChanged event handlers /// /// void SelectedIndexChanged(object sender, EventArgs e) { Results.Forms.ListViewEx listViewEx = sender as Results.Forms.ListViewEx; if (listViewEx.SelectedItems.Count != 1) { /// No item selected sharedButtons.DisableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up | SharedButtons.Buttons.Down); } else if (listViewEx.Items.Count == 1) { /// One (the first and the last) item selected sharedButtons.EnableButtons(SharedButtons.Buttons.Remove); sharedButtons.DisableButtons(SharedButtons.Buttons.Up | SharedButtons.Buttons.Down); } else if (listViewEx.SelectedIndices[0] == 0) { /// The first of many items selected sharedButtons.EnableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Down); sharedButtons.DisableButtons(SharedButtons.Buttons.Up); } else if (listViewEx.SelectedIndices[0] == (listViewEx.Items.Count - 1)) { /// The last of many items selected sharedButtons.EnableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up); sharedButtons.DisableButtons(SharedButtons.Buttons.Down); } else { /// One of middle items selected sharedButtons.EnableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up | SharedButtons.Buttons.Down); } } public void UpdateButtonStates(SharedButtons.SelectedItemPos selectedItemPos) { if (selectedItemPos == SharedButtons.SelectedItemPos.None) { sharedButtons.DisableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up | SharedButtons.Buttons.Down); } } private void UpgradeAllTests() { NHibernate.ISession session = Config.FluentCommon.CreateSession(Users.Entities.DBKind.Config); IList procedures = session.QueryOver() .OrderBy(x => x.ItemNr).Asc .List(); ///IList components = TBF.BenchControl.TbfComponents.LoadComponentsFromDB(session); /// int successful = 0; int failed = 0; string lastMsg = string.Empty; int N = procedures.Count; for (int i = 0; i < N; i++) { Config.Entities.Procedure proc = procedures[i]; Text = string.Format("{0} ({1}/{2})", proc.Name, i+1, N); //TBF.BenchControl.Generic.IComponent component = TBF.BenchControl.TbfComponents.FindComponent() NHibernate.ITransaction transaction = session.BeginTransaction(); try { IList tests = session.QueryOver() .Where(x => (x.Procedure == proc)) .OrderBy(x => x.ItemNr).Desc .List(); transaction.Commit(); successful++; } catch (Exception exc) { transaction.Rollback(); lastMsg = exc.Message; failed++; } } MessageBox.Show(string.Format("Successful: {0}, Failed: {1}\r\nMessage: {2}", successful, failed, lastMsg), "Result", MessageBoxButtons.OK, (failed > 0) ? MessageBoxIcon.Error : MessageBoxIcon.Information); } } }