From 9f0a8a275b61eda1e04bfdbfd01bcf187b6672ba Mon Sep 17 00:00:00 2001
From: "VKMTHD\\haraldmartini" <harald.martini@student.tugraz.at>
Date: Fri, 31 Mar 2023 12:36:29 +0200
Subject: [PATCH] updated views after architecture change, restore selected
 component

---
 .../InterimStageBusVehicleViewModel.cs        |  1 +
 .../Implementation/StageInputViewModel.cs     | 24 +++++++++++++------
 .../ViewModelTests/StepViewModelTests.cs      |  4 ++--
 3 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs
index 0a0987c415..cdb42f0413 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/InterimStageBusVehicleViewModel.cs
@@ -228,6 +228,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
             }
 
 			CreateParameterViewModels();
+			ShowConsolidatedData = false;
 		}
 
 		private void InitConsolidated(IVehicleDeclarationInputData consolidatedVehicleData)
diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs
index 57ffc5248f..a72db4c74f 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/StageInputViewModel.cs
@@ -66,7 +66,8 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
             var newVm = _viewModelFactory.GetInterimStageVehicleViewModel(Architecture);
             newVm.SetVehicleInputData(oldVm,false);
             VehicleViewModel = newVm;
-        }
+			UpdateViewModelsAndTitle();
+		}
 
 
         private StageInputViewModel(IMultiStageViewModelFactory multistageViewModelFactory,
@@ -93,7 +94,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
             _documentName = $"New {(exemptedVehicle ? "exempted " : "")}step input {++_newDocumentCounter}";
 
-            Init();
+            UpdateViewModelsAndTitle();
             return;
         }
 
@@ -109,7 +110,7 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
             VehicleInputDataFilePath = _dataSource.SourceFile;
 
             Title = $"{GUILabels.Edit_step_input} - {Path.GetFileName(_dataSource.SourceFile)}";
-            Init();
+            UpdateViewModelsAndTitle();
             return;
         }
 
@@ -130,18 +131,27 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 
         private void UpdateTitle()
         {
-            Title = GUILabels.Edit_step_input + " - " + ((_dataSource?.SourceFile != null)
+            Title = GUILabels.Edit_step_input + $" - {Architecture} - " + ((_dataSource?.SourceFile != null)
                 ? Path.GetFileName(_dataSource.SourceFile)
-                : "New file");
+                : $"New file");
         }
 
-        private void Init()
+        private void UpdateViewModelsAndTitle()
         {
             UpdateTitle();
+			var prevKey = Components.FirstOrDefault(kv => kv.Value == CurrentView).Key;
             Components["vehicle"] = VehicleViewModel as IViewModelBase;
             Components["auxiliaries"] = VehicleViewModel.MultistageAuxiliariesViewModel as IViewModelBase;
             Components["airdrag"] = VehicleViewModel.MultistageAirdragViewModel as IViewModelBase;
-            CurrentView = VehicleViewModel as IViewModelBase;
+
+			
+			if (prevKey != null) {
+				CurrentView = Components[prevKey];
+			} else {
+				CurrentView = VehicleViewModel as IViewModelBase;
+            }
+            
+
 
             ShowSaveAndCloseButtons = true;
         }
diff --git a/Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs b/Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs
index 537cd4b8e0..64fc411655 100644
--- a/Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs
+++ b/Vecto3GUI2020Test/ViewModelTests/StepViewModelTests.cs
@@ -150,13 +150,13 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			Assert.NotNull(stepInput.VehicleViewModel);
 
 			var oldVm = stepInput.VehicleViewModel;
-
 			if (arch == stepInput.Architecture) {
 				Assert.Pass("Nothing to see here ...");
             }
 			stepInput.Architecture = arch;
 			Assert.NotNull(stepInput.VehicleViewModel);
 			Assert.AreNotSame(oldVm, stepInput.VehicleViewModel);
+			Assert.That(stepInput.Title.Contains(arch.ToString()));
 		}
 
 		[Test]
@@ -180,7 +180,7 @@ namespace Vecto3GUI2020Test.ViewModelTests
 			var newVm = stepInput.VehicleViewModel;
 			Assert.NotNull(newVm);
 			Assert.AreNotSame(oldVm, newVm);
-
+			Assert.That(stepInput.Title.Contains(to.ToString()));
         }
 
 
-- 
GitLab