git_bsmd/ENI-2/ENI2/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs

696 lines
32 KiB
C#

// Copyright (c) 2017 schick Informatik
// Description: Für Arrival / Departure
//
using System.Windows;
using bsmd.database;
using ENI2.EditControls;
using ENI2.Util;
using System.Windows.Controls;
using System.Windows.Media.Imaging;
using System;
namespace ENI2.DetailViewControls
{
/// <summary>
/// Interaction logic for DangerousGoodsDetailControl.xaml
/// </summary>
public partial class DangerousGoodsDetailControl : DetailBaseControl
{
private Message _hazMessage;
private HAZ haz;
private HAZ hazd; // referenz auf HAZD, falls das hier HAZA ist und wir Positionen kopieren wollen
public DangerousGoodsDetailControl()
{
InitializeComponent();
this.Loaded += DangerousGoodsDetailControl_Loaded;
}
private void DangerousGoodsDetailControl_Loaded(object sender, RoutedEventArgs e)
{
this.RegisterCheckboxChange(this.checkBoxDangerousGoodsOnBoard, this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.RegisterCheckboxChange(this.checkBoxDGManifestOnBoard, this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.RegisterCheckboxChange(this.checkBoxMoUBaltic, this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.RegisterComboboxIndexChange(this.comboBoxVesselClass, this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
public bool IsDeparture { get; set; }
public override void Initialize()
{
base.Initialize();
foreach (Message aMessage in this.Messages)
{
if (IsDeparture)
{
if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZD) { this._hazMessage = aMessage; this.ControlMessages.Add(aMessage); }
}
else
{
if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZA)
{
this._hazMessage = aMessage;
this.ControlMessages.Add(aMessage);
}
if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZD)
{
if(aMessage != null)
{
if (aMessage.Elements.Count > 0)
this.hazd = aMessage.Elements[0] as HAZ;
if (this.hazd == null)
{
this.hazd = new HAZ();
this.hazd.MessageCore = this.Core;
this.hazd.MessageHeader = aMessage;
aMessage.Elements.Add(this.hazd);
SublistElementChanged(Message.NotificationClass.HAZD);
}
this.ControlMessages.Add(aMessage);
}
}
}
}
#region HAZ
if (this._hazMessage == null)
{
this._hazMessage = this.Core.CreateMessage(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.Messages.Add(this._hazMessage);
}
HAZ haz = null;
if (this._hazMessage.Elements.Count > 0)
haz = this._hazMessage.Elements[0] as HAZ;
if (haz == null)
{
haz = new HAZ();
haz.MessageCore = this.Core;
haz.MessageHeader = this._hazMessage;
_hazMessage.Elements.Add(haz);
}
this.haz = haz;
this.comboBoxVesselClass.ItemsSource = GlobalStructures.vesselClasses;
this.groupBoxHAZ.DataContext = haz;
this.dataGridIMDGItems.Initialize();
this.dataGridIMDGItems.ItemsSource = this.haz.IMDGPositions;
this.dataGridIMDGItems.CreateRequested += DataGridIMDGItems_CreateRequested;
this.dataGridIMDGItems.AddingNewItem += DataGridIMDGItems_AddingNewItem;
this.dataGridIMDGItems.EditRequested += DataGridIMDGItems_EditRequested;
this.dataGridIMDGItems.DeleteRequested += DataGridIMDGItems_DeleteRequested;
this.dataGridIBCItems.Initialize();
this.dataGridIBCItems.ItemsSource = this.haz.IBCPositions;
this.dataGridIBCItems.CreateRequested += DataGridIBCItems_CreateRequested;
this.dataGridIBCItems.AddingNewItem += DataGridIBCItems_AddingNewItem;
this.dataGridIBCItems.EditRequested += DataGridIBCItems_EditRequested;
this.dataGridIBCItems.DeleteRequested += DataGridIBCItems_DeleteRequested;
this.dataGridIGCItems.Initialize();
this.dataGridIGCItems.ItemsSource = this.haz.IGCPositions;
this.dataGridIGCItems.CreateRequested += DataGridIGCItems_CreateRequested;
this.dataGridIGCItems.AddingNewItem += DataGridIGCItems_AddingNewItem;
this.dataGridIGCItems.EditRequested += DataGridIGCItems_EditRequested;
this.dataGridIGCItems.DeleteRequested += DataGridIGCItems_DeleteRequested;
this.dataGridIMSBCItems.Initialize();
this.dataGridIMSBCItems.ItemsSource = this.haz.IMSBCPositions;
this.dataGridIMSBCItems.CreateRequested += DataGridIMSBCItems_CreateRequested;
this.dataGridIMSBCItems.AddingNewItem += DataGridIMSBCItems_AddingNewItem;
this.dataGridIMSBCItems.EditRequested += DataGridIMSBCItems_EditRequested;
this.dataGridIMSBCItems.DeleteRequested += DataGridIMSBCItems_DeleteRequested;
this.dataGridMARPOLItems.Initialize();
this.dataGridMARPOLItems.ItemsSource = this.haz.MARPOLPositions;
this.dataGridMARPOLItems.CreateRequested += DataGridMARPOLItems_CreateRequested;
this.dataGridMARPOLItems.AddingNewItem += DataGridMARPOLItems_AddingNewItem;
this.dataGridMARPOLItems.EditRequested += DataGridMARPOLItems_EditRequested;
this.dataGridMARPOLItems.DeleteRequested += DataGridMARPOLItems_DeleteRequested;
#endregion
if (!this.haz.IsDeparture)
{
#region Extra Menüpunkte um Positionen nach HAZD zu kopieren
this.dataGridIBCItems.ContextMenu.Items.Add(new Separator());
MenuItem copyIBCItem = new MenuItem();
copyIBCItem.Header = Properties.Resources.textCopyToHAZD;
copyIBCItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
copyIBCItem.Click += new RoutedEventHandler(this.copyIBC);
this.dataGridIBCItems.ContextMenu.Items.Add(copyIBCItem);
this.dataGridIGCItems.ContextMenu.Items.Add(new Separator());
MenuItem copyItemIGC = new MenuItem();
copyItemIGC.Header = Properties.Resources.textCopyToHAZD;
copyItemIGC.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
copyItemIGC.Click += new RoutedEventHandler(this.copyIGC);
this.dataGridIGCItems.ContextMenu.Items.Add(copyItemIGC);
this.dataGridIMDGItems.ContextMenu.Items.Add(new Separator());
MenuItem copyItemIMDG = new MenuItem();
copyItemIMDG.Header = Properties.Resources.textCopyToHAZD;
copyItemIMDG.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
copyItemIMDG.Click += new RoutedEventHandler(this.copyIMDG);
this.dataGridIMDGItems.ContextMenu.Items.Add(copyItemIMDG);
this.dataGridIMSBCItems.ContextMenu.Items.Add(new Separator());
MenuItem copyItemIMSBC = new MenuItem();
copyItemIMSBC.Header = Properties.Resources.textCopyToHAZD;
copyItemIMSBC.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
copyItemIMSBC.Click += new RoutedEventHandler(this.copyIMSBC);
this.dataGridIMSBCItems.ContextMenu.Items.Add(copyItemIMSBC);
this.dataGridMARPOLItems.ContextMenu.Items.Add(new Separator());
MenuItem copyItemMARPOL = new MenuItem();
copyItemMARPOL.Header = Properties.Resources.textCopyToHAZD;
copyItemMARPOL.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/documents.png")) };
copyItemMARPOL.Click += new RoutedEventHandler(this.copyMARPOL);
this.dataGridMARPOLItems.ContextMenu.Items.Add(copyItemMARPOL);
#endregion
}
this._initialized = true;
}
#region Copy event handler
private void copyMARPOL(object sender, RoutedEventArgs e)
{
// aus dem aktuell selektierten MARPOL Element ein neues MARPOL Element machen und nach HAZD kopieren
if ((this.dataGridMARPOLItems.SelectedItems != null) && (this.dataGridMARPOLItems.SelectedItems.Count == 1))
{
MARPOL_Annex_I_Position selectedMARPOL = this.dataGridMARPOLItems.SelectedItems[0] as MARPOL_Annex_I_Position;
if (selectedMARPOL != null)
{
MARPOL_Annex_I_Position copyMARPOL = new MARPOL_Annex_I_Position();
copyMARPOL.MessageHeader = this.hazd.MessageHeader;
copyMARPOL.HAZ = this.hazd;
copyMARPOL.CopyFromMARPOL(selectedMARPOL);
copyMARPOL.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.MARPOLPositions);
this.hazd.MARPOLPositions.Add(copyMARPOL);
this.SublistElementChanged(Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
}
}
}
private void copyIMSBC(object sender, RoutedEventArgs e)
{
// aus dem aktuell selektierten IMBSC Element ein neues IMBSC Element machen und nach HAZD kopieren
if ((this.dataGridIMSBCItems.SelectedItems != null) && (this.dataGridIMSBCItems.SelectedItems.Count == 1))
{
IMSBCPosition selectedIMSBC = this.dataGridIMSBCItems.SelectedItems[0] as IMSBCPosition;
if (selectedIMSBC != null)
{
IMSBCPosition copyIMSBC = new IMSBCPosition();
copyIMSBC.MessageHeader = this.hazd.MessageHeader;
copyIMSBC.HAZ = this.hazd;
copyIMSBC.CopyFromIMSBC(selectedIMSBC);
copyIMSBC.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IMSBCPositions);
this.hazd.IMSBCPositions.Add(copyIMSBC);
this.SublistElementChanged(Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
}
}
}
private void copyIMDG(object sender, RoutedEventArgs e)
{
// aus dem aktuell selektierten IMDG Element ein neues IMDG Element machen und nach HAZD kopieren
if ((this.dataGridIMDGItems.SelectedItems != null) && (this.dataGridIMDGItems.SelectedItems.Count == 1))
{
IMDGPosition selectedIMDG = this.dataGridIMDGItems.SelectedItems[0] as IMDGPosition;
if (selectedIMDG != null)
{
IMDGPosition copyIMDG = new IMDGPosition();
copyIMDG.MessageHeader = this.hazd.MessageHeader;
copyIMDG.HAZ = this.hazd;
copyIMDG.CopyFromIMDG(selectedIMDG);
copyIMDG.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IMDGPositions);
this.hazd.IMDGPositions.Add(copyIMDG);
this.SublistElementChanged(Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
}
}
}
private void copyIGC(object sender, RoutedEventArgs e)
{
// aus dem aktuell selektierten IGC Element ein neues IGC Element machen und nach HAZD kopieren
if ((this.dataGridIGCItems.SelectedItems != null) && (this.dataGridIGCItems.SelectedItems.Count == 1))
{
IGCPosition selectedIGC = this.dataGridIGCItems.SelectedItems[0] as IGCPosition;
if (selectedIGC != null)
{
IGCPosition copyIGC = new IGCPosition();
copyIGC.MessageHeader = this.hazd.MessageHeader;
copyIGC.HAZ = this.hazd;
copyIGC.CopyFromIGC(selectedIGC);
copyIGC.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IGCPositions);
this.hazd.IGCPositions.Add(copyIGC);
this.SublistElementChanged(Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
}
}
}
private void copyIBC(object sender, RoutedEventArgs e)
{
// aus dem aktuell selektierten IBC Element ein neues IBC Element machen und nach HAZD kopieren
if ((this.dataGridIBCItems.SelectedItems != null) && (this.dataGridIBCItems.SelectedItems.Count == 1))
{
IBCPosition selectedIBC = this.dataGridIBCItems.SelectedItems[0] as IBCPosition;
if (selectedIBC != null)
{
IBCPosition copyIBC = new IBCPosition();
copyIBC.MessageHeader = this.hazd.MessageHeader;
copyIBC.HAZ = this.hazd;
copyIBC.CopyFromIBC(selectedIBC);
copyIBC.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IBCPositions);
this.hazd.IBCPositions.Add(copyIBC);
this.SublistElementChanged(Message.NotificationClass.HAZD);
this.OnControlCacheReset(Properties.Resources.textDGDeparture);
}
}
}
#endregion
#region MARPOL datagrid handlers
private void DataGridMARPOLItems_DeleteRequested(DatabaseEntity obj)
{
MARPOL_Annex_I_Position marpol = obj as MARPOL_Annex_I_Position;
if (marpol != null)
{
// are you sure dialog is in base class
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(marpol);
this.haz.MARPOLPositions.Remove(marpol);
DatabaseEntity.ResetIdentifiers(haz.MARPOLPositions);
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.dataGridMARPOLItems.Items.Refresh();
}
}
private void DataGridMARPOLItems_EditRequested(DatabaseEntity obj)
{
MARPOL_Annex_I_Position marpol = obj as MARPOL_Annex_I_Position;
if (marpol != null)
{
EditMarpolDialog eld = new EditMarpolDialog();
eld.MARPOL = marpol;
eld.AddClicked += () =>
{
eld.CopyValuesToEntity();
haz.MARPOLPositions.Add(eld.MARPOL);
this.dataGridMARPOLItems.Items.Refresh();
eld.MARPOL = new MARPOL_Annex_I_Position();
eld.MARPOL.Identifier = DatabaseEntity.GetNewIdentifier(haz.MARPOLPositions);
eld.MARPOL.HAZ = this.haz;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (eld.ShowDialog() ?? false)
{
this.dataGridMARPOLItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
}
private void DataGridMARPOLItems_AddingNewItem(object sender, System.Windows.Controls.AddingNewItemEventArgs e)
{
this.DataGridMARPOLItems_CreateRequested();
}
private void DataGridMARPOLItems_CreateRequested()
{
MARPOL_Annex_I_Position marpol = new MARPOL_Annex_I_Position();
marpol.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.MARPOLPositions);
EditMarpolDialog ebd = new EditMarpolDialog();
ebd.MARPOL = marpol;
ebd.AddClicked += () =>
{
ebd.CopyValuesToEntity();
this.haz.MARPOLPositions.Add(ebd.MARPOL);
ebd.MARPOL.HAZ = this.haz;
this.dataGridMARPOLItems.Items.Refresh();
ebd.MARPOL = new MARPOL_Annex_I_Position();
ebd.MARPOL.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.MARPOLPositions);
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (ebd.ShowDialog() ?? false)
{
marpol.HAZ = haz;
haz.MARPOLPositions.Add(marpol);
this.dataGridMARPOLItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
#endregion
#region IMSBC datagrid handlers
private void DataGridIMSBCItems_DeleteRequested(DatabaseEntity obj)
{
IMSBCPosition imsbc = obj as IMSBCPosition;
if (imsbc != null)
{
// are you sure dialog is in base class
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(imsbc);
this.haz.IMSBCPositions.Remove(imsbc);
DatabaseEntity.ResetIdentifiers(haz.IMSBCPositions);
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.dataGridIMSBCItems.Items.Refresh();
}
}
private void DataGridIMSBCItems_EditRequested(DatabaseEntity obj)
{
IMSBCPosition imsbc = obj as IMSBCPosition;
if (imsbc != null)
{
EditIMSBCDialog eld = new EditIMSBCDialog();
eld.IMSBC = imsbc;
eld.AddClicked += () =>
{
eld.CopyValuesToEntity();
haz.IMSBCPositions.Add(eld.IMSBC);
this.dataGridIMSBCItems.Items.Refresh();
eld.IMSBC = new IMSBCPosition();
eld.IMSBC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMSBCPositions);
eld.IMSBC.HAZ = this.haz;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (eld.ShowDialog() ?? false)
{
this.dataGridIMSBCItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
}
private void DataGridIMSBCItems_AddingNewItem(object sender, System.Windows.Controls.AddingNewItemEventArgs e)
{
this.DataGridIMSBCItems_CreateRequested();
}
private void DataGridIMSBCItems_CreateRequested()
{
IMSBCPosition imsbc = new IMSBCPosition();
imsbc.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMSBCPositions);
EditIMSBCDialog ebd = new EditIMSBCDialog();
ebd.IMSBC = imsbc;
ebd.AddClicked += () =>
{
ebd.CopyValuesToEntity();
this.haz.IMSBCPositions.Add(ebd.IMSBC);
ebd.IMSBC.HAZ = this.haz;
this.dataGridIMSBCItems.Items.Refresh();
ebd.IMSBC = new IMSBCPosition();
ebd.IMSBC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMSBCPositions);
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (ebd.ShowDialog() ?? false)
{
imsbc.HAZ = haz;
haz.IMSBCPositions.Add(imsbc);
this.dataGridIMSBCItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
#endregion
#region IGC datagrid handlers
private void DataGridIGCItems_DeleteRequested(DatabaseEntity obj)
{
IGCPosition igc = obj as IGCPosition;
if (igc != null)
{
// are you sure dialog is in base class
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(igc);
this.haz.IGCPositions.Remove(igc);
DatabaseEntity.ResetIdentifiers(haz.IGCPositions);
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.dataGridIGCItems.Items.Refresh();
}
}
private void DataGridIGCItems_EditRequested(DatabaseEntity obj)
{
IGCPosition igc = obj as IGCPosition;
if (igc != null)
{
EditIGCDialog eld = new EditIGCDialog();
eld.IGC = igc;
eld.AddClicked += () =>
{
eld.CopyValuesToEntity();
haz.IGCPositions.Add(eld.IGC);
this.dataGridIGCItems.Items.Refresh();
eld.IGC = new IGCPosition();
eld.IGC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IGCPositions);
eld.IGC.HAZ = this.haz;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (eld.ShowDialog() ?? false)
{
this.dataGridIGCItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
}
private void DataGridIGCItems_AddingNewItem(object sender, System.Windows.Controls.AddingNewItemEventArgs e)
{
this.DataGridIGCItems_CreateRequested();
}
private void DataGridIGCItems_CreateRequested()
{
IGCPosition igc = new IGCPosition();
igc.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IGCPositions);
EditIGCDialog ebd = new EditIGCDialog();
ebd.IGC = igc;
ebd.AddClicked += () =>
{
ebd.CopyValuesToEntity();
this.haz.IGCPositions.Add(ebd.IGC);
ebd.IGC.HAZ = this.haz;
this.dataGridIGCItems.Items.Refresh();
ebd.IGC = new IGCPosition();
ebd.IGC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IGCPositions);
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (ebd.ShowDialog() ?? false)
{
igc.HAZ = haz;
haz.IGCPositions.Add(igc);
this.dataGridIGCItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
#endregion
#region IBC datagrid handlers
private void DataGridIBCItems_DeleteRequested(DatabaseEntity obj)
{
IBCPosition ibc = obj as IBCPosition;
if (ibc != null)
{
// are you sure dialog is in base class
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(ibc);
this.haz.IBCPositions.Remove(ibc);
DatabaseEntity.ResetIdentifiers(haz.IBCPositions);
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.dataGridIBCItems.Items.Refresh();
}
}
private void DataGridIBCItems_EditRequested(DatabaseEntity obj)
{
IBCPosition ibc = obj as IBCPosition;
if (ibc != null)
{
EditIBCDialog eld = new EditIBCDialog();
eld.IBC = ibc;
eld.AddClicked += () =>
{
eld.CopyValuesToEntity();
haz.IBCPositions.Add(eld.IBC);
this.dataGridIBCItems.Items.Refresh();
eld.IBC = new IBCPosition();
eld.IBC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IBCPositions);
eld.IBC.HAZ = this.haz;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (eld.ShowDialog() ?? false)
{
this.dataGridIBCItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
}
private void DataGridIBCItems_AddingNewItem(object sender, System.Windows.Controls.AddingNewItemEventArgs e)
{
this.DataGridIBCItems_CreateRequested();
}
private void DataGridIBCItems_CreateRequested()
{
IBCPosition ibc = new IBCPosition();
ibc.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IBCPositions);
EditIBCDialog ebd = new EditIBCDialog();
ebd.IBC = ibc;
ebd.AddClicked += () =>
{
ebd.CopyValuesToEntity();
this.haz.IBCPositions.Add(ebd.IBC);
ebd.IBC.HAZ = this.haz;
this.dataGridIBCItems.Items.Refresh();
ebd.IBC = new IBCPosition();
ebd.IBC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IBCPositions);
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (ebd.ShowDialog() ?? false)
{
ibc.HAZ = haz;
haz.IBCPositions.Add(ibc);
this.dataGridIBCItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
#endregion
#region IMDG datagrid handlers
private void DataGridIMDGItems_DeleteRequested(DatabaseEntity obj)
{
IMDGPosition imdg = obj as IMDGPosition;
if (imdg != null)
{
// are you sure dialog is in base class
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(imdg);
this.haz.IMDGPositions.Remove(imdg);
DatabaseEntity.ResetIdentifiers(haz.IMDGPositions);
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
this.dataGridIMDGItems.Items.Refresh();
}
}
private void DataGridIMDGItems_EditRequested(DatabaseEntity obj)
{
IMDGPosition imdg = obj as IMDGPosition;
if (imdg != null)
{
EditIMDGDialog eld = new EditIMDGDialog();
eld.IMDG = imdg;
eld.AddClicked += () =>
{
eld.CopyValuesToEntity();
haz.IMDGPositions.Add(eld.IMDG);
this.dataGridIMDGItems.Items.Refresh();
eld.IMDG = new IMDGPosition();
eld.IMDG.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMDGPositions);
eld.IMDG.HAZ = this.haz;
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (eld.ShowDialog() ?? false)
{
this.dataGridIMDGItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
}
private void DataGridIMDGItems_AddingNewItem(object sender, System.Windows.Controls.AddingNewItemEventArgs e)
{
this.DataGridIMDGItems_CreateRequested();
}
private void DataGridIMDGItems_CreateRequested()
{
IMDGPosition imdg = new IMDGPosition();
imdg.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMDGPositions);
EditIMDGDialog ebd = new EditIMDGDialog();
ebd.IMDG = imdg;
ebd.AddClicked += () =>
{
ebd.CopyValuesToEntity();
this.haz.IMDGPositions.Add(ebd.IMDG);
ebd.IMDG.HAZ = this.haz;
this.dataGridIMDGItems.Items.Refresh();
ebd.IMDG = new IMDGPosition();
ebd.IMDG.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMDGPositions);
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
};
if (ebd.ShowDialog() ?? false)
{
imdg.HAZ = haz;
haz.IMDGPositions.Add(imdg);
this.dataGridIMDGItems.Items.Refresh();
this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA);
}
}
#endregion
#region Highlighting
public override void HighlightErrorMessageContainer()
{
if (this._hazMessage.HasErrors)
{
HighlightService.HighlightControl(this.groupBoxHAZ, HighlightService.HighlightStyle.ERROR, this._hazMessage);
}
}
public override void HighlightViolationMessageContainer()
{
if (this._hazMessage.HasViolations)
HighlightService.HighlightControl(this.groupBoxHAZ, HighlightService.HighlightStyle.VIOLATION, this._hazMessage);
}
#endregion
}
}