Esempio n. 1
0
 public override bool Remove(GoObject obj)
 {
     if (obj.IsAnImplementationOf <IBaseNode>() && DiagramModel != null)
     {
         DiagramModel.RemoveNodeId(obj as IBaseNode);
     }
     return(base.Remove(obj));
 }
Esempio n. 2
0
        public override void Add(GoObject obj)
        {
            if (obj == null)
            {
                return;
            }
            base.Add(obj);

            //DiagramModel is null in deserialization process therefore fill DiagramModel._nodes in DiagramSerializer.XmlDocumentToModel
            if (obj.IsAnImplementationOf <IBaseNode>() && DiagramModel != null)
            {
                DiagramModel.AddNodeId(obj as IBaseNode);
            }
        }
Esempio n. 3
0
        public IDiagramModel CreateCopy(string containerId = null)
        {
            IContainerBase source = null;

            if (String.IsNullOrEmpty(containerId))
            {
                source = this;
            }
            else if (_nodes.Contains(containerId))
            {
                source = GetNode <IContainerNode>(containerId);
            }

            // cannot create copy for other
            if (source == null)
            {
                return(null);
            }


            var diagramModel = new DiagramModel {
                DiagramOptions = DiagramOptions
            };
            var goCollection = new GoCollection {
                source as GoNode
            };

            var copy = diagramModel.CopyFromCollection(goCollection);

            // _nodes is empty - overridden Add method seems not to be used in CopyFromCollection
            foreach (var node in diagramModel.GetAllChildren <IBaseNode>())
            {
                diagramModel.AddNodeId(node);
            }

            return(diagramModel);
        }