private void UpdateNodeCore( ModelNodeId nodeId, [NotNull] Func <IDiagramNode, IDiagramNode> nodeMutatorFunc, DiagramNodeMember updatedMember) { if (!_nodes.ContainsKey(nodeId)) { return; } var oldNode = _nodes[nodeId]; var newNode = nodeMutatorFunc(oldNode); _nodes[newNode.Id] = newNode; _shapeEvents.Add(new DiagramNodeChangedEvent(oldNode, newNode, updatedMember)); if (updatedMember.In(ParentNodeChildrenAreaSizeAffectingMembers)) { UpdateParentNodeChildrenAreaSize(newNode); } if (updatedMember.In(AbsolutePositionAffectingMembers)) { UpdateAbsolutePosition(newNode); } if (updatedMember.In(ChildrenAbsolutePositionAffectingMembers)) { UpdateChildrenAbsolutePosition(newNode); } }
public DiagramNodeChangedEvent( [NotNull] IDiagramNode oldNode, [NotNull] IDiagramNode newNode, DiagramNodeMember changedMember) { OldNode = oldNode; NewNode = newNode; ChangedMember = changedMember; }