Merge branch 'develop' into release/eni_7.2.7

This commit is contained in:
Daniel Schick 2025-03-14 11:12:26 +01:00
commit f11397645c
26 changed files with 136 additions and 47 deletions

View File

@ -192,6 +192,10 @@ namespace ENI2
e.Handled = true;
}
public virtual int SelectedTabIndex { get; set; } = -1;
#endregion
#region event handling for control content changes (signal dirty etc)
protected void RegisterTextboxChange(TextBox textBox, Message.NotificationClass notificationClass)
@ -347,8 +351,6 @@ namespace ENI2
#endregion
#endregion
#region IHighlightControlContainer implementation
public virtual void HighlightErrorMessageContainer()

View File

@ -485,6 +485,7 @@ namespace ENI2
{
Util.UIHelper.SetBusyState();
int currentMainTabIndex = -1;
if (this.detailView.Children[0] is DetailBaseControl currentControl)
{
@ -499,10 +500,24 @@ namespace ENI2
// ggf. hat sich die Ticketnr geändert..
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(currentControl.Core);
}
}
currentMainTabIndex = currentControl.SelectedTabIndex;
}
this.DetailControl_RequestReload(this.Core.Id.Value);
System.Action<int> SetTabAction = (int x) =>
{
// this hopefully happens *after* the view was completely reloaded
if (this.detailView.Children[0] is DetailBaseControl currentNewControl)
{
currentNewControl.SelectedTabIndex = x;
}
};
if (currentMainTabIndex >= 0)
Dispatcher.BeginInvoke(SetTabAction, currentMainTabIndex);
}
}
private void SaveMessage(Message message)
@ -553,6 +568,7 @@ namespace ENI2
{
Util.UIHelper.SetBusyState();
int currentMainTabIndex = -1;
foreach (Message message in this._messages)
{
@ -566,10 +582,27 @@ namespace ENI2
DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(currentControl.Core);
}
currentMainTabIndex = currentControl.SelectedTabIndex;
Trace.WriteLine($"Last selected tab index: {currentMainTabIndex}");
this.buttonSaveAll.Visibility = Visibility.Hidden;
this.buttonSave.Visibility = Visibility.Hidden;
}
this.DetailControl_RequestReload(this.Core.Id.Value);
System.Action<int> SetTabAction = (int x) =>
{
// this hopefully happens *after* the view was completely reloaded
if (this.detailView.Children[0] is DetailBaseControl currentNewControl)
{
currentNewControl.SelectedTabIndex = x;
}
};
if(currentMainTabIndex >= 0)
Dispatcher.BeginInvoke(SetTabAction, currentMainTabIndex);
}
}
private void DetailControl_NotificationClassChanged(Message.NotificationClass? notificationClass)

View File

@ -246,6 +246,12 @@ namespace ENI2.DetailViewControls
#endregion
}
public override int SelectedTabIndex
{
get { return this.mainFrame.SelectedIndex; }
set { this.mainFrame.SelectedIndex = value; }
}
#region Grid copy handlers
private void CopyPASDItem_Click(object sender, RoutedEventArgs e)

View File

@ -197,6 +197,12 @@ namespace ENI2.DetailViewControls
this._initialized = true;
}
public override int SelectedTabIndex
{
get { return this.tabControlPositions.SelectedIndex; }
set { this.tabControlPositions.SelectedIndex = value; }
}
#region SetEnabled
public override void SetEnabled(bool enabled)

View File

@ -130,6 +130,12 @@ namespace ENI2.DetailViewControls
}
public override int SelectedTabIndex
{
get { return this.mainFrame.SelectedIndex; }
set { this.mainFrame.SelectedIndex = value; }
}
#region SetEnabled
public override void SetEnabled(bool enabled)

View File

