BoldDeskWe are launching BoldDesk on Product Hunt soon. Learn more & follow us.
Good day
I want to create a program where the user can build the diagram by dragging the shapes from paletteview. To this level, I used the symbol designer. And the user can build the diagram.
However, I want to do calculations based on the diagram which was built by the user. Therefore, I want to know how to do the following:
1. When the user drag the same symbol from the palette to the diagram more than one time, how can I define those symbols differently?
2. How can I get which symbol is connected to whom? And how to identify which link is entering or leaving the symbol?
3. From question number 2, I want to make relations between symbols. Who can I do this? For example, I want a certain property (in propertybag) to be equal. Or for a certain property, the sum of property of entering links equal to the sum of property of the leaving links. How to do this?
I’m using Visual studio Ultimate 2012. Please I need the code in VB to implement it easily.
Thanks and Regards
Malik
Hi Malik,
Thanks for your interest in Syncfusion products.
1. When the user drag the same symbol from the palette to the diagram more than one time, how can I define those symbols differently? |
We suggest you to use the Diagram’s ‘DragDrop/Model.Eventsink.NodeCollectionChanged’ changed events to check whether the dropped node is present already on the diagram.
Here is the code: [VB] Private Sub diagram1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Dim dataObj As IDataObject = e.Data If dataObj.GetDataPresent(GetType(DragDropData)) Then Dim dragDropData As DragDropData = CType(dataObj.GetData(GetType(DragDropData)), DragDropData) Dim node As Node = dragDropData.Nodes(0) If Not(addedNodes.Contains(node.Name)) Then addedNodes.Add(node.Name, node) Else MessageBox.Show("Node already present in diagram") dragDropData.Nodes.Clear() End If End If End Sub |
2. How can I get which symbol is connected to whom? And how to identify which link is entering or leaving the symbol?
3. From question number 2, I want to make relations between symbols. Who can I do this? For example, I want a certain property (in propertybag) to be equal. Or for a certain property, the sum of property of entering links equal to the sum of property of the leaving links. How to do this? |
We suggest you to use the Node’s ‘Edges, EdgesEntering and EdgesLeaving’ properties to get the connections connected to a node and use the connector’s ‘FromNode and ToNode’ properties to get the nodes connected to that connector.
Here is the code: [VB]
If diagram1.View.SelectionList.Count > 0 Then For Each node As Node In diagram1.View.SelectionList If TypeOf node Is ConnectorBase Then Dim conn As ConnectorBase = TryCast(node, ConnectorBase) listBox1.Items.Add("Connector: " & conn.Name) If conn.FromNode IsNot Nothing Then listBox1.Items.Add("ParentNode: " & (CType(conn.FromNode, Node)).Name) End If If conn.ToNode IsNot Nothing Then listBox1.Items.Add("ChildNode: " & (CType(conn.ToNode, Node)).Name) End If Else listBox1.Items.Add("Edges: " & node.Edges.Count.ToString()) listBox1.Items.Add("EdgesEntering: " & node.EdgesEntering.Count.ToString()) listBox1.Items.Add("EdgesLeaving: " & node.EdgesLeaving.Count.ToString()) End If Next node End If |
Please try the attached sample and let us know if you have any queries.
Regards,
Amsath Ali. M