protected DynamoViewModel(StartConfiguration startConfiguration) { this.ShowLogin = startConfiguration.ShowLogin; // initialize core data structures this.model = startConfiguration.DynamoModel; this.model.CommandStarting += OnModelCommandStarting; this.model.CommandCompleted += OnModelCommandCompleted; UsageReportingManager.Instance.InitializeCore(this); this.WatchHandler = startConfiguration.WatchHandler; var pmExtension = model.GetPackageManagerExtension(); this.PackageManagerClientViewModel = new PackageManagerClientViewModel(this, pmExtension.PackageManagerClient); this.SearchViewModel = new SearchViewModel(this); // Start page should not show up during test mode. this.ShowStartPage = !DynamoModel.IsTestMode; this.BrandingResourceProvider = startConfiguration.BrandingResourceProvider ?? new DefaultBrandingResourceProvider(); // commands should be initialized before adding any WorkspaceViewModel InitializeDelegateCommands(); //add the initial workspace and register for future //updates to the workspaces collection var homespaceViewModel = new HomeWorkspaceViewModel(model.CurrentWorkspace as HomeWorkspaceModel, this); workspaces.Add(homespaceViewModel); currentWorkspaceViewModel = homespaceViewModel; model.WorkspaceAdded += WorkspaceAdded; model.WorkspaceRemoved += WorkspaceRemoved; SubscribeModelCleaningUpEvent(); SubscribeModelUiEvents(); SubscribeModelChangedHandlers(); SubscribeUpdateManagerHandlers(); InitializeAutomationSettings(startConfiguration.CommandFilePath); SubscribeLoggerHandlers(); DynamoSelection.Instance.Selection.CollectionChanged += SelectionOnCollectionChanged; InitializeRecentFiles(); UsageReportingManager.Instance.PropertyChanged += CollectInfoManager_PropertyChanged; WatchIsResizable = false; SubscribeDispatcherHandlers(); RenderPackageFactoryViewModel = new RenderPackageFactoryViewModel(Model.PreferenceSettings); RenderPackageFactoryViewModel.PropertyChanged += RenderPackageFactoryViewModel_PropertyChanged; BackgroundPreviewViewModel = startConfiguration.Watch3DViewModel; BackgroundPreviewViewModel.PropertyChanged += Watch3DViewModelPropertyChanged; RegisterWatch3DViewModel(BackgroundPreviewViewModel, RenderPackageFactoryViewModel.Factory); }
public static DynamoViewModel Start(StartConfiguration startConfiguration = new StartConfiguration()) { if(startConfiguration.DynamoModel == null) startConfiguration.DynamoModel = DynamoModel.Start(); if(startConfiguration.WatchHandler == null) startConfiguration.WatchHandler = new DefaultWatchHandler(startConfiguration.DynamoModel.PreferenceSettings); if (startConfiguration.Watch3DViewModel == null) { startConfiguration.Watch3DViewModel = HelixWatch3DViewModel.TryCreateHelixWatch3DViewModel( new Watch3DViewModelStartupParams(startConfiguration.DynamoModel), startConfiguration.DynamoModel.Logger); } return new DynamoViewModel(startConfiguration); }
public static DynamoViewModel Start(StartConfiguration startConfiguration = new StartConfiguration()) { if(startConfiguration.DynamoModel == null) startConfiguration.DynamoModel = DynamoModel.Start(); if(startConfiguration.WatchHandler == null) startConfiguration.WatchHandler = new DefaultWatchHandler(startConfiguration.DynamoModel.PreferenceSettings); return new DynamoViewModel(startConfiguration); }
public static DynamoViewModel Start(StartConfiguration startConfiguration) { var model = startConfiguration.DynamoModel ?? DynamoModel.Start(); var vizManager = startConfiguration.VisualizationManager ?? new VisualizationManager(model); var watchHandler = startConfiguration.WatchHandler ?? new DefaultWatchHandler(vizManager, model.PreferenceSettings); return new DynamoViewModel(model, watchHandler, vizManager, startConfiguration.CommandFilePath); }
protected DynamoViewModel(StartConfiguration startConfiguration) { this.ShowLogin = startConfiguration.ShowLogin; // initialize core data structures this.model = startConfiguration.DynamoModel; this.model.CommandStarting += OnModelCommandStarting; this.model.CommandCompleted += OnModelCommandCompleted; UsageReportingManager.Instance.InitializeCore(this); this.WatchHandler = startConfiguration.WatchHandler; var pmExtension = model.GetPackageManagerExtension(); this.PackageManagerClientViewModel = new PackageManagerClientViewModel(this, pmExtension.PackageManagerClient); this.SearchViewModel = new SearchViewModel(this); // Start page should not show up during test mode. this.ShowStartPage = !DynamoModel.IsTestMode; this.BrandingResourceProvider = startConfiguration.BrandingResourceProvider ?? new DefaultBrandingResourceProvider(); //add the initial workspace and register for future //updates to the workspaces collection var homespaceViewModel = new HomeWorkspaceViewModel(model.CurrentWorkspace as HomeWorkspaceModel, this); workspaces.Add(homespaceViewModel); currentWorkspaceViewModel = homespaceViewModel; model.WorkspaceAdded += WorkspaceAdded; model.WorkspaceRemoved += WorkspaceRemoved; SubscribeModelCleaningUpEvent(); SubscribeModelUiEvents(); SubscribeModelChangedHandlers(); SubscribeUpdateManagerHandlers(); InitializeAutomationSettings(startConfiguration.CommandFilePath); InitializeDelegateCommands(); SubscribeLoggerHandlers(); DynamoSelection.Instance.Selection.CollectionChanged += SelectionOnCollectionChanged; InitializeRecentFiles(); UsageReportingManager.Instance.PropertyChanged += CollectInfoManager_PropertyChanged; WatchIsResizable = false; SubscribeDispatcherHandlers(); RenderPackageFactoryViewModel = new RenderPackageFactoryViewModel(Model.PreferenceSettings); RenderPackageFactoryViewModel.PropertyChanged += RenderPackageFactoryViewModel_PropertyChanged; var backgroundPreviewParams = new Watch3DViewModelStartupParams(Model, this, Resources.BackgroundPreviewName); // TODO: http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-8736 Watch3DViewModelBase watch3DViewModel; try { watch3DViewModel = HelixWatch3DViewModel.Start(backgroundPreviewParams); } catch (Exception ex) { Model.Logger.Log(ex.Message); Model.Logger.Log("Failed to create Watch3DViewModel. Creating base view model."); watch3DViewModel = Watch3DViewModelBase.Start(backgroundPreviewParams); } BackgroundPreviewViewModel = watch3DViewModel; Watch3DViewModels.Add(watch3DViewModel); watch3DViewModel.PropertyChanged += Watch3DViewModelPropertyChanged; }