Common..CurrentUser static class with Stack<UserAndForm> userStack, Change( ) and Restore( ).

This commit is contained in:
Milan Hanajik
2022-05-25 15:23:55 +02:00
parent 00fc9ea847
commit f1f662a419
71 changed files with 738 additions and 593 deletions
+31 -37
View File
@@ -65,26 +65,38 @@ namespace TBF.UI.Procedures
bool unlocked;
public ProcedureDlg()
ProcedureDlg()
{
/// Detect display setting: 100% = 96dpi, 125% = 120dpi, 150% = 144dpi.
Dpi = (int)this.CreateGraphics().DpiX;
initialMode = Mode.Locked;
InitializeComponent();
InitializeComponent();
/// Detect display setting: 100% = 96dpi, 125% = 120dpi, 150% = 144dpi.
Dpi = (int)this.CreateGraphics().DpiX;
}
public ProcedureDlg(Procedure procedure, IList<string> usedNames, Mode initialMode, Form parentForm)
: this()
{
if (procedure == null) throw new ArgumentNullException("procedure");
LoadedProcedure = procedure;
this.usedNames = usedNames;
this.initialMode = initialMode;
/// SharedDlgButtons configuration
sharedButtons.ParentForm = parentForm;
#if KEMPNO_50 || KRAKOW_50
sharedButtons.RequiredGroupMembership = new GID[] { GID.TestingSpecialists, GID.WaterMeterAuthority };
sharedButtons.RequiredGroupMembership = procedure.Protected ? new GID[] { GID.WaterMeterAuthority }
: new GID[] { GID.TestingSpecialists, GID.WaterMeterAuthority };
#else
sharedButtons.RequiredGroupMembership = new GID[] { GID.TestingSpecialists, GID.Metrologists };
sharedButtons.RequiredGroupMembership = procedure.Protected ? new GID[] { GID.Metrologists }
: new GID[] { GID.TestingSpecialists, GID.Metrologists };
#endif
sharedButtons.OptionalButtons = SharedButtons.Buttons.Add |
SharedButtons.Buttons.Remove |
SharedButtons.Buttons.Up |
SharedButtons.Buttons.Down |
SharedButtons.Buttons.Copy;
#if TURA_SPECIAL || TURA_IPERL || TURA_IPERL_NEW
/// Custom button 'Načítaj testy iPerl z Oracle'
sharedButtons.OptionalButtons |= SharedButtons.Buttons.Custom1;
@@ -92,15 +104,16 @@ namespace TBF.UI.Procedures
sharedButtons.Custom1Clicked += iPerlWizardButton_Click;
#endif
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.OKClicked += okButton_Click;
sharedButtons.CancelClicked += cancelButton_Click;
sharedButtons.AddClicked += addButton_Click;
sharedButtons.RemoveClicked += removeButton_Click;
sharedButtons.UpClicked += upButton_Click;
sharedButtons.DownClicked += downButton_Click;
sharedButtons.CopyClicked += copyButton_Click;
if (initialMode == Mode.PermanentlyLocked) sharedButtons.DisableUnlock();
/// ListViewEx-es configuration
/// ListViewEx-es configuration
metrology1ListViewEx.SubItemClicked += new SubItemEventHandler(metrology1ListViewEx_SubItemClicked);
metrology1ListViewEx.SubItemRightClicked += new SubItemEventHandler(metrology1ListViewEx_SubItemRightClicked);
metrology1ListViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(metrology1ListViewEx_SubItemEndEditing);
@@ -118,25 +131,6 @@ namespace TBF.UI.Procedures
parametersListViewEx.SubItemEndEditing += new SubItemEndEditingEventHandler(parametersListViewEx_SubItemEndEditing);
SelectedTestIx = -1;
}
public ProcedureDlg(Config.Entities.Procedure procedure, IList<string> usedNames, Mode initialMode)
: this()
{
if (procedure == null) throw new ArgumentNullException("procedure");
LoadedProcedure = procedure;
this.usedNames = usedNames;
this.initialMode = initialMode;
#if KEMPNO_50 || KRAKOW_50
sharedButtons.RequiredGroupMembership = procedure.Protected ? new GID[] { GID.WaterMeterAuthority }
: new GID[] { GID.TestingSpecialists, GID.WaterMeterAuthority };
#else
sharedButtons.RequiredGroupMembership = procedure.Protected ? new GID[] { GID.Metrologists }
: new GID[] { GID.TestingSpecialists, GID.Metrologists };
#endif
if (initialMode == Mode.PermanentlyLocked) sharedButtons.DisableUnlock();
using (NHibernate.ISession session = TBF.DB.CreateSession(DBKind.Config))
{
@@ -2117,7 +2111,7 @@ namespace TBF.UI.Procedures
procNameTextBox.Enabled = true;
descriptionTextBox.Enabled = true;
variantTextBox.Enabled = true;
protectedCheckBox.Enabled = GlobalData.CurrentUser.IsMemberOf(GID.Metrologists);
protectedCheckBox.Enabled = CurrentUser.IsMemberOf(GID.Metrologists);
mustBeCompleteCheckBox.Enabled = true;
manualControlDisabledCheckBox.Enabled = true;
dataEntryComboBox.Enabled = true;
@@ -2857,7 +2851,7 @@ namespace TBF.UI.Procedures
/// <param name="procedure">Loaded procedure</param>
/// <param name="sensorsPath">Selected sensors path</param>
/// <param name="roiData">ROI data</param>
void AddProcedureParamsToRoiComponents(Config.Entities.Procedure procedure, string sensorsPathName, TestWizard.RoiData roiData)
void AddProcedureParamsToRoiComponents(Procedure procedure, string sensorsPathName, TestWizard.RoiData roiData)
{
IList<IComponent> cmpntsInSensPath = new List<IComponent>();
@@ -3087,7 +3081,7 @@ namespace TBF.UI.Procedures
if (lvi.Tag is Procedure)
{
(new ProcedureDlg(lvi.Tag as Procedure, new List<string>(), ProcedureDlg.Mode.PermanentlyLocked)).ShowDialog();
(new ProcedureDlg(lvi.Tag as Procedure, new List<string>(), ProcedureDlg.Mode.PermanentlyLocked, sharedButtons.ParentForm)).ShowDialog();
}
}
+18 -16
View File
@@ -1,5 +1,5 @@
///
/// Copyright (c) 2020 Sensus Slovensko a.s.
/// Copyright (c) 2020-2022 Sensus Slovensko a.s.
///
using System;
using System.Collections.Generic;
@@ -304,10 +304,10 @@ namespace TBF.UI.Procedures
newProcedure.Revision = 1;
newProcedure.PredecessorId = 0;
newProcedure.ObtainedByCopy = false;
newProcedure.CreationUser = GlobalData.GetCurrentUserName();
newProcedure.CreationUser = CurrentUser.UserName();
newProcedure.CreationTime = DateTime.Now;
if (new ProcedureDlg(newProcedure, GetUsedNames(false), ProcedureDlg.Mode.Unlocked).ShowDialog() == DialogResult.OK)
if (new ProcedureDlg(newProcedure, GetUsedNames(false), ProcedureDlg.Mode.Unlocked, parent).ShowDialog() == DialogResult.OK)
{
/// TODO: Make name uniqueness test
parent.Unlock();
@@ -316,7 +316,7 @@ namespace TBF.UI.Procedures
{
try
{
newProcedure.LastChgUser = GlobalData.GetCurrentUserName();
newProcedure.LastChgUser = CurrentUser.UserName();
newProcedure.LastChgTime = DateTime.Now;
DoAddOne(newProcedure);
@@ -542,7 +542,7 @@ namespace TBF.UI.Procedures
IList<string> usedNames = GetUsedNames(false);
usedNames.Remove(originalProcedure.Name.ToLower()); /// Allow original procedure name
///
if (new ProcedureDlg(modifiedProcedure, usedNames, ProcedureDlg.Mode.Locked).ShowDialog() == DialogResult.OK)
if (new ProcedureDlg(modifiedProcedure, usedNames, ProcedureDlg.Mode.Locked, parent).ShowDialog() == DialogResult.OK)
{
parent.Unlock();
@@ -551,7 +551,7 @@ namespace TBF.UI.Procedures
try
{
originalProcedure.ProcedureState = ProcedureState.History;
modifiedProcedure.LastChgUser = GlobalData.GetCurrentUserName();
modifiedProcedure.LastChgUser = CurrentUser.UserName();
modifiedProcedure.LastChgTime = DateTime.Now;
session.SaveOrUpdate(originalProcedure);
@@ -591,18 +591,18 @@ namespace TBF.UI.Procedures
newProcedure.Revision = 1;
newProcedure.PredecessorId = selectedProcedure.Id;
newProcedure.ObtainedByCopy = true;
newProcedure.CreationUser = GlobalData.GetCurrentUserName();
newProcedure.CreationUser = CurrentUser.UserName();
newProcedure.CreationTime = DateTime.Now;
newProcedure.Protected = false;
if ((new ProcedureDlg(newProcedure, GetUsedNames(false), ProcedureDlg.Mode.Unlocked)).ShowDialog() == DialogResult.OK)
if ((new ProcedureDlg(newProcedure, GetUsedNames(false), ProcedureDlg.Mode.Unlocked, parent)).ShowDialog() == DialogResult.OK)
{
/// TODO: Make name uniqueness test
parent.Unlock();
using (var transaction = session.BeginTransaction())
{
newProcedure.LastChgUser = GlobalData.GetCurrentUserName();
newProcedure.LastChgUser = CurrentUser.UserName();
newProcedure.LastChgTime = DateTime.Now;
DoAddOne(newProcedure);
@@ -645,17 +645,17 @@ namespace TBF.UI.Procedures
newProcedure.Revision = 1;
newProcedure.PredecessorId = 0;
newProcedure.ObtainedByCopy = false;
newProcedure.CreationUser = GlobalData.GetCurrentUserName();
newProcedure.CreationUser = CurrentUser.UserName();
newProcedure.CreationTime = DateTime.Now;
if ((new ProcedureDlg(newProcedure, GetUsedNames(false), ProcedureDlg.Mode.Unlocked)).ShowDialog() == DialogResult.OK)
if ((new ProcedureDlg(newProcedure, GetUsedNames(false), ProcedureDlg.Mode.Unlocked, parent)).ShowDialog() == DialogResult.OK)
{
/// TODO: Make name uniqueness test
parent.Unlock();
using (var transaction = session.BeginTransaction())
{
newProcedure.LastChgUser = GlobalData.GetCurrentUserName();
newProcedure.LastChgUser = CurrentUser.UserName();
newProcedure.LastChgTime = DateTime.Now;
DoAddOne(newProcedure);
@@ -726,7 +726,9 @@ namespace TBF.UI.Procedures
IList<IParamsProvider> errorFlagsParamsOfCreatedTests = new List<IParamsProvider>();
IList<IParamsProvider> waterMeterParamsOfNewProcedure = new List<IParamsProvider>();
var cmpntEntities = session.QueryOver<Component>().OrderBy(x => x.ItemNr).Asc.List<Component>();
var cmpntEntities = session.QueryOver<Component>()
.OrderBy(x => x.ItemNr).Asc
.List<Component>();
IList<Rig.Generic.IComponent> components = Rig.TbfComponents.LoadComponentsFromDB(cmpntEntities);
foreach (var cmptn in components)
{
@@ -860,10 +862,10 @@ namespace TBF.UI.Procedures
newProcedure.Revision = 1;
newProcedure.PredecessorId = 0;
newProcedure.ObtainedByCopy = false;
newProcedure.CreationUser = GlobalData.GetCurrentUserName();
newProcedure.CreationUser = CurrentUser.UserName();
newProcedure.CreationTime = DateTime.Now;
if (new ProcedureDlg(newProcedure, GetUsedNames(false), ProcedureDlg.Mode.Unlocked).ShowDialog() == DialogResult.OK)
if (new ProcedureDlg(newProcedure, GetUsedNames(false), ProcedureDlg.Mode.Unlocked, parent).ShowDialog() == DialogResult.OK)
{
/// TODO: Make name uniqueness test
parent.Unlock();
@@ -872,7 +874,7 @@ namespace TBF.UI.Procedures
{
try
{
newProcedure.LastChgUser = GlobalData.GetCurrentUserName();
newProcedure.LastChgUser = CurrentUser.UserName();
newProcedure.LastChgTime = DateTime.Now;
DoAddOne(newProcedure);
+3 -2
View File
@@ -32,7 +32,7 @@ namespace TBF.UI.Procedures
private void InitializeComponent()
{
this.splitContainer = new System.Windows.Forms.SplitContainer();
this.proceduresCtrl = new ProceduresCtrl();
this.proceduresCtrl = new TBF.UI.Procedures.ProceduresCtrl();
this.sharedButtons = new TBF.UI.Shared.SharedButtons();
((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
this.splitContainer.Panel1.SuspendLayout();
@@ -63,7 +63,7 @@ namespace TBF.UI.Procedures
this.proceduresCtrl.Dock = System.Windows.Forms.DockStyle.Fill;
this.proceduresCtrl.Location = new System.Drawing.Point(0, 0);
this.proceduresCtrl.Name = "proceduresCtrl";
this.proceduresCtrl.Size = new System.Drawing.Size(412, 402);
this.proceduresCtrl.Size = new System.Drawing.Size(606, 402);
this.proceduresCtrl.TabIndex = 0;
//
// sharedButtons
@@ -82,6 +82,7 @@ namespace TBF.UI.Procedures
this.Name = "ProceduresDlg";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "ProceduresDlg";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ProceduresDlg_FormClosing);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.ProceduresDlg_FormClosed);
this.Load += new System.EventHandler(this.ProceduresDlg_Load);
this.splitContainer.Panel1.ResumeLayout(false);
+6
View File
@@ -25,6 +25,7 @@ namespace TBF.UI.Procedures
InitializeComponent();
/// SharedDlgButtons configuration
sharedButtons.ParentForm = this;
sharedButtons.RequiredGroupMembership = new GID[] { GID.TestingSpecialists, GID.Metrologists };
#if TEST_PROFILES
@@ -252,5 +253,10 @@ namespace TBF.UI.Procedures
sharedButtons.DisableButtons(SharedButtons.Buttons.Remove | SharedButtons.Buttons.Up | SharedButtons.Buttons.Down);
}
}
private void ProceduresDlg_FormClosing(object sender, FormClosingEventArgs e)
{
if (CurrentUser.Restore(this)) Program.MainWnd.UpdateUser();
}
}
}