@ -116,6 +116,12 @@ namespace ENI2.DetailViewControls
}
public override int SelectedTabIndex
{
get { return this.mainFrame.SelectedIndex; }
set { this.mainFrame.SelectedIndex = value; }
}
#region SetEnabled
public override void SetEnabled(bool enabled)

View File

@ -187,6 +187,12 @@ namespace ENI2.DetailViewControls
}
public override int SelectedTabIndex
{
get { return this.mainFrame.SelectedIndex; }
set { this.mainFrame.SelectedIndex = value; }
}
#region Waste receipt grid event handler
private async void DataGridWasteReceipt_CreateRequested()

View File

@ -36,8 +36,8 @@
<MinimumRequiredVersion>5.4.0.0</MinimumRequiredVersion>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>publish.html</WebPage>
<ApplicationRevision>5</ApplicationRevision>
<ApplicationVersion>7.2.7.5</ApplicationVersion>
<ApplicationRevision>7</ApplicationRevision>
<ApplicationVersion>7.2.7.7</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
<PublishWizardCompleted>true</PublishWizardCompleted>

View File

@ -1184,7 +1184,7 @@
<value>Category</value>
</data>
<data name="textColumsOfIBC" xml:space="preserve">
<value>Columns "o" of OBC Code (value 15.19)</value>
<value>Columns "o" of IBC Code (value 15.19)</value>
</data>
<data name="textContainerNo" xml:space="preserve">
<value>Container No.</value>

View File

@ -24,7 +24,7 @@
</col:ArrayList>
</UserControl.Resources>
<GroupBox Name="portCallGroupBox" Header="{x:Static p:Resources.text2PortCall}">
<TabControl>
<TabControl x:Name="mainTabControl">
<TabItem Header="{x:Static p:Resources.textTab21}">
<Grid>
<Grid.ColumnDefinitions>

View File

@ -204,15 +204,10 @@ namespace ENI2.SheetDisplayControls
}
private void CheckBoxValidExemption_Checked(object sender, RoutedEventArgs e)
public override int SelectedTabIndex
{
bool on = !(this.checkBoxValidExemption.IsChecked ?? false);
this.checkBoxAccurateCorrectDetails.IsEnabled = on;
this.locodeCtrlLastWastePort.IsEnabled = on;
this.datePickerDateLastDisposal.IsEnabled = on;
this.textBoxWasteDisposalServiceProviders.IsEnabled = on;
this.gridWasteControls.IsEnabled = on;
this.dataGridWaste.IsEnabled = on;
get { return this.mainTabControl.SelectedIndex; }
set { this.mainTabControl.SelectedIndex = value; }
}
public override void SetEnabled(bool enabled)
@ -270,7 +265,17 @@ namespace ENI2.SheetDisplayControls
this.RegisterTextboxChange(this.textBoxWasteDisposalServiceProviders, Message.NotificationClass.WAS);
this.RegisterDatePickerChange(this.datePickerDateLastDisposal, Message.NotificationClass.WAS);
}
private void CheckBoxValidExemption_Checked(object sender, RoutedEventArgs e)
{
bool on = !(this.checkBoxValidExemption.IsChecked ?? false);
this.checkBoxAccurateCorrectDetails.IsEnabled = on;
this.locodeCtrlLastWastePort.IsEnabled = on;
this.datePickerDateLastDisposal.IsEnabled = on;
this.textBoxWasteDisposalServiceProviders.IsEnabled = on;
this.gridWasteControls.IsEnabled = on;
this.dataGridWaste.IsEnabled = on;
}
private void buttonSearchPortArea_Click(object sender, RoutedEventArgs e)

View File

