tbf/TBF/ProceduresDlg.cs

199 lines
6.9 KiB
C#

///
/// Copyright (c) 2013-2017 Sensus Slovensko a.s.
///
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 = new Users.Grp.GID[] { Users.Grp.GID.TestingSpecialists, Users.Grp.GID.Metrologists };
sharedButtons.OptionalButtons = SharedButtons.Buttons.Add | SharedButtons.Buttons.Remove |
SharedButtons.Buttons.Up | SharedButtons.Buttons.Down |
SharedButtons.Buttons.Edit | SharedButtons.Buttons.Copy |
SharedButtons.Buttons.Export | SharedButtons.Buttons.Import |
SharedButtons.Buttons.Compare;
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;
sharedButtons.ExportClicked += proceduresCtrl.exportButton_Click;
sharedButtons.ImportClicked += proceduresCtrl.importButton_Click;
sharedButtons.CompareClicked += proceduresCtrl.compareButton_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);
}
/// <summary>
/// Called from ProceduresCtrl when item editing is completed with OK.
/// Authorisation occurs in the editted ProcedureDlg dialog.
/// </summary>
public void Unlock()
{
sharedButtons.UnlockButtons();
proceduresCtrl.Unlock();
}
/// <summary>
/// Called from sharedButtons when user clicks 'Unlock' button an is authorised.
/// </summary>
private void Unlocked(object sender, EventArgs e)
{
proceduresCtrl.Unlock();
}
/// <summary>
/// "OK" button and Windows 'x' buttom functions similarly r
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void okButton_Click(object sender, EventArgs e)
{
ProceduresDlg_FormClosed(sender, null);
DialogResult = DialogResult.OK;
Close();
}
/// <summary>
/// Windows 'x' buttom functions similarly r
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ProceduresDlg_FormClosed(object sender, FormClosedEventArgs 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();
}
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);
}
/// <summary>
/// Common part for three xxxListViewEx_SelectedIndexChanged event handlers
/// </summary>
/// <param name="listViewEx"></param>
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);
}
}
}
}