185 lines
6.0 KiB
C#
185 lines
6.0 KiB
C#
///
|
|
/// Copyright (c) 2013-2015 Sensus Metering Systems
|
|
///
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Windows.Forms;
|
|
using NHibernate;
|
|
using log4net;
|
|
using TBF.UiControls;
|
|
using TBF.BenchControl;
|
|
using TBF.Resources;
|
|
|
|
namespace TBF
|
|
{
|
|
public partial class MetrologyDlg : Form, IParentOfListViewEx
|
|
{
|
|
static readonly ILog log = LogManager.GetLogger(typeof(MetrologyDlg));
|
|
|
|
public IList<Entities.Component> cmpntEntities;
|
|
|
|
ISession session;
|
|
|
|
public MetrologyDlg()
|
|
{
|
|
InitializeComponent();
|
|
|
|
/// SharedDlgButtons configuration
|
|
sharedButtons.RequiredGroupMembership = Grp.GID.Metrologists;
|
|
sharedButtons.OptionalButtons = SharedButtons.Buttons.Add | SharedButtons.Buttons.Remove;
|
|
sharedButtons.Unlocked += unlockButton_Click;
|
|
sharedButtons.OKClicked += okButton_Click;
|
|
sharedButtons.CancelClicked += cancelButton_Click;
|
|
sharedButtons.AddClicked += addButton_Click;
|
|
sharedButtons.RemoveClicked += removeButton_Click;
|
|
}
|
|
|
|
private void MetrologyDlg_Load(object sender, EventArgs e)
|
|
{
|
|
TBF.LocalSettings ls = Program.LocalSettings;
|
|
Width = (ls.MetrologyDlgWidth > 0) ? ls.MetrologyDlgWidth : 900;
|
|
Height = (ls.MetrologyDlgHeight > 0) ? ls.MetrologyDlgHeight : 500;
|
|
Left = (ls.MetrologyDlgLeft != 0) ? ls.MetrologyDlgLeft : 200;
|
|
Top = (ls.MetrologyDlgTop != 0) ? ls.MetrologyDlgTop : 100;
|
|
|
|
Text = Strings.Metrology;
|
|
|
|
int fixedCount = 0;
|
|
int balancesCount = 0;
|
|
int flowMetersCount = 0;
|
|
int pressMetersCount = 0;
|
|
|
|
session = FluentCommon.CreateSession(Database.Bench);
|
|
cmpntEntities = session.CreateQuery("FROM Component ORDER BY ItemNr")
|
|
.List<Entities.Component>();
|
|
|
|
// Density tab-page
|
|
fixedCount++;
|
|
TabPage dstyTabPage = new TabPage(" " + Strings.Density + " ");
|
|
MetrologyDlgDensityTab uiCtl = new MetrologyDlgDensityTab();
|
|
uiCtl.Dock = DockStyle.Fill;
|
|
dstyTabPage.Tag = uiCtl;
|
|
dstyTabPage.Controls.Add(uiCtl);
|
|
metrologyTabControl.TabPages.Add(dstyTabPage);
|
|
|
|
foreach (var cmpnt in cmpntEntities)
|
|
{
|
|
BenchControl.Generic.IComponentFactory factory = TbfComponents.CmpntFactoryFromClassName(cmpnt.ClassName);
|
|
|
|
// Balance tab-pages
|
|
if (factory is BenchControl.MettlerToledo.Standard.BalanceFactory ||
|
|
factory is BenchControl.MettlerToledo.Standard.BalanceNewFactory)
|
|
{
|
|
balancesCount++;
|
|
TabPage tabPage = new TabPage(" " + cmpnt.Name + " ");
|
|
MetrologyDlgBalanceTab uiControl = new MetrologyDlgBalanceTab();
|
|
uiControl.MeterEntity = cmpnt;
|
|
uiControl.Dock = DockStyle.Fill;
|
|
tabPage.Tag = uiControl;
|
|
tabPage.Controls.Add(uiControl);
|
|
metrologyTabControl.TabPages.Add(tabPage);
|
|
}
|
|
// Flowmeter tab-pages
|
|
if (factory is BenchControl.Elde.FlowMeter.FlowMeterFactory)
|
|
{
|
|
flowMetersCount++;
|
|
TabPage tabPage = new TabPage(" " + cmpnt.Name + " ");
|
|
MetrologyDlgFlowMeterTab uiControl = new MetrologyDlgFlowMeterTab();
|
|
uiControl.MeterEntity = cmpnt;
|
|
uiControl.Dock = DockStyle.Fill;
|
|
tabPage.Tag = uiControl;
|
|
tabPage.Controls.Add(uiControl);
|
|
metrologyTabControl.TabPages.Add(tabPage);
|
|
}
|
|
// Pressure meter tab-pages
|
|
if (factory is BenchControl.Elde.PressureMeter.PressureMeterFactory)
|
|
{
|
|
pressMetersCount++;
|
|
TabPage tabPage = new TabPage(" " + cmpnt.Name + " ");
|
|
MetrologyDlgPressMeterTab uiControl = new MetrologyDlgPressMeterTab();
|
|
uiControl.MeterEntity = cmpnt;
|
|
uiControl.Dock = DockStyle.Fill;
|
|
tabPage.Tag = uiControl;
|
|
tabPage.Controls.Add(uiControl);
|
|
metrologyTabControl.TabPages.Add(tabPage);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void unlockButton_Click(object sender, EventArgs e)
|
|
{
|
|
foreach (TabPage tabPage in metrologyTabControl.TabPages)
|
|
{
|
|
(tabPage.Tag as IMetrologyDlgTab).Unlock();
|
|
}
|
|
}
|
|
|
|
private void okButton_Click(object sender, EventArgs e)
|
|
{
|
|
foreach (TabPage tabPage in metrologyTabControl.TabPages)
|
|
{
|
|
IMetrologyDlgTab tab = tabPage.Tag as IMetrologyDlgTab;
|
|
tab.OkBtnClicked();
|
|
if (!(tabPage.Tag is MetrologyDlgDensityTab))
|
|
{
|
|
FluentCommon.SaveToDb(session, tab.MeterEntity);
|
|
foreach (var entity in tab.ToBeRemoved) FluentCommon.DeleteFromDb(session, entity);
|
|
}
|
|
}
|
|
|
|
Program.LocalSettings.MetrologyDlgLeft = Location.X;
|
|
Program.LocalSettings.MetrologyDlgTop = Location.Y;
|
|
Program.LocalSettings.MetrologyDlgWidth = Size.Width;
|
|
Program.LocalSettings.MetrologyDlgHeight = Size.Height;
|
|
Program.LocalSettings.Save();
|
|
|
|
DialogResult = DialogResult.OK;
|
|
Close();
|
|
}
|
|
|
|
private void cancelButton_Click(object sender, EventArgs e)
|
|
{
|
|
foreach (TabPage tabPage in metrologyTabControl.TabPages)
|
|
{
|
|
(tabPage.Tag as IMetrologyDlgTab).CancelBtnClicked();
|
|
}
|
|
|
|
Program.LocalSettings.MetrologyDlgLeft = Location.X;
|
|
Program.LocalSettings.MetrologyDlgTop = Location.Y;
|
|
Program.LocalSettings.MetrologyDlgWidth = Size.Width;
|
|
Program.LocalSettings.MetrologyDlgHeight = Size.Height;
|
|
Program.LocalSettings.Save();
|
|
|
|
DialogResult = DialogResult.Cancel;
|
|
Close();
|
|
}
|
|
|
|
private void addButton_Click(object sender, EventArgs e)
|
|
{
|
|
(metrologyTabControl.SelectedTab.Tag as IMetrologyDlgTab).AddOne();
|
|
}
|
|
|
|
private void removeButton_Click(object sender, EventArgs e)
|
|
{
|
|
(metrologyTabControl.SelectedTab.Tag as IMetrologyDlgTab).RemoveSelected();
|
|
}
|
|
|
|
public void UpdateButtonStates(SharedButtons.SelectedItemPos selectedItemPos)
|
|
{
|
|
if (selectedItemPos == SharedButtons.SelectedItemPos.None)
|
|
{
|
|
sharedButtons.DisableButtons(SharedButtons.Buttons.Remove);
|
|
}
|
|
else
|
|
{
|
|
sharedButtons.EnableButtons(SharedButtons.Buttons.Remove);
|
|
}
|
|
}
|
|
|
|
private void metrologyTabControl_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
sharedButtons.DisableButtons(SharedButtons.Buttons.Remove);
|
|
}
|
|
}
|
|
}
|