We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Can we create all dynamic symbol using one class only??

Hello, my requirement is to create all the symbols dynammically based on the parameter i got runtime. Like type of symbol, no of input ports, no of output ports etc. so i dont know how many symbols may required. but current architecture of syncfusion dont alow this, because it require a seperate class for each and ever symbol and whole logic of drawing should be written into class constructor. Again when you want to add these symbols to symbol pallet then you have to specify each and every class and its assambly name, thats look very odd way. Can''t i do this using a single class and just based on the parameter i pass runtime, it will create required shape and then can be added to symbol pallet using single class only. Or is there any other alternative way?? /Ratan

7 Replies

AD Administrator Syncfusion Team September 15, 2005 08:07 PM UTC

Hi Ratan, You can do this by using your dynamically sourced data to define a SymbolModel that adequately describes the Symbol. The SymbolModel that you create can retain the default null values for the PlugIn Assembly/Class members, but should have its AutoHidePorts, CenterPortsEnabled, Labels and Layers properties suitably initialized to represent the Symbol that will be instantiated. While most of these properties are self-explanatory, it is the Layers collection that is particularly important and to the default 0 layer to which you will create and add instances of the child nodes that you want the symbol to be composed of. The shapes, ports, textnodes etc., that will make up the symbol will be added to the SymbolModel''s default layer accessible through the SymbolModel.Layers[0] indexer. Once you have the SymbolModel suitably initialized you can directly add it the PaletteGroupView control, where it can be used for creating symbols. Please let me know if you have trouble with the implementation. Thanks, Prakash Surendra Syncfusion Inc.,


RA Ratan September 16, 2005 06:45 AM UTC

Sorry i am not able to understand.. ok i give you the example.. currently i creating the symbols like this.. public class MySymbol1 : Symbol { private Rectangle outerRect = null; public MySymbol1() { this.outerRect = new Rectangle(0,0,80, 180); this.outerRect.Name = "Symbol1"; this.outerRect.FillStyle.Color = Color.Cyan; this.AppendChild(outerRect); } } public class MySymbol2 : Symbol { private Rectangle outerRect = null; public MySymbol2() { this.outerRect = new Rectangle(0, 0, 50, 150); this.outerRect.Name = "Symbol2"; this.outerRect.FillStyle.Color = Color.Red; this.AppendChild(outerRect); } } Now to add these two symbols into symbol pallet SymbolPalette mypalette = new SymbolPalette(); SymbolModel MySymbolModel1 = new SymbolModel(); MySymbolModel1 = mypalette.AddSymbol("MySymbol1"); MySymbolModel1.PlugInAssembly = "TestSync"; MySymbolModel1.PlugInClass = "TestSync.MySymbol1"; SymbolModel MySymbolModel2 = new SymbolModel(); MySymbolModel2 = mypalette.AddSymbol("MySymbol2"); MySymbolModel2.PlugInAssembly = "TestSync"; MySymbolModel2.PlugInClass = "TestSync.MySymbol2"; this.paletteGroupBar1.AddPalette(mypalette); Ok here is the problem now... if you know how many symbols u need then the above solution works fine but in my case i m getting data dynamically and no of shapes also. So cant create that no of class run time and then again adding the same to the symbol pallet because there also u need to specify PlugInClass for each symbol. I need some kind of solution where i just use only one class irrespective of the no of symbols and pass the shape type, its width, height etc at run time and then PlugInClass that class to my symbol model. I hope you got the idea of my prob and will suggest me some kind of solution, if possible then give one example. /Ratan


AD Administrator Syncfusion Team September 19, 2005 10:01 PM UTC

Hello Ratan, SymbolModels serve as the design-time representation of Symbols, and can be used for creating new instances of a symbol. Thus using your runtime data to synthesize SymbolModels that best represent the Symbol that you want to create, will let you implement the equivalent of a symbol factory for each symbol type. We will try to provide you with the implementation for a SymbolModel representing a simple Symbol class. This should help clear things up a bit. Regards, Prakash Surendra Syncfusion Inc.,


RA Ratan September 20, 2005 06:08 AM UTC

thx for reply but but i still did''t got what i want.. my simple requirement is, Can i use only one class to create all the dynamic symbols instead of one class per symbol??


AD Administrator Syncfusion Team September 20, 2005 02:20 PM UTC

Hi Ratan, Yes, I understand your requirement. This can be done, and my previous posts point out exactly how to go about it. To create custom Symbol types at runtime, you will have to generate a SymbolModel for each of the Symbol types that your application requires. We will try to provide a SymbolModel definition for a simple Symbol class within the next few days. This sample will make it clearer for you as to how you would go about the implementation required for generating the different SymbolModels at runtime based on your data. Thanks, Prakash Surendra Syncfusion Inc.,


AD Administrator Syncfusion Team October 4, 2005 07:53 PM UTC

Hello Ratan, My apologies for the delay in getting back to you on this issue. The attached sample shows how to synthesize SymbolModels programmatically for creating different types of Symbols on the fly. You can select a combination of shapes from the provided comboboxes, and the sample will generate a SymbolModel for a Symbol composed of the selected shapes and add it to the SymbolPalette. This should help get you started on the approach required for creating Symbol types based on dynamically sourced descriptors. The SymbolFactory sample will ship with future versions of the product. Thanks, Prakash Surendra Syncfusion Inc., SymbolFactory_3250.zip


RA Ratan October 7, 2005 10:18 AM UTC

thx a lot boss.

Loader.
Live Chat Icon For mobile
Up arrow icon