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 RunSettingsViewModel(RunSettings settings, HomeWorkspaceViewModel workspaceViewModel, DynamoViewModel dynamoViewModel) { Model = settings; Model.PropertyChanged += Model_PropertyChanged; this.workspaceViewModel = workspaceViewModel; this.dynamoViewModel = dynamoViewModel; CancelRunCommand = new DelegateCommand(CancelRun, CanCancelRun); RunExpressionCommand = new DelegateCommand(RunExpression, CanRunExpression); RunTypeItems = new ObservableCollection<RunTypeItem>(); foreach (RunType val in Enum.GetValues(typeof(RunType))) { RunTypeItems.Add(new RunTypeItem(val)); } ToggleRunTypeEnabled(RunType.Periodic, false); }
private void WorkspaceAdded(WorkspaceModel item) { if (item is HomeWorkspaceModel) { var newVm = new HomeWorkspaceViewModel(item as HomeWorkspaceModel, this); workspaces.Insert(0, newVm); // The RunSettings control is a child of the DynamoView, // but has its DataContext set to the RunSettingsViewModel // on the HomeWorkspaceViewModel. When the home workspace is changed, // we need to raise a property change notification for the // homespace view model, so the RunSettingsControl's bindings // get updated. RaisePropertyChanged("HomeSpaceViewModel"); } else { var newVm = new WorkspaceViewModel(item, this); workspaces.Add(newVm); } }
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; }