diff --git a/ENI-2/ENI2/ENI2/Controls/ENIDataGrid.cs b/ENI-2/ENI2/ENI2/Controls/ENIDataGrid.cs index 96940938..65dbb705 100644 --- a/ENI-2/ENI2/ENI2/Controls/ENIDataGrid.cs +++ b/ENI-2/ENI2/ENI2/Controls/ENIDataGrid.cs @@ -120,8 +120,11 @@ namespace ENI2.Controls protected void addItem(object sender, RoutedEventArgs e) { - if(!this.IsReadOnly) + if (!this.IsReadOnly) + { this.CreateRequested?.Invoke(); + } + e.Handled = true; } protected void deleteItem(object sender, RoutedEventArgs e) diff --git a/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs b/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs index 2b743070..8b432708 100644 --- a/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs +++ b/ENI-2/ENI2/ENI2/Controls/EditWindowBase.cs @@ -107,6 +107,13 @@ namespace ENI2.Controls //System.Diagnostics.Trace.WriteLine("---"); itemsViewOriginal.Refresh(); + + if (itemsViewOriginal.Count == 1) + { + // Treffer: Select? + cmb.SelectedItem = itemsViewOriginal.GetItemAt(0); + } + } #endregion diff --git a/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml b/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml new file mode 100644 index 00000000..1406220a --- /dev/null +++ b/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs b/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs new file mode 100644 index 00000000..35595f9c --- /dev/null +++ b/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs @@ -0,0 +1,90 @@ +// Copyright (c) 2017 schick Informatik +// Description: Tabelle Reporting Party (bearbeitet wird im Dialog) +// + +using System; +using System.Windows; + +using bsmd.database; +using ENI2.EditControls; +using System.Collections.Generic; +using System.Windows.Controls; + +namespace ENI2.Controls +{ + /// + /// Interaction logic for ReportingPartyControl.xaml + /// + public partial class ReportingPartyControl : UserControl + { + public ReportingPartyControl() + { + InitializeComponent(); + Loaded += ReportingPartyControl_Loaded; + } + + public List ReportingParties { get; set; } + + private void ReportingPartyControl_Loaded(object sender, RoutedEventArgs e) + { + this.dataGridReportingParties.Initialize(); + this.dataGridReportingParties.ItemsSource = this.ReportingParties; + this.dataGridReportingParties.CreateRequested += DataGridReportingParties_CreateRequested; + this.dataGridReportingParties.AddingNewItem += DataGridReportingParties_AddingNewItem; + this.dataGridReportingParties.EditRequested += DataGridReportingParties_EditRequested; + this.dataGridReportingParties.DeleteRequested += DataGridReportingParties_DeleteRequested; + + } + + #region grid event handler + + private void DataGridReportingParties_DeleteRequested(DatabaseEntity obj) + { + ReportingParty rp = obj as ReportingParty; + if (rp != null) + { + // are you sure dialog is in base class + DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(rp); + this.ReportingParties.Remove(rp); + this.dataGridReportingParties.Items.Refresh(); + } + } + + private void DataGridReportingParties_EditRequested(DatabaseEntity obj) + { + ReportingParty rp = obj as ReportingParty; + if (rp != null) + { + EditReportingPartyDialog eld = new EditReportingPartyDialog(); + eld.ReportingParty = rp; + + if (eld.ShowDialog() ?? false) + { + this.dataGridReportingParties.Items.Refresh(); + } + } + } + + private void DataGridReportingParties_AddingNewItem(object sender, AddingNewItemEventArgs e) + { + this.DataGridReportingParties_CreateRequested(); + } + + private void DataGridReportingParties_CreateRequested() + { + ReportingParty rp = new ReportingParty(); + EditReportingPartyDialog ebd = new EditReportingPartyDialog(); + ebd.ReportingParty = rp; + + if (ebd.ShowDialog() ?? false) + { + DBManager.Instance.GetReportingPartyDict().Add(Guid.NewGuid(), rp); + this.ReportingParties.Add(rp); + this.dataGridReportingParties.Items.Refresh(); + } + } + + #endregion + + } +} diff --git a/ENI-2/ENI2/ENI2/DetailBaseControl.cs b/ENI-2/ENI2/ENI2/DetailBaseControl.cs index c63bf226..6b526bd6 100644 --- a/ENI-2/ENI2/ENI2/DetailBaseControl.cs +++ b/ENI-2/ENI2/ENI2/DetailBaseControl.cs @@ -241,6 +241,13 @@ namespace ENI2 }); itemsViewOriginal.Refresh(); + + if(itemsViewOriginal.Count == 1) + { + // Treffer: Select? + cmb.SelectedItem = itemsViewOriginal.GetItemAt(0); + } + } #endregion diff --git a/ENI-2/ENI2/ENI2/DetailRootControl.xaml b/ENI-2/ENI2/ENI2/DetailRootControl.xaml index 6d73c65d..1cad92f0 100644 --- a/ENI-2/ENI2/ENI2/DetailRootControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailRootControl.xaml @@ -5,6 +5,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:p="clr-namespace:ENI2.Properties" + xmlns:util="clr-namespace:ENI2.Util" xmlns:local="clr-namespace:ENI2" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300"> @@ -49,7 +50,7 @@ - + diff --git a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs index 3d170931..39bcf2e3 100644 --- a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs @@ -26,7 +26,7 @@ namespace ENI2 private MessageCore _core; private List _listBoxList = new List(); private List _messages; - private Dictionary controlCache = new Dictionary(); + private Dictionary controlCache = new Dictionary(); private Guid userId = Guid.NewGuid(); // remove THIS!! private object messageListLock = new object(); @@ -105,7 +105,7 @@ namespace ENI2 if(listBoxMessages.SelectedItem != null) { MessageGroup mg = this.listBoxMessages.SelectedItem as MessageGroup; - if (!controlCache.ContainsKey(mg.MessageGroupControlType)) + if (!controlCache.ContainsKey(mg.MessageGroupName)) { // create control instance for display: DetailBaseControl detailControl = (DetailBaseControl)Activator.CreateInstance(mg.MessageGroupControlType); @@ -133,14 +133,14 @@ namespace ENI2 if (!detailControl.IsEnabled && (detailControl is OverViewDetailControl)) ((OverViewDetailControl)detailControl).ShowLockedBy(this.LockedBy); - controlCache.Add(mg.MessageGroupControlType, detailControl); + controlCache.Add(mg.MessageGroupName, detailControl); this.buttonSave.Visibility = Visibility.Hidden; } else { // Control has been created before: Set visibility of "save" button: bool hasDirtyMessages = false; - DetailBaseControl dbc = controlCache[mg.MessageGroupControlType]; + DetailBaseControl dbc = controlCache[mg.MessageGroupName]; foreach (Message message in dbc.ControlMessages) if (message.IsDirty) hasDirtyMessages = true; @@ -149,7 +149,7 @@ namespace ENI2 // plug it in ;-) detailView.Children.Clear(); - detailView.Children.Add(controlCache[mg.MessageGroupControlType]); + detailView.Children.Add(controlCache[mg.MessageGroupName]); } } diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs index 29f1fb80..c9c5044f 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/ArrivalNotificationDetailControl.xaml.cs @@ -171,6 +171,7 @@ namespace ENI2.DetailViewControls if (brka != null) { // are you sure dialog is in base class + DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Delete(brka); this._bkraMessage.Elements.Remove(brka); this.dataGridBKRA.Items.Refresh(); } diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml index 198e2fc3..89c384de 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml @@ -33,7 +33,7 @@ - + - + - - + + diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml index 3ed13ccc..2f36900f 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml @@ -7,9 +7,10 @@ xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:enictrl="clr-namespace:ENI2.Controls" xmlns:p="clr-namespace:ENI2.Properties" + xmlns:util="clr-namespace:ENI2.Util" xmlns:local="clr-namespace:ENI2.DetailViewControls" mc:Ignorable="d" - d:DesignHeight="300" d:DesignWidth="600"> + d:DesignHeight="300" d:DesignWidth="800">