public VisualScriptEditorViewModel(IVisualScriptViewModelService visualScriptViewModelService, VisualScriptViewModel visualScript) : base(visualScript) { // Create the service needed to manage observable view models ViewModelService = new GraphViewModelService(Session.AssetNodeContainer); // Update the service provider of this view model to contains the ObservableViewModelService we created. ServiceProvider = new ViewModelServiceProvider(ServiceProvider, ViewModelService.Yield()); VisualScriptViewModelService = visualScriptViewModelService; blockTemplateDescriptionCollection = new Lazy <BlockTemplateDescriptionCollectionViewModel>(() => new BlockTemplateDescriptionCollectionViewModel(this)); AddNewPropertyCommand = new AnonymousCommand(ServiceProvider, AddNewProperty); RemoveSelectedPropertiesCommand = new AnonymousCommand(ServiceProvider, RemoveSelectedProperties); //ShowAddBlockDialogCommand = new AnonymousTaskCommand(ServiceProvider, ShowAddBlockDialog); AddNewMethodCommand = new AnonymousCommand(ServiceProvider, AddNewMethod); RemoveSelectedMethodCommand = new AnonymousCommand(ServiceProvider, RemoveSelectedFunction); var rootNode = Session.AssetNodeContainer.GetNode(visualScript.Asset); baseTypeNodeBinding = new MemberGraphNodeBinding <string>(rootNode[nameof(VisualScriptAsset.BaseType)], nameof(BaseType), OnPropertyChanging, OnPropertyChanged, visualScript.UndoRedoService); propertiesNode = rootNode[nameof(VisualScriptAsset.Properties)]; }
public GraphicsCompositorEditorViewModel([NotNull] GraphicsCompositorViewModel graphicsCompositor) : base(graphicsCompositor) { // Create the service needed to manage observable view models ViewModelService = new GraphViewModelService(Session.AssetNodeContainer); // Update the service provider of this view model to contains the ObservableViewModelService we created. ServiceProvider = new ViewModelServiceProvider(ServiceProvider, ViewModelService.Yield()); // Get some quantum nodes graphicsCompositorNode = Session.AssetNodeContainer.GetNode(graphicsCompositor.Asset); renderStagesNode = graphicsCompositorNode[nameof(GraphicsCompositorAsset.RenderStages)].Target; renderFeaturesNode = graphicsCompositorNode[nameof(GraphicsCompositorAsset.RenderFeatures)].Target; cameraSlotsNode = graphicsCompositorNode[nameof(GraphicsCompositorAsset.Cameras)].Target; sharedRenderersNode = graphicsCompositorNode[nameof(GraphicsCompositorAsset.SharedRenderers)].Target; // Setup commands DeleteSelectionCommand = new AnonymousCommand(ServiceProvider, DeleteSelection); AddNewRenderStageCommand = new AnonymousCommand(ServiceProvider, AddNewRenderStage); RemoveSelectedRenderStagesCommand = new AnonymousCommand(ServiceProvider, RemoveSelectedRenderStages); AddNewRenderFeatureCommand = new AnonymousCommand <AbstractNodeType>(ServiceProvider, AddNewRenderFeature); RemoveSelectedRenderFeaturesCommand = new AnonymousCommand(ServiceProvider, RemoveSelectedRenderFeatures); AddNewCameraSlotCommand = new AnonymousCommand(ServiceProvider, AddNewCameraSlot); RemoveSelectedCameraSlotsCommand = new AnonymousCommand(ServiceProvider, RemoveSelectedCameraSlots); }
public TestContainerContext() { NodeContainer = new NodeContainer(); GraphViewModelService = new GraphViewModelService(NodeContainer); ServiceProvider = new ViewModelServiceProvider(); ServiceProvider.RegisterService(new DispatcherService(Dispatcher.CurrentDispatcher)); ServiceProvider.RegisterService(GraphViewModelService); }
public ModelAssetTemplateWindow() { var viewModelService = new GraphViewModelService(SessionViewModel.Instance.AssetNodeContainer); var services = new ViewModelServiceProvider(SessionViewModel.Instance.ServiceProvider, viewModelService.Yield()); Parameters = new ImportModelFromFileViewModel(services); InitializeComponent(); }
/// <summary> /// Initializes a new instance of the <see cref="PropertiesViewModel"/> class. /// </summary> /// <param name="serviceProvider">The view model service provider to use.</param> /// <param name="nodeContainer"> /// The <see cref="Core.Quantum.NodeContainer"/> containing the nodes used to access object /// properties. /// </param> protected PropertiesViewModel([NotNull] IViewModelServiceProvider serviceProvider, [NotNull] NodeContainer nodeContainer) : base(serviceProvider) { if (nodeContainer is null) { throw new ArgumentNullException(nameof(nodeContainer)); } NodeContainer = nodeContainer; // Create the service needed to manage graph view models ViewModelService = new GraphViewModelService(nodeContainer); // Update the service provider of this view model to contains the GraphViewModelService we created ServiceProvider = new ViewModelServiceProvider(serviceProvider, ViewModelService.Yield()); RegisterNodePresenterCommand(new CreateNewInstanceCommand()); RegisterNodePresenterCommand(new AddNewItemCommand()); RegisterNodePresenterCommand(new AddPrimitiveKeyCommand()); RegisterNodePresenterCommand(new RemoveItemCommand()); RegisterNodePresenterCommand(new RenameStringKeyCommand()); RegisterNodePresenterCommand(new MoveItemCommand()); RegisterNodePresenterCommand(new FlagEnumSelectAllCommand()); RegisterNodePresenterCommand(new FlagEnumSelectNoneCommand()); RegisterNodePresenterCommand(new FlagEnumSelectInvertCommand()); RegisterNodePresenterUpdater(new AbstractNodeEntryNodeUpdater()); RegisterNodePresenterUpdater(new CategoryNodeUpdater()); RegisterNodePresenterUpdater(new CollectionPropertyNodeUpdater()); RegisterNodePresenterUpdater(new DisplayAttributeNodeUpdater()); RegisterNodePresenterUpdater(new MathematicsNodeUpdater()); RegisterNodePresenterUpdater(new NumericValueNodeUpdater()); RegisterNodePresenterUpdater(new UPathNodeUpdater()); RegisterNodePresenterUpdater(new DictionaryNodeUpdater()); // NOTE: Try to keep InlineMemberNodeUpdater last since it's transfering some metadata generated by previous updater between nodes RegisterNodePresenterUpdater(new InlineMemberNodeUpdater()); }