diff --git a/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs b/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs index a22d3a9d..117b8c2b 100644 --- a/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs +++ b/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs @@ -22,9 +22,11 @@ namespace ENI2.DetailViewControls 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 + private Message _hazaMessage; + private Message _hazdMessage; + + private HAZ haza; + private HAZ hazd; public DangerousGoodsDetailControl() { @@ -40,6 +42,9 @@ namespace ENI2.DetailViewControls this.RegisterComboboxIndexChange(this.comboBoxVesselClass, this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); } + /// + /// Flag if this control is used for arrival or departure + /// public bool IsDeparture { get; set; } public override void Initialize() @@ -48,76 +53,60 @@ namespace ENI2.DetailViewControls foreach (Message aMessage in this.Messages) { - if (IsDeparture) + + if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZD) { - if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZD) { this._hazMessage = aMessage; this.ControlMessages.Add(aMessage); } - } - else - { - if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZA) + this._hazdMessage = aMessage; + this.ControlMessages.Add(aMessage); + if (aMessage.Elements.Count > 0) + this.hazd = aMessage.Elements[0] as HAZ; + if (this.hazd == null) { - 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; - this.hazd.IsDeparture = true; - aMessage.Elements.Add(this.hazd); - SublistElementChanged(Message.NotificationClass.HAZD); - } - this.ControlMessages.Add(aMessage); - } + this.hazd = new HAZ(); + this.hazd.MessageCore = this.Core; + this.hazd.MessageHeader = aMessage; + this.hazd.IsDeparture = true; + aMessage.Elements.Add(this.hazd); + SublistElementChanged(Message.NotificationClass.HAZD); } } + if (aMessage.MessageNotificationClass == Message.NotificationClass.HAZA) + { + this._hazaMessage = aMessage; + this.ControlMessages.Add(aMessage); + if (aMessage.Elements.Count > 0) + this.haza = aMessage.Elements[0] as HAZ; + if (this.haza == null) + { + this.haza = new HAZ(); + this.haza.MessageCore = this.Core; + this.haza.MessageHeader = aMessage; + this.haza.IsDeparture = true; + aMessage.Elements.Add(this.haza); + SublistElementChanged(Message.NotificationClass.HAZA); + } + } + this.textBlockMessageClass.Text = IsDeparture ? "HAZD" : "HAZA"; } - #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; - haz.IsDeparture = this.IsDeparture; - _hazMessage.Elements.Add(haz); - } - - this.haz = haz; + #region HAZ this.comboBoxVesselClass.ItemsSource = GlobalStructures.vesselClasses; - this.groupBoxHAZ.DataContext = haz; + this.groupBoxHAZ.DataContext = this.IsDeparture ? hazd : haza; - this.dataGridIMDGItems.Initialize(); - this.dataGridIMDGItems.ItemsSource = this.haz.IMDGPositions; + this.dataGridIMDGItems.Initialize(); + this.dataGridIMDGItems.ItemsSource = this.IsDeparture ? this.hazd.IMDGPositions : this.haza.IMDGPositions; CollectionView myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(dataGridIMDGItems.Items); ((INotifyCollectionChanged)myCollectionView).CollectionChanged += DangerousGoodsDetailControl_CollectionChanged; this.dataGridIMDGItems.CreateRequested += DataGridIMDGItems_CreateRequested; this.dataGridIMDGItems.AddingNewItem += DataGridIMDGItems_AddingNewItem; this.dataGridIMDGItems.EditRequested += DataGridIMDGItems_EditRequested; - this.dataGridIMDGItems.DeleteRequested += DataGridIMDGItems_DeleteRequested; + this.dataGridIMDGItems.DeleteRequested += DataGridIMDGItems_DeleteRequested; this.dataGridIBCItems.Initialize(); - this.dataGridIBCItems.ItemsSource = this.haz.IBCPositions; + this.dataGridIBCItems.ItemsSource = this.IsDeparture ? this.hazd.IBCPositions : this.haza.IBCPositions; myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(dataGridIBCItems.Items); ((INotifyCollectionChanged)myCollectionView).CollectionChanged += DangerousGoodsDetailControl_CollectionChanged; this.dataGridIBCItems.CreateRequested += DataGridIBCItems_CreateRequested; @@ -126,7 +115,7 @@ namespace ENI2.DetailViewControls this.dataGridIBCItems.DeleteRequested += DataGridIBCItems_DeleteRequested; this.dataGridIGCItems.Initialize(); - this.dataGridIGCItems.ItemsSource = this.haz.IGCPositions; + this.dataGridIGCItems.ItemsSource = this.IsDeparture ? this.hazd.IGCPositions : this.haza.IGCPositions; myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(dataGridIGCItems.Items); ((INotifyCollectionChanged)myCollectionView).CollectionChanged += DangerousGoodsDetailControl_CollectionChanged; this.dataGridIGCItems.CreateRequested += DataGridIGCItems_CreateRequested; @@ -135,7 +124,7 @@ namespace ENI2.DetailViewControls this.dataGridIGCItems.DeleteRequested += DataGridIGCItems_DeleteRequested; this.dataGridIMSBCItems.Initialize(); - this.dataGridIMSBCItems.ItemsSource = this.haz.IMSBCPositions; + this.dataGridIMSBCItems.ItemsSource = this.IsDeparture ? this.hazd.IMSBCPositions : this.haza.IMSBCPositions; myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(dataGridIMSBCItems.Items); ((INotifyCollectionChanged)myCollectionView).CollectionChanged += DangerousGoodsDetailControl_CollectionChanged; this.dataGridIMSBCItems.CreateRequested += DataGridIMSBCItems_CreateRequested; @@ -144,7 +133,7 @@ namespace ENI2.DetailViewControls this.dataGridIMSBCItems.DeleteRequested += DataGridIMSBCItems_DeleteRequested; this.dataGridMARPOLItems.Initialize(); - this.dataGridMARPOLItems.ItemsSource = this.haz.MARPOLPositions; + this.dataGridMARPOLItems.ItemsSource = this.IsDeparture ? this.hazd.MARPOLPositions : this.haza.MARPOLPositions; myCollectionView = (CollectionView)CollectionViewSource.GetDefaultView(dataGridMARPOLItems.Items); ((INotifyCollectionChanged)myCollectionView).CollectionChanged += DangerousGoodsDetailControl_CollectionChanged; this.dataGridMARPOLItems.CreateRequested += DataGridMARPOLItems_CreateRequested; @@ -156,51 +145,47 @@ namespace ENI2.DetailViewControls #endregion - if (!this.haz.IsDeparture) - { - #region Extra Menüpunkte um Positionen nach HAZD zu kopieren + #region Extra Menüpunkte um Positionen zwischen HAZA / 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.dataGridIBCItems.ContextMenu.Items.Add(new Separator()); + MenuItem copyIBCItem = new MenuItem(); + copyIBCItem.Header = string.Format(Properties.Resources.textCopyTo, this.IsDeparture ? "HAZA" : "HAZD"); + 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.dataGridIGCItems.ContextMenu.Items.Add(new Separator()); + MenuItem copyItemIGC = new MenuItem(); + copyItemIGC.Header = string.Format(Properties.Resources.textCopyTo, this.IsDeparture ? "HAZA" : "HAZD"); + 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.dataGridIMDGItems.ContextMenu.Items.Add(new Separator()); + MenuItem copyItemIMDG = new MenuItem(); + copyItemIMDG.Header = string.Format(Properties.Resources.textCopyTo, this.IsDeparture ? "HAZA" : "HAZD"); + 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.dataGridIMSBCItems.ContextMenu.Items.Add(new Separator()); + MenuItem copyItemIMSBC = new MenuItem(); + copyItemIMSBC.Header = string.Format(Properties.Resources.textCopyTo, this.IsDeparture ? "HAZA" : "HAZD"); + 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); + this.dataGridMARPOLItems.ContextMenu.Items.Add(new Separator()); + MenuItem copyItemMARPOL = new MenuItem(); + copyItemMARPOL.Header = string.Format(Properties.Resources.textCopyTo, this.IsDeparture ? "HAZA" : "HAZD"); + 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 - - } + #endregion this._initialized = true; - } + } #region SetEnabled @@ -226,17 +211,18 @@ namespace ENI2.DetailViewControls // aus dem aktuell selektierten MARPOL Element ein neues MARPOL Element machen und nach HAZD kopieren if (this.dataGridMARPOLItems.SelectedItems != null) { + HAZ target_haz = this.IsDeparture ? this.haza : this.hazd; foreach (MARPOL_Annex_I_Position selectedMARPOL in this.dataGridMARPOLItems.SelectedItems) { MARPOL_Annex_I_Position copyMARPOL = new MARPOL_Annex_I_Position(); - copyMARPOL.MessageHeader = this.hazd.MessageHeader; - copyMARPOL.HAZ = this.hazd; + copyMARPOL.MessageHeader = target_haz.MessageHeader; + copyMARPOL.HAZ = target_haz; copyMARPOL.CopyFromMARPOL(selectedMARPOL); - copyMARPOL.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.MARPOLPositions, "MARPOL-"); - this.hazd.MARPOLPositions.Add(copyMARPOL); - this.SublistElementChanged(Message.NotificationClass.HAZD); + copyMARPOL.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.MARPOLPositions, "MARPOL-"); + target_haz.MARPOLPositions.Add(copyMARPOL); + this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD); this.OnControlCacheReset(Properties.Resources.textDGDeparture); - this.SetHAZGlobalFlags(this.hazd); + this.SetHAZGlobalFlags(); } } } @@ -246,17 +232,18 @@ namespace ENI2.DetailViewControls // aus dem aktuell selektierten IMBSC Element ein neues IMBSC Element machen und nach HAZD kopieren if (this.dataGridIMSBCItems.SelectedItems != null) { + HAZ target_haz = this.IsDeparture ? this.haza : this.hazd; foreach (IMSBCPosition selectedIMSBC in this.dataGridIMSBCItems.SelectedItems) { IMSBCPosition copyIMSBC = new IMSBCPosition(); - copyIMSBC.MessageHeader = this.hazd.MessageHeader; - copyIMSBC.HAZ = this.hazd; + copyIMSBC.MessageHeader = target_haz.MessageHeader; + copyIMSBC.HAZ = target_haz; copyIMSBC.CopyFromIMSBC(selectedIMSBC); - copyIMSBC.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IMSBCPositions, "IMSBC-"); - this.hazd.IMSBCPositions.Add(copyIMSBC); - this.SublistElementChanged(Message.NotificationClass.HAZD); + copyIMSBC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IMSBCPositions, "IMSBC-"); + target_haz.IMSBCPositions.Add(copyIMSBC); + this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD); this.OnControlCacheReset(Properties.Resources.textDGDeparture); - this.SetHAZGlobalFlags(this.hazd); + this.SetHAZGlobalFlags(); } } } @@ -266,17 +253,18 @@ namespace ENI2.DetailViewControls // aus dem aktuell selektierten IMDG Element ein neues IMDG Element machen und nach HAZD kopieren if (this.dataGridIMDGItems.SelectedItems != null) { + HAZ target_haz = this.IsDeparture ? this.haza : this.hazd; foreach (IMDGPosition selectedIMDG in this.dataGridIMDGItems.SelectedItems) { IMDGPosition copyIMDG = new IMDGPosition(); - copyIMDG.MessageHeader = this.hazd.MessageHeader; - copyIMDG.HAZ = this.hazd; + copyIMDG.MessageHeader = target_haz.MessageHeader; + copyIMDG.HAZ = target_haz; copyIMDG.CopyFromIMDG(selectedIMDG); - copyIMDG.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IMDGPositions, "IMDG-"); - this.hazd.IMDGPositions.Add(copyIMDG); - this.SublistElementChanged(Message.NotificationClass.HAZD); + copyIMDG.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IMDGPositions, "IMDG-"); + target_haz.IMDGPositions.Add(copyIMDG); + this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD); this.OnControlCacheReset(Properties.Resources.textDGDeparture); - this.SetHAZGlobalFlags(this.hazd); + this.SetHAZGlobalFlags(); } } } @@ -286,17 +274,18 @@ namespace ENI2.DetailViewControls // aus dem aktuell selektierten IGC Element ein neues IGC Element machen und nach HAZD kopieren if (this.dataGridIGCItems.SelectedItems != null) { + HAZ target_haz = this.IsDeparture ? this.haza : this.hazd; foreach (IGCPosition selectedIGC in this.dataGridIGCItems.SelectedItems) { IGCPosition copyIGC = new IGCPosition(); - copyIGC.MessageHeader = this.hazd.MessageHeader; - copyIGC.HAZ = this.hazd; + copyIGC.MessageHeader = target_haz.MessageHeader; + copyIGC.HAZ = target_haz; copyIGC.CopyFromIGC(selectedIGC); - copyIGC.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IGCPositions, "IGC-"); - this.hazd.IGCPositions.Add(copyIGC); - this.SublistElementChanged(Message.NotificationClass.HAZD); + copyIGC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IGCPositions, "IGC-"); + target_haz.IGCPositions.Add(copyIGC); + this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD); this.OnControlCacheReset(Properties.Resources.textDGDeparture); - this.SetHAZGlobalFlags(this.hazd); + this.SetHAZGlobalFlags(); } } } @@ -306,19 +295,20 @@ namespace ENI2.DetailViewControls // aus dem aktuell selektierten IBC Element ein neues IBC Element machen und nach HAZD kopieren if (this.dataGridIBCItems.SelectedItems != null) { + HAZ target_haz = this.IsDeparture ? this.haza : this.hazd; foreach (IBCPosition selectedIBC in this.dataGridIBCItems.SelectedItems) { if (selectedIBC != null) { IBCPosition copyIBC = new IBCPosition(); - copyIBC.MessageHeader = this.hazd.MessageHeader; - copyIBC.HAZ = this.hazd; + copyIBC.MessageHeader = target_haz.MessageHeader; + copyIBC.HAZ = target_haz; copyIBC.CopyFromIBC(selectedIBC); - copyIBC.Identifier = DatabaseEntity.GetNewIdentifier(this.hazd.IBCPositions, "IBC-"); - this.hazd.IBCPositions.Add(copyIBC); - this.SublistElementChanged(Message.NotificationClass.HAZD); + copyIBC.Identifier = DatabaseEntity.GetNewIdentifier(target_haz.IBCPositions, "IBC-"); + target_haz.IBCPositions.Add(copyIBC); + this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZA : Message.NotificationClass.HAZD); this.OnControlCacheReset(Properties.Resources.textDGDeparture); - this.SetHAZGlobalFlags(this.hazd); + this.SetHAZGlobalFlags(); } } } @@ -329,22 +319,22 @@ namespace ENI2.DetailViewControls /// /// Beim Hinzufügen der allerersten Gefahrgutposition sollen die Flags vorbelegt werden /// - void SetHAZGlobalFlags(HAZ theHAZ) + void SetHAZGlobalFlags() { - int totalCount = theHAZ.MARPOLPositions.Count + theHAZ.IMDGPositions.Count + theHAZ.IGCPositions.Count + theHAZ.IBCPositions.Count + theHAZ.IMSBCPositions.Count; + HAZ haz = this.IsDeparture ? this.hazd : this.haza; + int totalCount = haz.MARPOLPositions.Count + haz.IMDGPositions.Count + haz.IGCPositions.Count + haz.IBCPositions.Count + haz.IMSBCPositions.Count; if(totalCount == 1) { - if (theHAZ == this.haz) + if (!this.IsDeparture) { if (!(this.checkBoxDangerousGoodsOnBoard.IsChecked ?? false)) this.checkBoxDangerousGoodsOnBoard.IsChecked = true; - // if (!(this.checkBoxDGManifestOnBoard.IsChecked ?? false)) this.checkBoxDGManifestOnBoard.IsChecked = true; if (this.checkBoxMoUBaltic.IsChecked ?? true) this.checkBoxMoUBaltic.IsChecked = false; } else { - theHAZ.NoDPGOnBoardOnArrival = false; + haz.NoDPGOnBoardOnArrival = false; // theHAZ.DPGManifestOnBoardOnArrival = true; - theHAZ.MOUBaltic = false; + haz.MOUBaltic = false; } } } @@ -354,11 +344,12 @@ namespace ENI2.DetailViewControls private void DataGridMARPOLItems_DeleteRequested(DatabaseEntity obj) { MARPOL_Annex_I_Position marpol = obj as MARPOL_Annex_I_Position; + HAZ haz = this.IsDeparture ? hazd : haza; if (marpol != null) { // are you sure dialog is in base class DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(marpol); - this.haz.MARPOLPositions.Remove(marpol); + haz.MARPOLPositions.Remove(marpol); DatabaseEntity.ResetIdentifiers(new List(haz.MARPOLPositions)); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); this.dataGridMARPOLItems.Items.Refresh(); @@ -369,6 +360,7 @@ namespace ENI2.DetailViewControls { EditMarpolDialog eld = new EditMarpolDialog(); eld.MARPOL = obj as MARPOL_Annex_I_Position; + HAZ haz = this.IsDeparture ? hazd : haza; eld.AddClicked += () => { @@ -378,9 +370,9 @@ namespace ENI2.DetailViewControls this.dataGridMARPOLItems.Items.Refresh(); eld.MARPOL = new MARPOL_Annex_I_Position(); eld.Identifier = DatabaseEntity.GetNewIdentifier(haz.MARPOLPositions, "MARPOL-"); - eld.MARPOL.HAZ = this.haz; + eld.MARPOL.HAZ = haz; this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); }; if (eld.ShowDialog() ?? false) @@ -388,7 +380,7 @@ namespace ENI2.DetailViewControls if (!haz.MARPOLPositions.Contains(eld.MARPOL)) haz.MARPOLPositions.Add(eld.MARPOL); this.dataGridMARPOLItems.Items.Refresh(); - this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); + this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); } } @@ -400,10 +392,11 @@ namespace ENI2.DetailViewControls private void DataGridMARPOLItems_CreateRequested() { + HAZ haz = this.IsDeparture ? hazd : haza; EditMarpolDialog ebd = new EditMarpolDialog(); ebd.MARPOL = new MARPOL_Annex_I_Position(); - ebd.MARPOL.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.MARPOLPositions, "MARPOL-"); - ebd.MARPOL.HAZ = this.haz; + ebd.MARPOL.Identifier = DatabaseEntity.GetNewIdentifier(haz.MARPOLPositions, "MARPOL-"); + ebd.MARPOL.HAZ = haz; ebd.AddClicked += () => { @@ -412,10 +405,10 @@ namespace ENI2.DetailViewControls haz.MARPOLPositions.Add(ebd.MARPOL); this.dataGridMARPOLItems.Items.Refresh(); ebd.MARPOL = new MARPOL_Annex_I_Position(); - ebd.MARPOL.HAZ = this.haz; - ebd.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.MARPOLPositions, "MARPOL-"); + ebd.MARPOL.HAZ = haz; + ebd.Identifier = DatabaseEntity.GetNewIdentifier(haz.MARPOLPositions, "MARPOL-"); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); }; if (ebd.ShowDialog() ?? false) @@ -424,7 +417,7 @@ namespace ENI2.DetailViewControls haz.MARPOLPositions.Add(ebd.MARPOL); this.dataGridMARPOLItems.Items.Refresh(); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); } } @@ -434,12 +427,13 @@ namespace ENI2.DetailViewControls private void DataGridIMSBCItems_DeleteRequested(DatabaseEntity obj) { + HAZ haz = this.IsDeparture ? hazd : haza; 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); + haz.IMSBCPositions.Remove(imsbc); DatabaseEntity.ResetIdentifiers(new List(haz.IMSBCPositions)); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); this.dataGridIMSBCItems.Items.Refresh(); @@ -448,6 +442,7 @@ namespace ENI2.DetailViewControls private void DataGridIMSBCItems_EditRequested(DatabaseEntity obj) { + HAZ haz = this.IsDeparture ? hazd : haza; EditIMSBCDialog eld = new EditIMSBCDialog(); eld.IMSBC = obj as IMSBCPosition; @@ -458,10 +453,10 @@ namespace ENI2.DetailViewControls haz.IMSBCPositions.Add(eld.IMSBC); this.dataGridIMSBCItems.Items.Refresh(); eld.IMSBC = new IMSBCPosition(); - eld.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMSBCPositions, "IMSBC-"); - eld.IMSBC.HAZ = this.haz; + eld.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMSBCPositions, "IMSBC-"); + eld.IMSBC.HAZ = haz; this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); }; if (eld.ShowDialog() ?? false) @@ -480,22 +475,23 @@ namespace ENI2.DetailViewControls private void DataGridIMSBCItems_CreateRequested() { + HAZ haz = this.IsDeparture ? hazd : haza; EditIMSBCDialog ebd = new EditIMSBCDialog(); ebd.IMSBC = new IMSBCPosition(); - ebd.IMSBC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMSBCPositions, "IMSBC-"); - ebd.IMSBC.HAZ = this.haz; + ebd.IMSBC.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMSBCPositions, "IMSBC-"); + ebd.IMSBC.HAZ = haz; ebd.AddClicked += () => { ebd.CopyValuesToEntity(); if (!haz.IMSBCPositions.Contains(ebd.IMSBC)) - this.haz.IMSBCPositions.Add(ebd.IMSBC); + haz.IMSBCPositions.Add(ebd.IMSBC); this.dataGridIMSBCItems.Items.Refresh(); ebd.IMSBC = new IMSBCPosition(); - ebd.IMSBC.HAZ = this.haz; - ebd.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMSBCPositions, "IMSBC-"); + ebd.IMSBC.HAZ = haz; + ebd.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMSBCPositions, "IMSBC-"); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); }; if (ebd.ShowDialog() ?? false) @@ -504,7 +500,7 @@ namespace ENI2.DetailViewControls haz.IMSBCPositions.Add(ebd.IMSBC); this.dataGridIMSBCItems.Items.Refresh(); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); } } @@ -514,12 +510,13 @@ namespace ENI2.DetailViewControls private void DataGridIGCItems_DeleteRequested(DatabaseEntity obj) { + HAZ haz = this.IsDeparture ? hazd : haza; 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); + haz.IGCPositions.Remove(igc); DatabaseEntity.ResetIdentifiers(new List(haz.IGCPositions)); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); this.dataGridIGCItems.Items.Refresh(); @@ -528,6 +525,7 @@ namespace ENI2.DetailViewControls private void DataGridIGCItems_EditRequested(DatabaseEntity obj) { + HAZ haz = this.IsDeparture ? hazd : haza; EditIGCDialog eld = new EditIGCDialog(); eld.IGC = obj as IGCPosition; @@ -538,10 +536,10 @@ namespace ENI2.DetailViewControls haz.IGCPositions.Add(eld.IGC); this.dataGridIGCItems.Items.Refresh(); eld.IGC = new IGCPosition(); - eld.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IGCPositions, "IGC-"); - eld.IGC.HAZ = this.haz; + eld.Identifier = DatabaseEntity.GetNewIdentifier(haz.IGCPositions, "IGC-"); + eld.IGC.HAZ = haz; this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); }; if (eld.ShowDialog() ?? false) @@ -560,30 +558,31 @@ namespace ENI2.DetailViewControls private void DataGridIGCItems_CreateRequested() { + HAZ haz = this.IsDeparture ? hazd : haza; EditIGCDialog ebd = new EditIGCDialog(); - ebd.IGC = new IGCPosition(); - ebd.IGC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IGCPositions, "IGC-"); - ebd.IGC.HAZ = this.haz; + ebd.IGC = new IGCPosition(); + ebd.IGC.Identifier = DatabaseEntity.GetNewIdentifier(haz.IGCPositions, "IGC-"); + ebd.IGC.HAZ = haz; ebd.AddClicked += () => { ebd.CopyValuesToEntity(); - if(!this.haz.IGCPositions.Contains(ebd.IGC)) - this.haz.IGCPositions.Add(ebd.IGC); + if(!haz.IGCPositions.Contains(ebd.IGC)) + haz.IGCPositions.Add(ebd.IGC); this.dataGridIGCItems.Items.Refresh(); ebd.IGC = new IGCPosition(); - ebd.IGC.HAZ = this.haz; - ebd.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IGCPositions, "IGC-"); + ebd.IGC.HAZ = haz; + ebd.Identifier = DatabaseEntity.GetNewIdentifier(haz.IGCPositions, "IGC-"); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); }; if (ebd.ShowDialog() ?? false) { - if(!this.haz.IGCPositions.Contains(ebd.IGC)) + if(!haz.IGCPositions.Contains(ebd.IGC)) haz.IGCPositions.Add(ebd.IGC); this.dataGridIGCItems.Items.Refresh(); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); } } @@ -593,12 +592,13 @@ namespace ENI2.DetailViewControls private void DataGridIBCItems_DeleteRequested(DatabaseEntity obj) { + HAZ haz = this.IsDeparture ? hazd : haza; 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); + haz.IBCPositions.Remove(ibc); DatabaseEntity.ResetIdentifiers(new List(haz.IBCPositions)); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); this.dataGridIBCItems.Items.Refresh(); @@ -607,6 +607,7 @@ namespace ENI2.DetailViewControls private void DataGridIBCItems_EditRequested(DatabaseEntity obj) { + HAZ haz = this.IsDeparture ? hazd : haza; EditIBCDialog eld = new EditIBCDialog(); eld.IBC = obj as IBCPosition; @@ -617,10 +618,10 @@ namespace ENI2.DetailViewControls haz.IBCPositions.Add(eld.IBC); this.dataGridIBCItems.Items.Refresh(); eld.IBC = new IBCPosition(); - eld.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IBCPositions, "IBC-"); - eld.IBC.HAZ = this.haz; + eld.Identifier = DatabaseEntity.GetNewIdentifier(haz.IBCPositions, "IBC-"); + eld.IBC.HAZ = haz; this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); }; if (eld.ShowDialog() ?? false) @@ -639,30 +640,31 @@ namespace ENI2.DetailViewControls private void DataGridIBCItems_CreateRequested() { + HAZ haz = this.IsDeparture ? hazd : haza; EditIBCDialog ebd = new EditIBCDialog(); ebd.IBC = new IBCPosition(); - ebd.IBC.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IBCPositions, "IBC-"); - ebd.IBC.HAZ = this.haz; + ebd.IBC.Identifier = DatabaseEntity.GetNewIdentifier(haz.IBCPositions, "IBC-"); + ebd.IBC.HAZ = haz; ebd.AddClicked += () => { ebd.CopyValuesToEntity(); - if(!this.haz.IBCPositions.Contains(ebd.IBC)) - this.haz.IBCPositions.Add(ebd.IBC); + if(!haz.IBCPositions.Contains(ebd.IBC)) + haz.IBCPositions.Add(ebd.IBC); this.dataGridIBCItems.Items.Refresh(); ebd.IBC = new IBCPosition(); - ebd.IBC.HAZ = this.haz; - ebd.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IBCPositions, "IBC-"); + ebd.IBC.HAZ = haz; + ebd.Identifier = DatabaseEntity.GetNewIdentifier(haz.IBCPositions, "IBC-"); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); }; if (ebd.ShowDialog() ?? false) { - if(!this.haz.IBCPositions.Contains(ebd.IBC)) + if(!haz.IBCPositions.Contains(ebd.IBC)) haz.IBCPositions.Add(ebd.IBC); this.dataGridIBCItems.Items.Refresh(); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); } } @@ -672,12 +674,13 @@ namespace ENI2.DetailViewControls private void DataGridIMDGItems_DeleteRequested(DatabaseEntity obj) { + HAZ haz = this.IsDeparture ? hazd : haza; 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); + haz.IMDGPositions.Remove(imdg); DatabaseEntity.ResetIdentifiers(new List(haz.IMDGPositions)); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); this.dataGridIMDGItems.Items.Refresh(); @@ -686,6 +689,7 @@ namespace ENI2.DetailViewControls private void DataGridIMDGItems_EditRequested(DatabaseEntity obj) { + HAZ haz = this.IsDeparture ? hazd : haza; EditIMDGDialog eld = new EditIMDGDialog(); eld.IMDG = obj as IMDGPosition; @@ -696,8 +700,8 @@ namespace ENI2.DetailViewControls haz.IMDGPositions.Add(eld.IMDG); this.dataGridIMDGItems.Items.Refresh(); eld.IMDG = new IMDGPosition(); - eld.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMDGPositions, "IMDG-"); - eld.IMDG.HAZ = this.haz; + eld.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMDGPositions, "IMDG-"); + eld.IMDG.HAZ = haz; this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); }; @@ -707,7 +711,7 @@ namespace ENI2.DetailViewControls haz.IMDGPositions.Add(eld.IMDG); this.dataGridIMDGItems.Items.Refresh(); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); } } @@ -717,21 +721,22 @@ namespace ENI2.DetailViewControls } private void DataGridIMDGItems_CreateRequested() - { + { + HAZ haz = this.IsDeparture ? hazd : haza; EditIMDGDialog ebd = new EditIMDGDialog(); ebd.IMDG = new IMDGPosition(); - ebd.IMDG.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMDGPositions, "IMDG-"); - ebd.IMDG.HAZ = this.haz; + ebd.IMDG.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMDGPositions, "IMDG-"); + ebd.IMDG.HAZ = haz; ebd.AddClicked += () => { ebd.CopyValuesToEntity(); - if(!this.haz.IMDGPositions.Contains(ebd.IMDG)) - this.haz.IMDGPositions.Add(ebd.IMDG); + if(!haz.IMDGPositions.Contains(ebd.IMDG)) + haz.IMDGPositions.Add(ebd.IMDG); this.dataGridIMDGItems.Items.Refresh(); ebd.IMDG = new IMDGPosition(); - ebd.IMDG.HAZ = this.haz; - ebd.Identifier = DatabaseEntity.GetNewIdentifier(this.haz.IMDGPositions, "IMDG-"); + ebd.IMDG.HAZ = haz; + ebd.Identifier = DatabaseEntity.GetNewIdentifier(haz.IMDGPositions, "IMDG-"); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); }; @@ -741,7 +746,7 @@ namespace ENI2.DetailViewControls haz.IMDGPositions.Add(ebd.IMDG); this.dataGridIMDGItems.Items.Refresh(); this.SublistElementChanged(this.IsDeparture ? Message.NotificationClass.HAZD : Message.NotificationClass.HAZA); - this.SetHAZGlobalFlags(this.haz); + this.SetHAZGlobalFlags(); } } @@ -751,19 +756,23 @@ namespace ENI2.DetailViewControls public override void HighlightErrorMessageContainer() { - if (this._hazMessage.HasErrors) + Message hazMessage = this.IsDeparture ? _hazdMessage : _hazaMessage; + if (hazMessage.HasErrors) { - HighlightService.HighlightControl(this.groupBoxHAZ, HighlightService.HighlightStyle.ERROR, this._hazMessage); + HighlightService.HighlightControl(this.groupBoxHAZ, HighlightService.HighlightStyle.ERROR, hazMessage); } } public override void HighlightViolationMessageContainer() { - if (this._hazMessage.HasViolations) - HighlightService.HighlightControl(this.groupBoxHAZ, HighlightService.HighlightStyle.VIOLATION, this._hazMessage); + Message hazMessage = this.IsDeparture ? _hazdMessage : _hazaMessage; + if (hazMessage.HasViolations) + HighlightService.HighlightControl(this.groupBoxHAZ, HighlightService.HighlightStyle.VIOLATION, hazMessage); } - #endregion + #endregion + + #region handle tab header info private void DangerousGoodsDetailControl_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { @@ -772,31 +781,34 @@ namespace ENI2.DetailViewControls private void RefreshTabHeaders() { - if (this.haz.IMDGPositions.Count > 0) - this.tabIMDGItems.Header = string.Format("{0} ({1})", Properties.Resources.textIMDGItems, this.haz.IMDGPositions.Count); + HAZ haz = this.IsDeparture ? hazd : haza; + if (haz.IMDGPositions.Count > 0) + this.tabIMDGItems.Header = string.Format("{0} ({1})", Properties.Resources.textIMDGItems, haz.IMDGPositions.Count); else this.tabIMDGItems.Header = Properties.Resources.textIMDGItems; - if (this.haz.IBCPositions.Count > 0) - this.tabIBCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIBCItems, this.haz.IBCPositions.Count); + if (haz.IBCPositions.Count > 0) + this.tabIBCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIBCItems, haz.IBCPositions.Count); else this.tabIBCItems.Header = Properties.Resources.textIBCItems; - if (this.haz.IGCPositions.Count > 0) - this.tabIGCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIGCItems, this.haz.IGCPositions.Count); + if (haz.IGCPositions.Count > 0) + this.tabIGCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIGCItems, haz.IGCPositions.Count); else this.tabIGCItems.Header = Properties.Resources.textIGCItems; - if (this.haz.IMSBCPositions.Count > 0) - this.tabIMSBCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIMSBCItems, this.haz.IMSBCPositions.Count); + if (haz.IMSBCPositions.Count > 0) + this.tabIMSBCItems.Header = string.Format("{0} ({1})", Properties.Resources.textIMSBCItems, haz.IMSBCPositions.Count); else this.tabIMSBCItems.Header = Properties.Resources.textIMSBCItems; - if (this.haz.MARPOLPositions.Count > 0) - this.tabMarpolItems.Header = string.Format("{0} ({1})", Properties.Resources.textMARPOLItems, this.haz.MARPOLPositions.Count); + if (haz.MARPOLPositions.Count > 0) + this.tabMarpolItems.Header = string.Format("{0} ({1})", Properties.Resources.textMARPOLItems, haz.MARPOLPositions.Count); else this.tabMarpolItems.Header = Properties.Resources.textMARPOLItems; } + #endregion + } }