private void OnModelChanged(ModelEventBase modelEvent)
        {
            DiagramService.UpdateModel(modelEvent.NewModel);

            switch (modelEvent)
            {
            case ModelNodeUpdatedEvent modelNodeUpdatedEvent:
                DiagramService.UpdateModelNode(modelNodeUpdatedEvent.NewNode);
                break;

            case ModelNodeRemovedEvent modelNodeRemovedEvent:
                var removedNode = modelNodeRemovedEvent.RemovedNode;
                DiagramService.RemoveNode(removedNode.Id);
                break;

            case ModelRelationshipAddedEvent modelRelationshipAddedEvent:
                var addedRelationship = modelRelationshipAddedEvent.AddedRelationship;
                ShowModelRelationshipIfBothEndsAreVisible(addedRelationship, DiagramService.LatestDiagram);
                break;

            case ModelRelationshipRemovedEvent modelRelationshipRemovedEvent:
                var modelRelationship = modelRelationshipRemovedEvent.RemovedRelationship;
                DiagramService.RemoveConnector(modelRelationship.Id);
                break;

            case ModelClearedEvent _:
                DiagramService.ClearDiagram();
                break;
            }
        }
示例#2
0
        private void ProcessModelItemEvent(ModelItemEventBase modelItemEvent)
        {
            switch (modelItemEvent)
            {
            case ModelNodeUpdatedEvent modelNodeUpdated:
                var updatedNode = modelNodeUpdated.NewNode;
                DiagramService.UpdateModelNode(updatedNode);
                break;

            case ModelNodeRemovedEvent modelNodeRemovedEvent:
                var removedNode = modelNodeRemovedEvent.RemovedNode;
                DiagramService.RemoveNode(removedNode.Id);
                break;

            case ModelRelationshipAddedEvent modelRelationshipAddedEvent:
                var addedRelationship = modelRelationshipAddedEvent.AddedRelationship;
                ShowModelRelationshipIfBothEndsAreVisible(addedRelationship, DiagramService.LatestDiagram);
                break;

            case ModelRelationshipRemovedEvent modelRelationshipRemovedEvent:
                var modelRelationship = modelRelationshipRemovedEvent.RemovedRelationship;
                DiagramService.RemoveConnector(modelRelationship.Id);
                break;
            }
        }