protected virtual void OnSelectedModuleTypeChanged(ModuleType oldType) {
var transitionService = GetService<Services.ITransitionService>();
bool effective = (SelectedModuleType != ModuleType.Unknown) && (oldType != ModuleType.Unknown);
object waitParameter = !IsModuleLoaded(SelectedModuleType) ? (object)SelectedModuleType : null;
using(transitionService.EnterTransition(effective, ((int)SelectedModuleType > (int)oldType), waitParameter)) {
var workspaceService = GetService<Services.IWorkspaceService>();
var resolver = GetService<IModuleTypesResolver>();
if(oldType != ModuleType.Unknown)
workspaceService.SaveWorkspace(resolver.GetName(oldType));
else
workspaceService.SetupDefaultWorkspace();
SelectedModule = GetModule(SelectedModuleType);
RaiseSelectedModuleTypeChanged();
if(SelectedModuleType != ModuleType.Unknown)
workspaceService.RestoreWorkspace(resolver.GetName(SelectedModuleType));
}
}
protected virtual void OnSelectedModuleChanged(object oldModule) {