public dynWorkspaceViewModel(dynWorkspaceModel model, DynamoViewModel vm) { _model = model; var nodesColl = new CollectionContainer { Collection = Nodes }; WorkspaceElements.Add(nodesColl); var connColl = new CollectionContainer { Collection = Connectors }; WorkspaceElements.Add(connColl); var notesColl = new CollectionContainer { Collection = Notes }; WorkspaceElements.Add(notesColl); //respond to collection changes on the model by creating new view models //currently, view models are added for notes and nodes //connector view models are added during connection _model.Nodes.CollectionChanged += Nodes_CollectionChanged; _model.Notes.CollectionChanged += Notes_CollectionChanged; _model.Connectors.CollectionChanged += Connectors_CollectionChanged; _model.PropertyChanged += ModelPropertyChanged; HideCommand = new DelegateCommand <object>(Hide, CanHide); CrossSelectCommand = new DelegateCommand <object>(CrossingSelect, CanCrossSelect); ContainSelectCommand = new DelegateCommand <object>(ContainSelect, CanContainSelect); SetCurrentOffsetCommand = new DelegateCommand <object>(SetCurrentOffset, CanSetCurrentOffset); NodeFromSelectionCommand = new DelegateCommand(CreateNodeFromSelection, CanCreateNodeFromSelection); SetZoomCommand = new DelegateCommand <object>(SetZoom, CanSetZoom); FindByIdCommand = new DelegateCommand <object>(FindById, CanFindById); AlignSelectedCommand = new DelegateCommand <string>(AlignSelected, CanAlignSelected); SelectAllCommand = new DelegateCommand(SelectAll, CanSelectAll); FindNodesFromSelectionCommand = new DelegateCommand(FindNodesFromSelection, CanFindNodesFromSelection); DynamoSelection.Instance.Selection.CollectionChanged += NodeFromSelectionCanExecuteChanged; // sync collections Nodes_CollectionChanged(null, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, _model.Nodes)); Connectors_CollectionChanged(null, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, _model.Connectors)); Notes_CollectionChanged(null, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, _model.Notes)); }
public WorkspaceViewModel(WorkspaceModel model, DynamoViewModel dynamoViewModel) { this.DynamoViewModel = dynamoViewModel; Model = model; stateMachine = new StateMachine(this); var nodesColl = new CollectionContainer { Collection = Nodes }; WorkspaceElements.Add(nodesColl); var connColl = new CollectionContainer { Collection = Connectors }; WorkspaceElements.Add(connColl); var notesColl = new CollectionContainer { Collection = Notes }; WorkspaceElements.Add(notesColl); var errorsColl = new CollectionContainer { Collection = Errors }; WorkspaceElements.Add(errorsColl); var annotationsColl = new CollectionContainer { Collection = Annotations }; WorkspaceElements.Add(annotationsColl); //respond to collection changes on the model by creating new view models //currently, view models are added for notes and nodes //connector view models are added during connection Model.NodeAdded += Model_NodeAdded; Model.NodeRemoved += Model_NodeRemoved; Model.NodesCleared += Model_NodesCleared; Model.NoteAdded += Model_NoteAdded; Model.NoteRemoved += Model_NoteRemoved; Model.NotesCleared += Model_NotesCleared; Model.AnnotationAdded += Model_AnnotationAdded; Model.AnnotationRemoved += Model_AnnotationRemoved; Model.AnnotationsCleared += Model_AnnotationsCleared; Model.ConnectorAdded += Connectors_ConnectorAdded; Model.ConnectorDeleted += Connectors_ConnectorDeleted; Model.PropertyChanged += ModelPropertyChanged; Model.PopulateJSONWorkspace += Model_PopulateJSONWorkspace; DynamoSelection.Instance.Selection.CollectionChanged += RefreshViewOnSelectionChange; DynamoViewModel.CopyCommand.CanExecuteChanged += CopyPasteChanged; DynamoViewModel.PasteCommand.CanExecuteChanged += CopyPasteChanged; // sync collections foreach (NodeModel node in Model.Nodes) { Model_NodeAdded(node); } foreach (NoteModel note in Model.Notes) { Model_NoteAdded(note); } foreach (AnnotationModel annotation in Model.Annotations) { Model_AnnotationAdded(annotation); } foreach (ConnectorModel connector in Model.Connectors) { Connectors_ConnectorAdded(connector); } InCanvasSearchViewModel = new SearchViewModel(DynamoViewModel); InCanvasSearchViewModel.Visible = true; }