diff --git a/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs b/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs index 12982d3c8642da40fa8cdc90abbd2240d390fff0..87a7de4c246d6c0b744008dc30d94649cf6d985c 100644 --- a/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs +++ b/VECTO3GUI2020/ViewModel/Interfaces/IJobListViewModel.cs @@ -11,5 +11,6 @@ namespace VECTO3GUI2020.ViewModel.Interfaces ObservableCollection<IDocumentViewModel> Jobs { get; } ICommand NewManufacturingStageFileCommand { get; } Task<IDocumentViewModel> AddJobAsync(string fileName); + void AddJob(IDocumentViewModel jobToAdd); } } diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs index 8222936fa7e91eeaeef19b6b4ea9123bedccbfcb..a98cfd438e85c15ffff17ccc9fd53e0329810d3a 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs @@ -277,9 +277,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation { get { - throw new NotImplementedException(); - } - set => throw new NotImplementedException(); + return true; + } set => throw new NotImplementedException(); } #endregion diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs index 45318bd8124dfcff38380e6b81c2cb844da8945b..890c4d910ef056d0107f0476ece00cf935cc2846 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/NewMultiStageJobViewModel.cs @@ -14,6 +14,7 @@ using VECTO3GUI2020.Helper; using VECTO3GUI2020.Properties; using VECTO3GUI2020.Util; using VECTO3GUI2020.ViewModel.Implementation.Common; +using VECTO3GUI2020.ViewModel.Interfaces; using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle; using VECTO3GUI2020.ViewModel.Interfaces.JobEdit.Vehicle.Components; using VECTO3GUI2020.ViewModel.MultiStage.Interfaces; @@ -46,11 +47,13 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation public NewMultiStageJobViewModel(IDialogHelper dialogHelper, IXMLInputDataReader inputDataReader, - IMultiStageViewModelFactory vmFactory) + IMultiStageViewModelFactory vmFactory, + IJobListViewModel jobListViewModel) { _inputDataReader = inputDataReader; _dialogHelper = dialogHelper; _vmFactory = vmFactory; + _jobListViewModel = jobListViewModel; Title = "New Multistage File"; VifPath = "Select VIF File"; } @@ -87,11 +90,13 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation MultiStageJobViewModel = null; MultiStageJobViewModel = _vmFactory.GetMultiStageJobViewModel(inputDataProvider); + _jobListViewModel.AddJob(MultiStageJobViewModel); VifPath = fileName; } private ICommand _closeWindow; + private readonly IJobListViewModel _jobListViewModel; public ICommand CloseWindow { diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs index d684b3465d116722d0c883a8261a874c7edb7325..104962655b46e70ea7149b0e44af6efa1a99b930 100644 --- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs +++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs @@ -22,8 +22,9 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation private bool _canBeEdited; private DataSource _dataSource; private readonly XmlDocumentType _documentType; - private readonly string _documentName; + private string _documentName; private bool _selected; + private static uint _newDocumentCounter = 0; public StageInputViewModel(bool exemptedVehicle, IMultiStageViewModelFactory multiStageViewModelFactory) : base(multiStageViewModelFactory) { @@ -34,6 +35,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation Debug.Assert(_vehicleViewModel != null); Title = "Edit Stage Input - New File"; + _documentType = XmlDocumentType.DeclarationJobData; + _documentName = $"New {(exemptedVehicle ? "Exempted " : "")}Stage Input {++_newDocumentCounter}"; Init(); } @@ -56,7 +59,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation { DataSource = loadedInputData.DataSource; UpdateTitle(); - + DocumentName = loadedInputData.JobInputData.JobName; + } #endregion @@ -81,7 +85,11 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation #region Implementation of IDocumentViewModel - public string DocumentName => _documentName; + public string DocumentName + { + get => _documentName; + set => SetProperty(ref _documentName, value); + } public XmlDocumentType DocumentType => _documentType; diff --git a/VECTO3GUI2020/Views/JoblistView.xaml b/VECTO3GUI2020/Views/JoblistView.xaml index a43520f22220053a3e9b0db4a1cbab23ddb1bd8b..b04441a2068c7a86f315c8f9c0ccd7649c55c96a 100644 --- a/VECTO3GUI2020/Views/JoblistView.xaml +++ b/VECTO3GUI2020/Views/JoblistView.xaml @@ -7,6 +7,7 @@ xmlns:converter="clr-namespace:VECTO3GUI2020.Helper.Converter" xmlns:implementation="clr-namespace:VECTO3GUI2020.ViewModel.Implementation" xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:behavior="clr-namespace:VECTO3GUI2020.Behaviours" + xmlns:document="clr-namespace:VECTO3GUI2020.ViewModel.Interfaces.Document" d:DataContext="{d:DesignInstance Type=implementation:JobListViewModel}" mc:Ignorable="d" AutomationProperties.Name="JobListView" @@ -77,15 +78,23 @@ </behavior:AutoScrollDataGridBehaviour> </i:Interaction.Behaviors> <DataGrid.Columns> - <DataGridCheckBoxColumn IsReadOnly="False" Header="Simulate" Binding="{Binding Selected}" Width="1*"></DataGridCheckBoxColumn> + <DataGridTemplateColumn Header="Simulate" Width="1*" IsReadOnly="False"> + <DataGridTemplateColumn.CellTemplate> + <DataTemplate DataType="document:IDocumentViewModel"> + <CheckBox HorizontalAlignment="Center" IsEnabled="{Binding CanBeSimulated}" + IsChecked="{Binding Selected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></CheckBox> + </DataTemplate> + </DataGridTemplateColumn.CellTemplate> + </DataGridTemplateColumn> <DataGridTextColumn IsReadOnly="True" Header="Name" Binding="{Binding DocumentName}" Width="4*"></DataGridTextColumn> <DataGridTextColumn IsReadOnly ="True" Header="Type" Binding="{Binding DocumentType}" Width="4*"></DataGridTextColumn> - </DataGrid.Columns> + + <DataGrid.RowDetailsTemplate> <DataTemplate> - <StackPanel Orientation="Vertical"> - <Label x:Name="label" Content="Filename"/> + <StackPanel Orientation="Vertical" Visibility="{Binding DataSource, Converter={StaticResource NullToVisibilityConverter}}"> + <!--<Label x:Name="label" Content="Filename"/>--> <TextBlock x:Name="textBlock" Text="{Binding DataSource.SourceFile}" TextWrapping="Wrap" Margin="10" /> </StackPanel> </DataTemplate>