private void PasteNewNodes(string rawData)
        {
            SGraph graph = GraphSerializer.DeserializeSGraph(rawData);

            GenerateNewNodeIds(graph);
            UpdateNodesPosition(graph);

            foreach (var node in graph.Nodes)
            {
                _graphView.Graph.AddNode(node);
            }

            foreach (var connection in graph.Connections)
            {
                _graphView.Graph.AddConnection(connection);
            }
        }
Ejemplo n.º 2
0
        public void SetGraph(SGraph sGraph)
        {
            if (_sGraph != null)
            {
                _sGraph.OnCustomSettingsChanged -= OnCustomSettingsChanged;
                _sGraph.GraphChanged            -= OnGraphChanged;
            }

            _sGraph = sGraph;

            GraphModel = new GraphModel(sGraph.GraphType)
            {
                CustomSettings = _sGraph.CustomSettings
            };

            sGraph.AddContentsToGraph(GraphModel);
            sGraph.GraphChanged            += OnGraphChanged;
            sGraph.OnCustomSettingsChanged += OnCustomSettingsChanged;
        }
        private SGraph CreateGraphToSerialize(IEnumerable <BaseNodeView> nodes, IEnumerable <BaseConnectionView> connections)
        {
            var sgraph = new SGraph {
                Type = _graphView.Graph.Type
            };

            foreach (var nodeModel in nodes)
            {
                SNode sNode = nodeModel.Node;
                sNode.Position = nodeModel.localBound.min;
                sgraph.AddNode(sNode);
            }

            foreach (var connectionModel in connections)
            {
                sgraph.AddConnection(connectionModel.Connection);
            }

            return(sgraph);
        }
Ejemplo n.º 4
0
 public static void AddContentsToGraph(this SGraph graph, GraphModel graphModel, List <SConnection> brokenConnections = null)
 {
     graphModel.AddNodes(graph.Nodes);
     graphModel.AddConnections(graph.Connections, brokenConnections);
 }
 public static IEnumerable <SConnection> GetConnections(this SGraph graph, SPort port)
 {
     return(graph.Connections.Where(connection => (connection.FromPortId == port.Id && connection.FromNodeId == port.NodeId) ||
                                    (connection.ToPortId == port.Id && connection.ToNodeId == port.NodeId)));
 }