@ -12,7 +12,7 @@
mc:Ignorable="d"
d:DesignHeight="1050" d:DesignWidth="800">
<GroupBox Name="shipDataGroupBox" Header="{x:Static p:Resources.text3PreArrival}">
<TabControl>
<TabControl x:Name="mainTabControl">
<TabItem Header="{x:Static p:Resources.textTab51}">
<Grid>
<Grid.ColumnDefinitions>
@ -148,15 +148,16 @@
<TextBlock FontSize="18" VerticalAlignment="Bottom" Text="{x:Static p:Resources.text52SSCEC}" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2"/>
<Label HorizontalContentAlignment="Right" Grid.Row="1" Grid.Column="0" Content="{x:Static p:Resources.textMDHSimplification}" Name="label_MDHSimplificationAvailable" Margin="0,0,10,0"/>
<CheckBox Name="checkSimplification" IsChecked="{Binding MDHSimplification}" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center"/>
<CheckBox Name="checkSimplification" IsChecked="{Binding MDHSimplification}" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Checked="checkSimplification_Checked" Unchecked="checkSimplification_Checked"/>
<Label HorizontalContentAlignment="Right" Grid.Row="2" Grid.Column="0" Content="{x:Static p:Resources.textPortOfHealth}" Name="label_PortOfHealth" Margin="0,0,10,0"/>
<enictrl:LocodeControl x:Name="locodePortWhereHealthDeclarationWasGiven" Grid.Row="2" Grid.Column="1" LocodeValue="{Binding PortOfCallWhereCompleteMDHNotified, Mode=TwoWay}" IsEnabled="{Binding ElementName=checkSimplification, Path=IsChecked}" />
<Label HorizontalContentAlignment="Right" Grid.Row="3" Grid.Column="0" Content="{x:Static p:Resources.textSanitaryControlExemption}" Name="label_SanitaryControlExemption" Margin="0,0,10,0"/>
<CheckBox Name="checkBoxSanitaryControlExemption" IsChecked="{Binding ValidSanitaryControlExemptionOrCertificateOnBoard}" Grid.Row="3" Grid.Column="1" VerticalAlignment="Center" IsEnabled="{Binding ElementName=checkSimplification, Path=IsChecked, Converter={util:InverseBooleanConverter}}"/>
<CheckBox Name="checkBoxSanitaryControlExemption" IsChecked="{Binding ValidSanitaryControlExemptionOrCertificateOnBoard}" Grid.Row="3" Grid.Column="1" VerticalAlignment="Center"
IsEnabled="{Binding ElementName=checkSimplification, Path=IsChecked, Converter={util:InverseBooleanConverter}}" Checked="checkSimplification_Checked" Unchecked="checkSimplification_Checked"/>
<Label HorizontalContentAlignment="Right" Grid.Row="4" Grid.Column="0" Content="{x:Static p:Resources.textPlaceOfIssue}" Name="label_PlaceOfIssue" Margin="0,0,10,0"/>
<TextBox Name="textBoxPlaceOfIssue" Grid.Row="4" Grid.Column="1" MaxLength="100" Text="{Binding PlaceOfIssue, Converter={util:TrimStringConverter}}" Margin="2" IsEnabled="{Binding ElementName=checkSimplification, Path=IsChecked, Converter={util:InverseBooleanConverter}}"/>
<TextBox Name="textBoxPlaceOfIssue" Grid.Row="4" Grid.Column="1" MaxLength="100" Text="{Binding PlaceOfIssue, Converter={util:TrimStringConverter}}" Margin="2" />
<Label HorizontalContentAlignment="Right" Grid.Row="5" Grid.Column="0" Content="{x:Static p:Resources.textDateOfIssue}" Name="label_DateOfIssue" Margin="0,0,10,0"/>
<DatePicker Name="datePickerDateOfIssue" Grid.Row="5" Grid.Column="1" SelectedDate="{Binding DateOfIssue, Mode=TwoWay}" Margin="2" ContextMenu="{DynamicResource ClearContextMenu}" DisplayDateStart="1/1/1900" DisplayDateEnd="12/31/2199" PreviewKeyUp="DateTimePicker_PreviewKeyUpDate" IsEnabled="{Binding ElementName=checkSimplification, Path=IsChecked, Converter={util:InverseBooleanConverter}}">
<DatePicker Name="datePickerDateOfIssue" Grid.Row="5" Grid.Column="1" SelectedDate="{Binding DateOfIssue, Mode=TwoWay}" Margin="2" ContextMenu="{DynamicResource ClearContextMenu}" DisplayDateStart="1/1/1900" DisplayDateEnd="12/31/2199" PreviewKeyUp="DateTimePicker_PreviewKeyUpDate" >
<DatePicker.BlackoutDates>
<CalendarDateRange Start="1/1/0001" End="12/31/1799"/>
<CalendarDateRange Start="1/1/2199" End="1/1/9999"/>

