Custom validation of a connection

Hi,

When trying to connect incompatible connection points (such as two outputs - ConnectionPointType.Outgoing), the cursor changes to the 'no' (prohibiting) sign. That is great.
But how do I add additional conditions to this validation. For instance, how do I show a 'no' cursor when the user tries to connect the central connection point of a circle to that of a square (with ConnectionPointType.IncomingOutgoing)?

Many thanks,
Johan

1 Reply

NG Naganathan Ganesh Babu Syncfusion Team July 23, 2015 09:50 AM UTC

Hi Johan,
 
Thanks for using Syncfusion Products.
 
We have created simple sample to achieve your requirement. We suggest you to use Diagram.Controller.ActiveTool’s “ActionCursor” property to set the Cursors.No in order to achieve your requirement. Please refer the below code snippet and sample for your reference.
 
Here is the code snippet:
[C#]


diagram2.MouseMove += diagram2_MouseMove;

diagram2.MouseDown += diagram2_MouseDown;
diagram2.MouseUp += diagram2_MouseUp;

void diagram2_MouseUp(object sender, MouseEventArgs e)

{

      handle = null;

      diagram2.Controller.ActiveTool.ActionCursor = Cursors.Default;

}

void diagram2_MouseDown(object sender, MouseEventArgs e)

{

   HandlesHitTesting.GetEndPointAtPoint(diagram2.Model.Nodes, e.Location, ref handle);

}

void diagram2_MouseMove(object sender, MouseEventArgs e)

{

   if (handle != null)

   {

    Node node = diagram2.Controller.GetNodeAtPoint(e.Location);

    if (node != null && !(node is ConnectorBase) && (node is Ellipse) && node.CentralPort.ConnectionPointType == ConnectionPointType.IncomingOutgoing)

     {

       diagram2.Controller.ActiveTool.ActionCursor = Cursors.No;

     }

    else

     {

       diagram2.Controller.ActiveTool.ActionCursor = Cursors.Cross;

     }

   }               
}

 
Here is the sample:
Sample
 
Please let us know if any concerns.
 
Regards,
 
Naganathan K G


Loader.
Up arrow icon