diff --git a/VECTO3GUI2020/Ninject/MultistageModule.cs b/VECTO3GUI2020/Ninject/MultistageModule.cs index e315a3c3276fc78cd9af4b1a75b85b345268155c..3e9c110f8a36a1abee882d736707c01f8cc92c72 100644 --- a/VECTO3GUI2020/Ninject/MultistageModule.cs +++ b/VECTO3GUI2020/Ninject/MultistageModule.cs @@ -61,6 +61,9 @@ namespace VECTO3GUI2020.Ninject Bind<IAdditionalJobInfoViewModel>().To<AdditionalJobInfoViewModelNewVif>() .WhenInjectedInto(typeof(ICreateVifViewModel)); + Bind<IAdditionalJobInfoViewModel>().To<AdditionalJobInfoViewModelStageInput>() + .WhenInjectedInto(typeof(IStageViewModelBase)); + Bind<JSONJob>().ToSelf(); } } diff --git a/VECTO3GUI2020/Resources/ViewModelBindings.xaml b/VECTO3GUI2020/Resources/ViewModelBindings.xaml index f251fb1ab5f5614b59da2e93d247c1a004507edb..8c644cee027e7fa3d676bed2e31c27b9a82d5e73 100644 --- a/VECTO3GUI2020/Resources/ViewModelBindings.xaml +++ b/VECTO3GUI2020/Resources/ViewModelBindings.xaml @@ -235,7 +235,7 @@ </DataTemplate> <DataTemplate DataType="{x:Type multistageimpl:CreateVifViewModel}"> - <multistageviews:CreateVifView></multistageviews:CreateVifView> + <multistageviews:CreateVifView/> </DataTemplate> <!--#endregion--> @@ -244,7 +244,15 @@ </DataTemplate> <DataTemplate DataType="{x:Type common:AdditionalJobInfoViewModelMultiStage}"> - <additionaljobInfoViews:AdditionalJobInfoViewMultiStage></additionaljobInfoViews:AdditionalJobInfoViewMultiStage> + <additionaljobInfoViews:AdditionalJobInfoViewMultiStage/> + </DataTemplate> + + <DataTemplate DataType="{x:Type common:AdditionalJobInfoViewModelNewVif}"> + <additionaljobInfoViews:AdditionalJobInfoViewNewVIF/> + </DataTemplate> + + <DataTemplate DataType="{x:Type common:AdditionalJobInfoViewModelStageInput}"> + <additionaljobInfoViews:AdditionalJobInfoStageInput/> </DataTemplate> diff --git a/VECTO3GUI2020/VECTO3GUI2020.csproj b/VECTO3GUI2020/VECTO3GUI2020.csproj index 84002528f952e2b4971cb024921cb75960e95c64..6052d00933ec57aa6763d1e3a19c1886fd1067a5 100644 --- a/VECTO3GUI2020/VECTO3GUI2020.csproj +++ b/VECTO3GUI2020/VECTO3GUI2020.csproj @@ -433,6 +433,9 @@ <Compile Include="Views\MessageView.xaml.cs"> <DependentUpon>MessageView.xaml</DependentUpon> </Compile> + <Compile Include="Views\Multistage\AdditionalJobInfoViews\AdditionalJobInfoStageInput.xaml.cs"> + <DependentUpon>AdditionalJobInfoStageInput.xaml</DependentUpon> + </Compile> <Compile Include="Views\Multistage\AdditionalJobInfoViews\AdditionalJobInfoViewMultiStage.xaml.cs"> <DependentUpon>AdditionalJobInfoViewMultiStage.xaml</DependentUpon> </Compile> @@ -706,6 +709,10 @@ <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="Views\Multistage\AdditionalJobInfoViews\AdditionalJobInfoStageInput.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="Views\Multistage\AdditionalJobInfoViews\AdditionalJobInfoViewMultiStage.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> diff --git a/VECTO3GUI2020/ViewModel/Implementation/Common/AdditionalJobInfoViewModel.cs b/VECTO3GUI2020/ViewModel/Implementation/Common/AdditionalJobInfoViewModel.cs index a89b024e995a4a7656269d0f566136fc0837a498..d0f690fd7543bfa80adffc669a458373c2dac400 100644 --- a/VECTO3GUI2020/ViewModel/Implementation/Common/AdditionalJobInfoViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Implementation/Common/AdditionalJobInfoViewModel.cs @@ -3,6 +3,7 @@ using System.Collections.ObjectModel; using System.Diagnostics; using System.Linq; using System.Windows; +using System.Windows.Media.TextFormatting; using TUGraz.VectoCommon.InputData; using VECTO3GUI2020.ViewModel.Interfaces.Common; using VECTO3GUI2020.ViewModel.MultiStage.Implementation; @@ -13,23 +14,22 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common { void SetParent(IViewModelBase parent); } - public class AdditionalJobInfoViewModelBase : ViewModelBase, IAdditionalJobInfoViewModel + public abstract class AdditionalJobInfoViewModelBase : ViewModelBase, IAdditionalJobInfoViewModel { - private IViewModelBase _parent; #region Implementation of IAdditionalJobInfoViewModel public string Information { get; } = "Nothing to show here"; + public abstract void SetParent(IViewModelBase parent); - - - public virtual void SetParent(IViewModelBase parent) + public AdditionalJobInfoViewModelBase() { - _parent = parent; + SizeToContent = SizeToContent.WidthAndHeight; + MinHeight = 200; + MinWidth = 300; } - #endregion } @@ -42,7 +42,6 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common public AdditionalJobInfoViewModelMultiStage() { Title = "Multistage Job Info"; - SizeToContent = SizeToContent.WidthAndHeight; } #region Overrides of AdditionalJobInfoViewModelBase @@ -99,11 +98,22 @@ namespace VECTO3GUI2020.ViewModel.Implementation.Common _parent = parent as CreateVifViewModel; Debug.Assert(_parent != null); - //if() - } #endregion } + + public class AdditionalJobInfoViewModelStageInput : AdditionalJobInfoViewModelBase + { + private IStageViewModelBase stageViewModel; + #region Overrides of AdditionalJobInfoViewModelBase + + public override void SetParent(IViewModelBase parent) + { + stageViewModel = parent as IStageViewModelBase; + Debug.Assert(stageViewModel != null); + } + #endregion + } } \ No newline at end of file diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs index c2765507fd3160bc7e606ba46d6980bf5887c561..32fecfec2e4449d6c2038493e26611e73c7b6576 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs @@ -26,41 +26,51 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation private bool _selected; private static uint _newDocumentCounter = 0; - public StageInputViewModel(bool exemptedVehicle, IMultiStageViewModelFactory multiStageViewModelFactory) : base(multiStageViewModelFactory) + private StageInputViewModel(IMultiStageViewModelFactory multistageViewModelFactory, + IAdditionalJobInfoViewModel additionalJobInfoViewModel) : base(multistageViewModelFactory) + { + _documentType = XmlDocumentType.DeclarationJobData; + _additionalJobInfoViewModel = additionalJobInfoViewModel; + _additionalJobInfoViewModel.SetParent(this); + } + + + public StageInputViewModel(bool exemptedVehicle, IMultiStageViewModelFactory multiStageViewModelFactory, IAdditionalJobInfoViewModel additionalJobInfoViewModel) : this(multiStageViewModelFactory, additionalJobInfoViewModel) { _vehicleViewModel = _viewModelFactory.CreateStageInputVehicleViewModel( exemptedVehicle ? InterimStageBusVehicleViewModel_v2_8.VERSION_EXEMPTED : InterimStageBusVehicleViewModel_v2_8.VERSION) as IMultistageVehicleViewModel; - Debug.Assert(_vehicleViewModel != null); Title = "Edit Stage Input - New File"; - _documentType = XmlDocumentType.DeclarationJobData; + _documentName = $"New {(exemptedVehicle ? "Exempted " : "")}Stage Input {++_newDocumentCounter}"; Init(); } - public StageInputViewModel(IDeclarationInputDataProvider inputData, IMultiStageViewModelFactory multiStageViewModelFactory) : base(multiStageViewModelFactory) + public StageInputViewModel(IDeclarationInputDataProvider inputData, IMultiStageViewModelFactory multiStageViewModelFactory, IAdditionalJobInfoViewModel additionalJobInfoViewModel) : this(multiStageViewModelFactory,additionalJobInfoViewModel) { _documentName = inputData.JobInputData.JobName; _vehicleViewModel = _viewModelFactory.CreateStageInputVehicleViewModel(inputData.JobInputData.Vehicle) as IMultistageVehicleViewModel; (_vehicleViewModel as InterimStageBusVehicleViewModel_v2_8).ShowConsolidatedData = false; + _dataSource = inputData.DataSource; - _documentType = XmlDocumentType.DeclarationJobData; - Title = $"Edit Stage Input - {Path.GetFileName(_dataSource.SourceFile)}"; + Title = $"Edit Stage Input - {Path.GetFileName(_dataSource.SourceFile)}"; Init(); } #region Overrides of StageViewModelBase - + /// <summary> + /// Called in base class after input data is loaded. + /// </summary> + /// <param name="loadedInputData"></param> protected override void LoadStageInputDataFollowUp(IDeclarationInputDataProvider loadedInputData) { DataSource = loadedInputData.DataSource; UpdateTitle(); DocumentName = loadedInputData.JobInputData.JobName; - } #endregion @@ -116,11 +126,11 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation get => false; set => throw new System.NotImplementedException(); } - + private IAdditionalJobInfoViewModel _additionalJobInfoViewModel; public IAdditionalJobInfoViewModel AdditionalJobInfoVm { - get => throw new NotImplementedException(); - set => throw new NotImplementedException(); + get => _additionalJobInfoViewModel; + set => SetProperty(ref _additionalJobInfoViewModel, value); } #endregion diff --git a/VECTO3GUI2020/Views/Multistage/AdditionalJobInfoViews/AdditionalJobInfoStageInput.xaml b/VECTO3GUI2020/Views/Multistage/AdditionalJobInfoViews/AdditionalJobInfoStageInput.xaml new file mode 100644 index 0000000000000000000000000000000000000000..5f16f70b3d55465a6ff25f717dfad5527db98ac6 --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/AdditionalJobInfoViews/AdditionalJobInfoStageInput.xaml @@ -0,0 +1,12 @@ +<UserControl x:Class="VECTO3GUI2020.Views.Multistage.AdditionalJobInfoViews.AdditionalJobInfoStageInput" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="clr-namespace:VECTO3GUI2020.Views.Multistage.AdditionalJobInfoViews" + mc:Ignorable="d" + d:DesignHeight="450" d:DesignWidth="800"> + <Grid> + <Label>This File cannot be simulated on its own.</Label> + </Grid> +</UserControl> diff --git a/VECTO3GUI2020/Views/Multistage/AdditionalJobInfoViews/AdditionalJobInfoStageInput.xaml.cs b/VECTO3GUI2020/Views/Multistage/AdditionalJobInfoViews/AdditionalJobInfoStageInput.xaml.cs new file mode 100644 index 0000000000000000000000000000000000000000..61e43a35eacffeb6ceb270b1c7045e947146acac --- /dev/null +++ b/VECTO3GUI2020/Views/Multistage/AdditionalJobInfoViews/AdditionalJobInfoStageInput.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace VECTO3GUI2020.Views.Multistage.AdditionalJobInfoViews +{ + /// <summary> + /// Interaction logic for AdditionalJobInfoStageInput.xaml + /// </summary> + public partial class AdditionalJobInfoStageInput : UserControl + { + public AdditionalJobInfoStageInput() + { + InitializeComponent(); + } + } +}