View File

@ -123,6 +123,12 @@ namespace ENI2.SheetDisplayControls
this.shipDataGroupBox.IsEnabled = enabled;
}
public override int SelectedTabIndex
{
get { return this.mainTabControl.SelectedIndex; }
set { this.mainTabControl.SelectedIndex = value; }
}
#endregion
#region event handler
@ -178,6 +184,12 @@ namespace ENI2.SheetDisplayControls
}
private void checkSimplification_Checked(object sender, RoutedEventArgs e)
{
this.textBoxPlaceOfIssue.IsEnabled = !(this.checkSimplification.IsChecked ?? false) && (checkBoxSanitaryControlExemption.IsChecked ?? false);
this.datePickerDateOfIssue.IsEnabled = !(this.checkSimplification.IsChecked ?? false) && (checkBoxSanitaryControlExemption.IsChecked ?? false);
}
#endregion
}

View File

@ -13,7 +13,7 @@
d:DesignHeight="1150" d:DesignWidth="800">
<GroupBox Name="voyageGroupBox" Header="{x:Static p:Resources.textVoyage}">
<TabControl>
<TabControl x:Name="mainTabControl">
<TabItem Header="{x:Static p:Resources.textTab11}">
<ScrollViewer PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<Grid>

View File

@ -199,6 +199,12 @@ namespace ENI2.SheetDisplayControls
this.voyageGroupBox.IsEnabled = enabled;
}
public override int SelectedTabIndex
{
get { return this.mainTabControl.SelectedIndex; }
set { this.mainTabControl.SelectedIndex = value; }
}
#endregion
#region event handler

View File

@ -28,11 +28,11 @@ namespace bsmd.database
[Validation(ValidationCode.NOT_NULL)]
[ENI2Validation]
public bool? NoDPGOnBoardOnArrival { get; set; }
public bool? NoDPGOnBoardOnArrival { get; set; } = true;
[ShowReport]
[ENI2Validation]
public bool? DPGManifestOnBoardOnArrival { get; set; }
public bool? DPGManifestOnBoardOnArrival { get; set; } = false;
[ShowReport]
[ENI2Validation]
@ -40,7 +40,7 @@ namespace bsmd.database
[ShowReport]
[ENI2Validation]
public bool? MOUBaltic { get; set; }
public bool? MOUBaltic { get; set; } = false;
[ENI2Validation]
public bool? DPGClassificationIMDG { get; set; }

View File

@ -35,7 +35,7 @@ namespace bsmd.database
public byte? Flashpoint { get; set; }
public bool? SpecRef15_19 { get; set; }
public bool? SpecRef15_19 { get; set; } = false;
public bool? MHB { get; set; }

View File

@ -155,7 +155,7 @@ namespace bsmd.database
[ShowReport]
[ENI2Validation]
public bool? SpecRef15_19 { get; set; }
public bool? SpecRef15_19 { get; set; } = false;
[ShowReport]
[MaxLength(255)]

View File

