Associating a popup menu with a symbol
Hi,
I would like some help on associating a popup menu with a symbol dragged from onto a diagram.
It can be with syncfusion popup control. (I guess that it wouldn''t be possible with .Net context menu component, right ?).
Anyway, depending on the symbol type I would like different options in the context menu.
When we have symbols of the same type the options in the context menu are the same but the setting choosen may be different. How can this state be saved for each symbol ?
Is there any component that helps doing this or we have to do it from scratch ?
Regards,
Jose Santos
SIGN IN To post a reply.
9 Replies
AD
Administrator
Syncfusion Team
September 22, 2004 07:33 PM UTC
Hi Jose,
Here is a sample that does what you are looking for. The main points are:
- There are 2 custom Symbols: Rectangle and Triangle. Take a look MySymbol.cs where the Custom symbols are implemented with ISerializable along with overrides for GetObjectData and OnDeserialization.
- In the Diagram''s MouseDown the Custom Symbol is selected when right-clicked.
- In the Diagram''s MouseUp event, menuitems are added to the ContextMenus based on the Symbol which is right clicked. The colors of the Symbol are changed based on the selection in the Context Menu.
- The Diagram can be saved by clicking on the Save Diagram Button and loaded by clicking on the Load Diagram Method.
Also take a look at the DynamicSymbol sample that demonstrates how custom properties of Symbols can be serialized.
Regards
Arun
JS
Jose Santos
September 23, 2004 07:11 AM UTC
Thanks, this is exactly what I was looking for.
I wasn''t expecting you to use context menu but your component.
I notice that you are adding and removing items to the context menu, I was expecting 2 context menus. It''s the same for the user, of course, but is this the usual way of working with context menus ?
Thanks again!
AD
Administrator
Syncfusion Team
September 23, 2004 04:19 PM UTC
Hi Jose
Yes, you can use the Syncfusion Popup Menus in your application. Also, you can use 2 context different menus, I was just demonstrating how you could go about implementing the features you were looking for.
Regards
Arun
AD
Administrator
Syncfusion Team
October 8, 2004 04:48 PM UTC
I add two events into your RectangleSymbol. Now you save the symbol and reload it. If you click on it, it will get error saying the this.rect is null. It look like we need to add code to get the this.rect when it is deserializing.
Any idea?
protected override void OnMouseEnter(NodeMouseEventArgs evtArgs)
{
// TODO: Add ConditionSysbol.OnMouseEnter implementation
this.rect.FillStyle.Color = System.Drawing.Color.AntiqueWhite;
}
protected override void OnMouseLeave(NodeMouseEventArgs evtArgs)
{
// TODO: Add ConditionSysbol.OnMouseLeave implementation
this.rect.FillStyle.Color = System.Drawing.Color.AliceBlue;
}
>Hi Jose,
>
>Here is a sample that does what you are looking for. The main points are:
>
>- There are 2 custom Symbols: Rectangle and Triangle. Take a look MySymbol.cs where the Custom symbols are implemented with ISerializable along with overrides for GetObjectData and OnDeserialization.
>- In the Diagram''s MouseDown the Custom Symbol is selected when right-clicked.
>- In the Diagram''s MouseUp event, menuitems are added to the ContextMenus based on the Symbol which is right clicked. The colors of the Symbol are changed based on the selection in the Context Menu.
>- The Diagram can be saved by clicking on the Save Diagram Button and loaded by clicking on the Load Diagram Method.
>
>Also take a look at the DynamicSymbol sample that demonstrates how custom properties of Symbols can be serialized.
>
>Regards
>Arun
AD
Administrator
Syncfusion Team
October 8, 2004 05:59 PM UTC
Hi
Yes, you need to add references to the child objects of RectangleSymbol during deserialization. This modified code should address this issue:
protected override void OnDeserialization(object sender)
{
base.OnDeserialization(sender);
// Get references to the child objects
this.rect = this.GetChildByName("Rectangle") as Syncfusion.Windows.Forms.Diagram.Rectangle;
}
Regards
Arun
AD
Administrator
Syncfusion Team
October 10, 2004 12:16 PM UTC
Thank you for help. It works.
One more question, How can I serialize a property
in the symbol.
E.g I have "Description" property like following code.
After I deserialized, the mDescription is always null. How can I get the "Description" in the deserialization?
TIA!
private string mDescription;
public string Description
{
set
{
mDescription=value;
ResetText();
}
get {return mDescription;}
}
>Hi
>
>Yes, you need to add references to the child objects of RectangleSymbol during deserialization. This modified code should address this issue:
>
>protected override void OnDeserialization(object sender)
>{
> base.OnDeserialization(sender);
>
> // Get references to the child objects
> this.rect = this.GetChildByName("Rectangle") as Syncfusion.Windows.Forms.Diagram.Rectangle;
>}
>
>Regards
>Arun
AD
Administrator
Syncfusion Team
October 11, 2004 10:08 AM UTC
Hi
Take a look at the MySymbol.cs file in the DynamicSymbol sample. It demonstrates what you are looking for.
Regards
Arun
AL
Allen
December 18, 2017 04:29 PM UTC
Could you have this sample code in VB.Net 3.5 ?
NG
Naganathan Ganesh Babu
Syncfusion Team
December 19, 2017 08:35 AM UTC
Hi Jose,
Could you please let us know which versions of Syncfusion Essential studio diagram control currently you are using? It will be helpful for us to create and provide the sample at your version.
Regards,
Naganathan K G
SIGN IN To post a reply.
- 9 Replies
- 4 Participants
-
JS Jose Santos
- Sep 21, 2004 01:08 PM UTC
- Dec 19, 2017 08:35 AM UTC