@ -114,7 +114,7 @@ namespace bsmd.database
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[ENI2Validation]
public bool? MarinePollutant { get; set; }
public bool? MarinePollutant { get; set; } = false;
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
@ -130,12 +130,12 @@ namespace bsmd.database
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[ENI2Validation]
public bool? LimitedQuantities { get; set; }
public bool? LimitedQuantities { get; set; } = false;
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[ENI2Validation]
public bool? ExceptedQuantities { get; set; }
public bool? ExceptedQuantities { get; set; } = false;
[ShowReport]
[ENI2Validation]
@ -154,7 +154,7 @@ namespace bsmd.database
[ShowReport]
[ENI2Validation]
public bool? GeneralCargoIBC { get; set; }
public bool? GeneralCargoIBC { get; set; } = false;
[ShowReport]
[MaxLength(24)]

View File

@ -58,7 +58,7 @@ namespace bsmd.database
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
[ENI2Validation]
public bool? MHB { get; set; }
public bool? MHB { get; set; } = false;
[ShowReport]
[MaxLength(4)]

View File

@ -58,7 +58,7 @@ namespace bsmd.database
[Validation(ValidationCode.NOT_NULL)]
[ENI2Validation]
[DataMember]
public byte? FumigatedBulkCargo { get; set; }
public byte? FumigatedBulkCargo { get; set; } = 0;
/// <summary>
/// ENI-2 Edit Value für Checkbox (OMG!)

View File

@ -119,7 +119,7 @@ namespace bsmd.database
[ReportDisplayName("In transit")]
[Validation(ValidationCode.NOT_NULL)]
[ENI2Validation]
public bool? PassengerInTransit { get; set; }
public bool? PassengerInTransit { get; set; } = false;
[ShowReport]
[ReportDisplayName("Issuing state")]

View File

@ -78,11 +78,11 @@ namespace bsmd.database
[LookupName("PRE72H.IsDueToInspection")]
[ENI2Validation]
public bool? IsDueToInspection { get; set; }
public bool? IsDueToInspection { get; set; } = false;
[LookupName("PRE72H.PossibleAnchorage")]
[ENI2Validation]
public bool? PossibleAnchorage { get; set; }
public bool? PossibleAnchorage { get; set; } = false;
public override string Subtitle
{

View File

@ -49,7 +49,7 @@ namespace bsmd.database
[ShowReport]
[Validation2(ValidationCode.NOT_NULL)]
[ENI2Validation]
public bool? PortOfCallLast30DaysCrewMembersJoined { get; set; }
public bool? PortOfCallLast30DaysCrewMembersJoined { get; set; } = false;
public string Identifier { get; set; }

View File

@ -77,7 +77,7 @@ namespace bsmd.database
[Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.ValidISSCOnBoard")]
[ENI2Validation]
public bool? ValidISSCOnBoard { get; set; }
public bool? ValidISSCOnBoard { get; set; } = false;
[ShowReport]
[LookupName("SEC.ReasonsForNoValidISSC")]
@ -122,7 +122,7 @@ namespace bsmd.database
[Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.ApprovedSecurityPlanOnBoard")]
[ENI2Validation]
public bool? ApprovedSecurityPlanOnBoard { get; set; }
public bool? ApprovedSecurityPlanOnBoard { get; set; } = false;
[ShowReport]
[Validation(ValidationCode.NOT_NULL)]
@ -148,7 +148,7 @@ namespace bsmd.database
public string MatterToReport { get; set; }
[ENI2Validation]
public bool? KielCanalPassagePlanned { get; set; }
public bool? KielCanalPassagePlanned { get; set; } = false;
[ENI2Validation]
public DateTime? KielCanalPassagePlannedIncomming { get; set; }

View File

@ -122,7 +122,7 @@ namespace bsmd.database
[Validation2(ValidationCode.NOT_NULL)]
[LookupName("WAS.ConfirmationOfCorrectness")]
[ENI2Validation]
public bool? ConfirmationOfCorrectness { get; set; }
public bool? ConfirmationOfCorrectness { get; set; } = false;
[ShowReport]
[Validation2(ValidationCode.NOT_NULL)]