/// <summary> /// Loads a symbol palette from a resource file. /// </summary> /// <param name="assembly">Assembly containing the symbol palette</param> /// <param name="baseName">Base name of resource</param> /// <param name="resName">Name of resource</param> /// <returns>true if successful; otherwise false</returns> /// <remarks> /// <seealso cref="Syncfusion.Windows.Forms.Diagram.SymbolPalette"/> /// </remarks> public bool LoadPalette(System.Reflection.Assembly assembly, string baseName, string resName) { bool success = false; SymbolPalette palette = null; System.Resources.ResourceManager resMgr = new System.Resources.ResourceManager(baseName, assembly); object resObj = resMgr.GetObject(resName); if (resObj != null && resObj.GetType() == typeof(byte[])) { System.IO.MemoryStream strmRes = new MemoryStream((byte[])resObj); BinaryFormatter formatter = new BinaryFormatter(); try { System.AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(DiagramAssembly.AssemblyResolver); palette = (SymbolPalette)formatter.Deserialize(strmRes); } finally { strmRes.Close(); System.AppDomain.CurrentDomain.AssemblyResolve -= new ResolveEventHandler(DiagramAssembly.AssemblyResolver); } if (palette != null) { success = this.LoadPalette(palette); } } return(success); }
/// <summary> /// Loads a symbol palette from memory. /// </summary> /// <param name="strmData">Array of bytes containing serialized symbol palette</param> /// <returns>true if successful; otherwise false</returns> /// <remarks> /// <seealso cref="Syncfusion.Windows.Forms.Diagram.SymbolPalette"/> /// </remarks> public bool LoadPalette(byte[] strmData) { bool success = false; SymbolPalette palette = null; System.IO.MemoryStream strmRes = new MemoryStream((byte[])strmData); BinaryFormatter formatter = new BinaryFormatter(); try { System.AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(DiagramAssembly.AssemblyResolver); palette = (SymbolPalette)formatter.Deserialize(strmRes); } finally { strmRes.Close(); System.AppDomain.CurrentDomain.AssemblyResolve -= new ResolveEventHandler(DiagramAssembly.AssemblyResolver); } if (palette != null) { success = this.LoadPalette(palette); } return(success); }
/// <summary> /// Loads a symbol palette from a file. /// </summary> /// <param name="filename">Name of file to load</param> /// <returns>true if successful; otherwise false</returns> /// <remarks> /// Deserializes a symbol palette from disk and loads it into this /// control. /// <seealso cref="Syncfusion.Windows.Forms.Diagram.SymbolPalette"/> /// </remarks> public bool LoadPalette(string filename) { bool success = false; SymbolPalette palette = null; FileStream iStream = null; if (File.Exists(filename)) { try { System.AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(DiagramAssembly.AssemblyResolver); iStream = new FileStream(filename, FileMode.Open, FileAccess.Read); SoapFormatter formatter = new SoapFormatter(); palette = (SymbolPalette)formatter.Deserialize(iStream); } catch (Exception ex) { MessageBox.Show(ex.Message); success = false; palette = null; } finally { iStream.Close(); System.AppDomain.CurrentDomain.AssemblyResolve -= new ResolveEventHandler(DiagramAssembly.AssemblyResolver); } } if (palette != null) { success = this.LoadPalette(palette); } return(success); }
private void LoadPalette() { SymbolPalette pal = new SymbolPalette(); pal.Name = "ControlNodes"; ButtonAdv btn = new ButtonAdv(); btn.Text = @"Button Node"; btn.UseVisualStyle = true; btn.UseVisualStyleBackColor = true; btn.Office2007ColorScheme = Office2007Theme.Blue; btn.Appearance = ButtonAppearance.Office2007; ControlNode ctrlnode = new ControlNode(btn, new RectangleF(100, 100, 125, 50)); ctrlnode.Name = "Button Node"; pal.AppendChild(ctrlnode); TextBox txtBox = new TextBox(); txtBox.Multiline = true; txtBox.Text = "This is text in a TextBox"; ctrlnode = new ControlNode(txtBox, new RectangleF(100, 100, 140, 50)); ctrlnode.Name = "Text Node"; pal.AppendChild(ctrlnode); // ListBox ctrlnode = new ListBoxControNode(); ctrlnode.Name = "ListBox Node"; pal.AppendChild(ctrlnode); paletteGroupBar1.AddPalette(pal); paletteGroupBar1.FlatLook = true; }
public Form1() { InitializeComponent(); //Code to fetch the German resources at run time. Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("de-DE"); //Load a diagram. diagram1.Model.RenderingStyle.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; SymbolPalette palette = new SymbolPalette(); palette = palette.FromFile(@"..\..\..\..\..\..\..\Common\Data\Diagram\edp\Flowchart Symbols.edp"); Node start = palette.Nodes["On-page reference"]; start.PinPoint = new PointF(70, 70); start.Size = new SizeF(80, 80); ((PathNode)start).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(start, "Start")); diagram1.Model.AppendChild(start); Node decision = palette.Nodes["Decision"]; decision.PinPoint = new PointF(270, 70); decision.Size = new SizeF(100, 100); ((PathNode)decision).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(decision, "Decision")); diagram1.Model.AppendChild(decision); Node document = palette.Nodes["Document"]; document.PinPoint = new PointF(470, 70); document.Size = new SizeF(120, 80); ((PathNode)document).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(document, "Document")); diagram1.Model.AppendChild(document); Node process = palette.Nodes["Process"]; process.PinPoint = new PointF(270, 200); process.Size = new SizeF(100, 80); ((PathNode)process).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(process, "Process")); diagram1.Model.AppendChild(process); Node end = palette.Nodes["On-page reference"].Clone() as Node; end.PinPoint = new PointF(270, 320); end.Size = new SizeF(80, 80); ((PathNode)end).Labels.Clear(); ((PathNode)end).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(end, "End")); diagram1.Model.AppendChild(end); ConnectNodes(start, decision, false); ConnectNodes(decision, document, false); ConnectNodes(document, process, true); ConnectNodes(decision, process, false); ConnectNodes(process, end, false); diagram1.Model.BackgroundStyle.Color = Color.White; foreach (Node node in diagram1.Model.Nodes) { node.EditStyle.AllowSelect = false; } diagram1.View.Grid.Visible = false; diagram1.View.SelectionList.Clear(); }
/// <summary> /// Adds a new symbol palette to the GroupBar with the given name. /// </summary> /// <param name="paletteName">Name of symbol palette to create</param> /// <remarks> /// <seealso cref="Syncfusion.Windows.Forms.Diagram.SymbolPalette"/> /// </remarks> public SymbolPalette AddPalette(string paletteName) { SymbolPalette palette = new SymbolPalette(); palette.Name = paletteName; AddPalette(palette); return(palette); }
/// <summary> /// Get the SymbolPalette by deserializing the SymbolPalette file /// </summary> /// <param name="filepath">Path of the file</param> /// <returns>returns palette</returns> public SymbolPalette LoadPalette(string filepath) { SymbolPalette curSymbolPalette = null; FileStream iStream = new FileStream(filepath, FileMode.Open, FileAccess.Read); if (iStream != null) { IFormatter formatter = new BinaryFormatter(); formatter.Binder = new OldToNewDeserializationBinder(); try { AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(DiagramBaseAssembly.AssemblyResolver); curSymbolPalette = (SymbolPalette)formatter.Deserialize(iStream); } catch (SerializationException) { try { #if !NETCORE formatter = new SoapFormatter(); formatter.Binder = new OldToNewDeserializationBinder(); iStream.Position = 0; curSymbolPalette = (SymbolPalette)formatter.Deserialize(iStream); #endif } catch (Exception se) { // To get the version from the edp file string strRegex = @"version\w*=\w*\d+\.\d+\.\d+(\.\d+)+\w*,"; System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(strRegex, System.Text.RegularExpressions.RegexOptions.IgnoreCase | System.Text.RegularExpressions.RegexOptions.Singleline); StreamReader sr = File.OpenText(filepath); string strFileContent = sr.ReadToEnd(); System.Text.RegularExpressions.Match version = regex.Match(strFileContent); string strVersion = version.Value; if (string.IsNullOrEmpty(strVersion)) { throw new System.Exception("Incompatible with older version.\nPlease use the converter utility to make it compatible with newer version", se); } else { throw new System.Exception("Unable to parse the palette file " + strVersion, se); } } } finally { iStream.Close(); AppDomain.CurrentDomain.AssemblyResolve -= new ResolveEventHandler(DiagramBaseAssembly.AssemblyResolver); } } return(curSymbolPalette); }
/// <summary> /// Returns the symbol palette at the given index. /// </summary> /// <param name="paletteIdx">Zero-based index into the collection of symbol palettes loaded into the GroupBar control</param> /// <returns>SymbolPalette object or null if paletteIdx parameter is out of range</returns> /// <remarks> /// <seealso cref="Syncfusion.Windows.Forms.Diagram.SymbolPalette"/> /// </remarks> public SymbolPalette GetPalette(int paletteIdx) { SymbolPalette palette = null; if (paletteIdx < GroupBarItems.Count) { palette = GroupBarItems[paletteIdx].Tag as SymbolPalette; } return(palette); }
/// <summary> /// Adds a new symbol palette to the GroupBar after prompting the user for /// the name of the new symbol palette to create. /// </summary> /// <remarks> /// <seealso cref="Syncfusion.Windows.Forms.Diagram.SymbolPalette"/> /// <seealso cref="Syncfusion.Windows.Forms.Diagram.Controls.PaletteAddDlg"/> /// </remarks> public SymbolPalette AddPalette() { SymbolPalette palette = null; PaletteAddDlg dlg = new PaletteAddDlg(); if (dlg.ShowDialog() == DialogResult.OK) { palette = AddPalette(dlg.PaletteName); } return(palette); }
/// <summary> /// Initializes the diagram /// </summary> private void CreateClassDiagram() { List <ClassList> classList = ReadFromDatabase(1); GenerateClassDiagram(classList, 1); Node group1 = diagram1.Model.Nodes.FindNodeByName("group1"); Node group2 = diagram1.Model.Nodes.FindNodeByName("group2"); group2.Size = new SizeF(group2.Size.Width + 15, group2.Size.Height); group2.PinPoint = new PointF(group2.PinPoint.X + 15, group2.PinPoint.Y); Node group3 = diagram1.Model.Nodes.FindNodeByName("group3"); Node group4 = diagram1.Model.Nodes.FindNodeByName("group4"); Node group5 = diagram1.Model.Nodes.FindNodeByName("group5"); Node group6 = diagram1.Model.Nodes.FindNodeByName("group6"); //ports ConnectionPoint gp3 = new ConnectionPoint(); gp3.Position = Position.MiddleRight; gp3.Visible = false; group3.Ports.Add(gp3); ConnectionPoint gp5 = new ConnectionPoint(); gp5.OffsetX = 0; gp5.OffsetY = group5.BoundingRectangle.Height - 20; gp5.Visible = false; group5.Ports.Add(gp5); ConnectorBase Connector1 = ConnectNodes(group2, group1, DecoratorShape.DoubleArrow, "Errors", 40, -25, true, 1); ConnectorBase Connector2 = ConnectNodes(group3, group2, DecoratorShape.OpenFancyArrow, "Notification", 30, 20, true, 1); ConnectorBase Connector3 = ConnectNodes(group4, group3, DecoratorShape.Filled45Arrow, "", 0, 0, false, 0); ConnectorBase Connector4 = ConnectNodes(group5, group2, DecoratorShape.OpenFancyArrow, "Notification", 50, -25, true, 2); ConnectorBase Connector5 = ConnectNodes(group5.Ports[1], group3.Ports[1], DecoratorShape.OpenFancyArrow, "Data", 90, -15, true, 2); ConnectorBase Connector6 = ConnectNodes(group6, group5, DecoratorShape.Filled45Arrow, "", 0, 0, false, 0); SymbolPalette palette = new SymbolPalette(); palette.Name = "Class Nodes"; palette.AppendChild(group1); palette.AppendChild(group2); palette.AppendChild(group3); palette.AppendChild(group4); palette.AppendChild(group5); palette.AppendChild(group6); palette.AppendChild(Connector1); palette.AppendChild(Connector2); palette.AppendChild(Connector3); palette.AppendChild(Connector4); palette.AppendChild(Connector5); palette.AppendChild(Connector6); paletteGroupBar1.AddPalette(palette); }
/// <summary> /// Serializes a PaletteGroupView object to the code DOM. /// </summary> /// <param name="manager"></param> /// <param name="value"></param> /// <returns></returns> public override object Serialize(IDesignerSerializationManager manager, object value) { object retVal = value; CodeDomSerializer baseSerializer = (CodeDomSerializer)manager.GetSerializer(typeof(GroupView), typeof(CodeDomSerializer)); if (baseSerializer != null) { retVal = baseSerializer.Serialize(manager, value); if (retVal != null) { System.CodeDom.CodeStatementCollection stmts = retVal as System.CodeDom.CodeStatementCollection; if (stmts != null) { PaletteGroupView palGrpVw = value as PaletteGroupView; if (palGrpVw != null) { SymbolPalette pal = palGrpVw.Palette; if (pal != null) { // Serialize the palette into the resource file BinaryFormatter formatter = new BinaryFormatter(); System.IO.MemoryStream oStream = new System.IO.MemoryStream(); formatter.Serialize(oStream, pal); string resName = palGrpVw.Name + "." + "Palette"; this.SerializeResource(manager, resName, oStream.GetBuffer()); oStream.Close(); // Add statements to CodeDom to load the palette from // the resource file at run-time string formClassName = ""; IDesignerHost designerHost = manager.GetService(typeof(IDesignerHost)) as IDesignerHost; if (designerHost != null) { formClassName = designerHost.RootComponentClassName; CodePropertyReferenceExpression exprRefGroupView = new CodePropertyReferenceExpression(new CodeThisReferenceExpression(), palGrpVw.Name); CodeExpression[] loadPalParams = new CodeExpression[] { new CodePropertyReferenceExpression(new CodeTypeOfExpression(formClassName), "Assembly"), new CodePrimitiveExpression(formClassName), new CodePrimitiveExpression(resName) }; CodeMethodInvokeExpression stmtLoadPalette = new CodeMethodInvokeExpression(exprRefGroupView, "LoadPalette", loadPalParams); stmts.Add(stmtLoadPalette); } } } } } } return(retVal); }
/// <summary> /// Loads the given symbol palette into this control. /// </summary> /// <param name="palette">Palette to load</param> /// <returns>true if successful; otherwise false</returns> /// <remarks> /// <seealso cref="Syncfusion.Windows.Forms.Diagram.SymbolPalette"/> /// </remarks> public bool LoadPalette(SymbolPalette palette) { if (palette == null) { return(false); } bool success = true; int symbolMdlIdx; SymbolModel symModel = null; GroupViewItem gvItem = null; for (symbolMdlIdx = 0; symbolMdlIdx < palette.ChildCount; symbolMdlIdx++) { symModel = palette.GetChild(symbolMdlIdx) as SymbolModel; if (symModel != null) { int imageIdx = 0; int lgImageIdx = 0; int smImageIdx = 0; if (symModel.SmallIcon != null) { smImageIdx = this.AddSmallIcon(symModel.SmallIcon); } if (symModel.LargeIcon != null) { lgImageIdx = this.AddLargeIcon(symModel.LargeIcon); } if (this.SmallImageView) { imageIdx = smImageIdx; } else { imageIdx = lgImageIdx; } gvItem = new GroupViewPaletteItem(symModel, imageIdx); this.GroupViewItems.Add(gvItem); } } palette.ChildrenChangeComplete += new NodeCollection.EventHandler(OnPalette_ChildrenChangeComplete); palette.EventsEnabled = true; this.palette = palette; return(success); }
/// <summary> /// Loads the palette with custom shapes /// </summary> void LoadPalette() { //Clear the SymbolPaletteGroups diagramControl.SymbolPalette.SymbolGroups.Clear(); //Clear out the defualt symbolpalettegroups and symbolpalettefilters diagramControl.SymbolPalette.SymbolFilters.Remove(diagramControl.SymbolPalette.SymbolFilters[5]); diagramControl.SymbolPalette.SymbolFilters.Remove(diagramControl.SymbolPalette.SymbolFilters[4]); diagramControl.SymbolPalette.SymbolFilters.Remove(diagramControl.SymbolPalette.SymbolFilters[3]); diagramControl.SymbolPalette.SymbolFilters.Remove(diagramControl.SymbolPalette.SymbolFilters[2]); diagramControl.SymbolPalette.SymbolFilters.Remove(diagramControl.SymbolPalette.SymbolFilters[1]); diagramControl.SymbolPalette.SymbolFilters.Remove(diagramControl.SymbolPalette.SymbolFilters[0]); diagramControl.SymbolPalette.ItemPadding = new Thickness(1); //SymbolPaletteFilter creates a filter for the palette groups. SymbolPaletteFilter sfilter = new SymbolPaletteFilter(); sfilter.Label = "Electrical Components"; diagramControl.SymbolPalette.SymbolFilters.Add(sfilter); //SymbolPaletteGroup creates a group and assigns a specific filter index. symbolGroup = new SymbolPaletteGroup(); symbolGroup.Label = "Electrical Components"; SymbolPalette.SetFilterIndexes(symbolGroup, new Int32Collection(new int[] { 0, 6 })); diagramControl.SymbolPalette.SymbolGroups.Add(symbolGroup); //SymbolPaletteItem specifies the item which can be added to the group. SymbolPaletteItem symbolItem1 = addSymbolItem(this.Resources["i1"] as DrawingImage); SymbolPaletteItem symbolItem2 = addSymbolItem(this.Resources["Diode"] as DrawingImage); SymbolPaletteItem symbolItem3 = addSymbolItem(this.Resources["VerResistor"] as DrawingImage); SymbolPaletteItem symbolItem4 = addSymbolItem(this.Resources["HorResistor"] as DrawingImage); SymbolPaletteItem symbolItem5 = addSymbolItem(this.Resources["VerCapacitor"] as DrawingImage); SymbolPaletteItem symbolItem6 = addSymbolItem(this.Resources["HorCapacitor"] as DrawingImage); SymbolPaletteItem symbolItem7 = addSymbolItem(this.Resources["Junction"] as DrawingImage); SymbolPaletteItem symbolItem8 = addSymbolItem(this.Resources["Image1"] as DrawingImage); SymbolPaletteItem symbolItem9 = addSymbolItem(this.Resources["Battery"] as DrawingImage); SymbolPaletteItem symbolItem10 = addSymbolItem(this.Resources["Switch"] as DrawingImage); SymbolPaletteItem symbolItem11 = addSymbolItem(this.Resources["Coil"] as DrawingImage); SymbolPaletteItem symbolItem12 = addSymbolItem(this.Resources["Image2"] as DrawingImage); SymbolPaletteItem symbolItem13 = addSymbolItem(this.Resources["Image3"] as DrawingImage); SymbolPaletteItem symbolItem14 = addSymbolItem(this.Resources["Image4"] as DrawingImage); SymbolPaletteItem symbolItem15 = addSymbolItem(this.Resources["Image5"] as DrawingImage); SymbolPaletteItem symbolItem16 = addSymbolItem(this.Resources["Image6"] as DrawingImage); SymbolPaletteItem symbolItem17 = addSymbolItem(this.Resources["Image7"] as DrawingImage); SymbolPaletteItem symbolItem18 = addSymbolItem(this.Resources["Image12"] as DrawingImage); SymbolPaletteItem symbolItem19 = addSymbolItem(this.Resources["Image9"] as DrawingImage); SymbolPaletteItem symbolItem20 = addSymbolItem(this.Resources["Image10"] as DrawingImage); SymbolPaletteItem symbolItem21 = addSymbolItem(this.Resources["Image11"] as DrawingImage); SymbolPaletteItem symbolItem22 = addSymbolItem(this.Resources["Image13"] as DrawingImage); SymbolPaletteItem symbolItem23 = addSymbolItem(this.Resources["Image8"] as DrawingImage); }
public PaletteManager(SymbolPalette palette, IEnumerable <PaletteObj> items) { palette.SetImages(new Dictionary <string, Image> { { "box", Properties.Resources.Box }, { "circle", Properties.Resources.Circle }, { "empty", Properties.Resources.Empty } }); foreach (var item in items) { palette.Add(item); } }
private void Form1_Load(object sender, EventArgs e) { DiagramAppearance(); // Load Palette palette = this.LoadPalette(@"..\..\..\..\..\..\..\Common\Data\Diagram\edp\ClockSymbols.edp"); diagram1.BeginUpdate(); // populate Diagram with nodes AddingNodesToTheDrawingArea(); diagram1.EndUpdate(); this.timer1.Start(); }
/// <summary> /// Converts a SymbolPalette to other data types. /// </summary> /// <param name="context"></param> /// <param name="culture"></param> /// <param name="value"></param> /// <param name="destinationType"></param> /// <returns></returns> public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { if (value != null) { SymbolPalette symPalette = value as SymbolPalette; if (symPalette != null) { return(symPalette.Name); } } } return(base.ConvertTo(context, culture, value, destinationType)); }
/// CreateSymbolPaletteGroup private void CreateSymbolPaletteGroup() { SymbolPaletteFilter sf = new SymbolPaletteFilter(); sf.Label = "Symbols"; //symbolpalette group SymbolPaletteGroup g = new SymbolPaletteGroup(); g.Label = "Custom Symbols"; diagramControl.SymbolPalette.SymbolFilters.Add(sf); SymbolPalette.SetFilterIndexes(g, new Int32Collection(new int[] { 0, 6 })); diagramControl.SymbolPalette.SymbolGroups.Add(g); CreateSymbolPaletteItem(g, "Man"); CreateSymbolPaletteItem(g, "Employee"); CreateSymbolPaletteItem(g, "Lady"); }
private void Form1_Load(object sender, EventArgs e) { SymbolPalette palette = new SymbolPalette(); palette = palette.FromFile(@"..\..\..\..\..\..\..\Common\Data\Diagram\edp\Flowchart Symbols.edp"); Node start = palette.Nodes["On-page reference"]; start.PinPoint = new PointF(70, 100); start.Size = new SizeF(80, 80); ((PathNode)start).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(start, "Start")); diagram1.Model.AppendChild(start); Node decision = palette.Nodes["Decision"]; decision.PinPoint = new PointF(270, 100); decision.Size = new SizeF(100, 100); ((PathNode)decision).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(decision, "Decision")); diagram1.Model.AppendChild(decision); Node document = palette.Nodes["Document"]; document.PinPoint = new PointF(470, 100); document.Size = new SizeF(120, 80); ((PathNode)document).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(document, "Document")); diagram1.Model.AppendChild(document); Node process = palette.Nodes["Process"]; process.PinPoint = new PointF(270, 230); process.Size = new SizeF(100, 80); ((PathNode)process).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(process, "Process")); diagram1.Model.AppendChild(process); Node end = palette.Nodes["On-page reference"].Clone() as Node; end.PinPoint = new PointF(270, 350); end.Size = new SizeF(80, 80); ((PathNode)end).Labels.Clear(); ((PathNode)end).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(end, "End")); diagram1.Model.AppendChild(end); ConnectNodes(start, decision, false); ConnectNodes(decision, document, false); ConnectNodes(document, process, true); ConnectNodes(decision, process, false); ConnectNodes(process, end, false); DiagramAppearance(); this.colorPickerButton1.BackColor = this.diagram1.View.HandleRenderer.HandleOutlineColor; this.colorPickerButton2.BackColor = this.diagram1.View.HandleRenderer.HandleColor; }
//Adding custom items to the palette void LoadPalette() { //SymbolPaletteFilter creates a filter for the palette groups. SymbolPaletteFilter sfilter = new SymbolPaletteFilter(); sfilter.Label = "Layout Shapes"; diagramControl.SymbolPalette.SymbolFilters.Add(sfilter); //SymbolPaletteGroup creates a group and assigns a specific filter index. symbolgroup = new SymbolPaletteGroup(); symbolgroup.Label = "Layout Shapes"; SymbolPalette.SetFilterIndexes(symbolgroup, new Int32Collection(new int[] { 0, 3 })); diagramControl.SymbolPalette.SymbolGroups.Add(symbolgroup); //Creating New SymbolPaletteItem SymbolPaletteItem symbolItem1 = addSymbolItem("Class", "Class", App.Current.Resources["RoundedRectangle1"] as Path); SymbolPaletteItem symbolItem2 = addSymbolItem("Interface", "Interface", App.Current.Resources["RoundedRectangle2"] as Path); SymbolPaletteItem symbolItem3 = addSymbolItem("Red", "Red", App.Current.Resources["RoundedRectangle3"] as Path); SymbolPaletteItem symbolItem4 = addSymbolItem("Blue", "Blue", App.Current.Resources["RoundedRectangle4"] as Path); }
private void InitializeDiagramNodes() { SymbolPalette palette = new SymbolPalette(); palette = palette.FromFile(@"..\..\..\..\..\..\..\Common\Data\Diagram\edp\Flowchart Symbols.edp"); Node start = palette.Nodes["On-page reference"]; start.PinPoint = new PointF(70, 100); start.Size = new SizeF(80, 80); ((PathNode)start).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(start, "Start")); diagram1.Model.AppendChild(start); Node decision = palette.Nodes["Decision"]; decision.PinPoint = new PointF(270, 100); decision.Size = new SizeF(100, 100); ((PathNode)decision).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(decision, "Decision")); diagram1.Model.AppendChild(decision); Node document = palette.Nodes["Document"]; document.PinPoint = new PointF(470, 100); document.Size = new SizeF(120, 80); ((PathNode)document).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(document, "Document")); diagram1.Model.AppendChild(document); Node process = palette.Nodes["Process"]; process.PinPoint = new PointF(270, 230); process.Size = new SizeF(100, 80); ((PathNode)process).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(process, "Process")); diagram1.Model.AppendChild(process); Node end = palette.Nodes["On-page reference"].Clone() as Node; end.PinPoint = new PointF(270, 350); end.Size = new SizeF(80, 80); ((PathNode)end).Labels.Clear(); ((PathNode)end).Labels.Add(new Syncfusion.Windows.Forms.Diagram.Label(end, "End")); diagram1.Model.AppendChild(end); ConnectNodes(start, decision, false); ConnectNodes(decision, document, false); ConnectNodes(document, process, true); ConnectNodes(decision, process, false); ConnectNodes(process, end, false); DiagramAppearance(); }
/// <summary> /// Adds an existing symbol palette to the GroupBar. /// </summary> /// <param name="palette">Symbol palette to add</param> /// <remarks> /// <seealso cref="Syncfusion.Windows.Forms.Diagram.SymbolPalette"/> /// </remarks> public void AddPalette(SymbolPalette palette) { GroupBarItem paletteBarItem = new GroupBarItem(); paletteBarItem.Text = palette.Name; paletteBarItem.Tag = palette; PaletteGroupView paletteView = new PaletteGroupView(); paletteView.EditMode = this.editMode; paletteView.ButtonView = true; paletteView.BackColor = Color.Ivory; paletteView.SymbolModelSelected += new SymbolModelEvent(OnSymbolModelSelected); paletteView.SymbolModelDoubleClick += new SymbolModelEvent(OnSymbolModelDoubleClick); paletteView.LoadPalette(palette); paletteBarItem.Client = paletteView; this.GroupBarItems.Add(paletteBarItem); }
public Form1() { InitializeComponent(); diagram1.BeginUpdate(); diagram1.Model.BoundaryConstraintsEnabled = false; diagram1.Controller.Guides.Enable = false; SymbolPalette palette = this.LoadPalette(@"..\..\..\..\..\..\..\Common\Data\Diagram\edp\SeatReservationSymbols.edp"); this.diagram1.Model.RenderingStyle.SmoothingMode = SmoothingMode.HighQuality; this.diagram1.Model.DocumentSize = new PageSize(1169, 1269); this.diagram1.Model.BoundaryConstraintsEnabled = false; diagram1.Controller.InPlaceEditing = false; InitializeDiagram(palette); DiagramAppearance(); diagram1.EndUpdate(); diagram1.EventSink.NodeMouseEnter += new NodeMouseEventHandler(EventSink_NodeMouseEnter); diagram1.EventSink.NodeMouseLeave += new NodeMouseEventHandler(EventSink_NodeMouseLeave); diagram1.EventSink.NodeClick += new NodeMouseEventHandler(EventSink_NodeClick); }
//Adding custom items to the palette void LoadPalette() { //SymbolPaletteFilter creates a filter for the palette groups. SymbolPaletteFilter sfilter = new SymbolPaletteFilter(); sfilter.Label = "Layout Shapes"; diagramControl.SymbolPalette.SymbolFilters.Add(sfilter); //SymbolPaletteGroup creates a group and assigns a specific filter index. symbolGroup = new SymbolPaletteGroup(); symbolGroup.Label = "Layout Shapes"; SymbolPalette.SetFilterIndexes(symbolGroup, new Int32Collection(new int[] { 0, 6 })); diagramControl.SymbolPalette.SymbolGroups.Add(symbolGroup); //SymbolPaletteItem specifies the item which can be added to the group. SymbolPaletteItem symbolItem1 = addSymbolItem(App.Current.Resources["ellipse"] as Ellipse, "Ellipse", "Ellipse"); SymbolPaletteItem symbolItem2 = addSymbolItem(App.Current.Resources["roundedrect"] as Path, "Rect", "RoundedRect"); SymbolPaletteItem symbolItem3 = addSymbolItem(App.Current.Resources["id"] as Path, "NodeId", "NodeId"); SymbolPaletteItem symbolItem4 = addSymbolItem(App.Current.Resources["Arrow"] as Border, "Arrow", "Arrow"); }
private void biFileAddPalette_Click(object sender, System.EventArgs e) { // Open symbol palette and add it to the symbol palette group bar if (openPaletteDialog.ShowDialog(this) == DialogResult.OK) { SymbolPalette curPalette = null; FileStream iStream = null; try { iStream = new FileStream(openPaletteDialog.FileName, FileMode.Open, FileAccess.Read); } catch (Exception ex) { iStream = null; MessageBox.Show(this, ex.Message); } if (iStream != null) { SoapFormatter formatter = new SoapFormatter(); try { System.AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(DiagramAssembly.AssemblyResolver); curPalette = (SymbolPalette)formatter.Deserialize(iStream); symbolPaletteGroupBar.AddPalette(curPalette); } catch (Exception ex) { MessageBox.Show(this, ex.Message); } finally { iStream.Close(); } } } }
private void InitializeDiagram(SymbolPalette palette) { float x = 150; float y = 150; int rowNodeCnt = 1, j = 0; string[] strRow = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J" }; TextNode txtNode = new TextNode("View and Change Seats", new RectangleF(250, 20, 400, 70)); txtNode.FontColorStyle.Color = Color.White; txtNode.FontStyle.Family = "Arial"; txtNode.FontStyle.Size = 17; txtNode.HorizontalAlignment = StringAlignment.Center; txtNode.FontStyle.Bold = true; txtNode.LineStyle.LineColor = Color.Transparent; txtNode.EditStyle.AllowSelect = false; diagram1.Model.AppendChild(txtNode); Group availSeats = new Group(palette.Nodes["Seat"] as Group); availSeats.Name = "availSeats"; availSeats.PinPoint = new PointF(250, 80); availSeats.Size = new SizeF(20, 20); availSeats.EditStyle.AllowMoveX = false; availSeats.EditStyle.AllowMoveY = false; UpdateEditStyle(availSeats); diagram1.Model.AppendChild(availSeats); TextNode availTNode = new TextNode("Available Seats", new RectangleF(265, 70, 90, 20)); availTNode.FontStyle.Family = "Arial"; availTNode.FontColorStyle.Color = Color.White; availTNode.FontStyle.Size = 8; availTNode.VerticalAlignment = StringAlignment.Center; availTNode.LineStyle.LineColor = Color.Transparent; availTNode.EditStyle.AllowSelect = false; diagram1.Model.AppendChild(availTNode); Group bookedSeats = new Group(palette.Nodes["Seat"] as Group); bookedSeats.Name = "bookedSeats"; bookedSeats.PinPoint = new PointF(380, 80); bookedSeats.Size = new SizeF(20, 20); bookedSeats.EditStyle.AllowMoveX = false; bookedSeats.EditStyle.AllowMoveY = false; UpdateEditStyle(bookedSeats); foreach (Node node in bookedSeats.Nodes) { if (node is FilledPath) { ((FilledPath)node).FillStyle.Color = Color.FromArgb(134, 134, 134); ((FilledPath)node).FillStyle.ForeColor = Color.FromArgb(163, 163, 163); node.LineStyle.LineColor = Color.DarkGray; } } diagram1.Model.AppendChild(bookedSeats); TextNode bookedTNode = new TextNode("Booked Seats", new RectangleF(395, 70, 90, 20)); bookedTNode.FontStyle.Family = "Arial"; bookedTNode.FontColorStyle.Color = Color.White; bookedTNode.FontStyle.Size = 8; bookedTNode.VerticalAlignment = StringAlignment.Center; bookedTNode.LineStyle.LineColor = Color.Transparent; bookedTNode.EditStyle.AllowSelect = false; diagram1.Model.AppendChild(bookedTNode); Group curSelSeats = new Group(palette.Nodes["Seat"] as Group); curSelSeats.PinPoint = new PointF(500, 80); curSelSeats.Size = new SizeF(20, 20); curSelSeats.EditStyle.AllowMoveX = false; curSelSeats.EditStyle.AllowMoveY = false; UpdateEditStyle(curSelSeats); foreach (Node node in curSelSeats.Nodes) { if (node is FilledPath) { ((FilledPath)node).FillStyle.Color = Color.FromArgb(0, 155, 0); ((FilledPath)node).FillStyle.ForeColor = Color.FromArgb(80, 255, 89); node.LineStyle.LineColor = Color.Black; } } diagram1.Model.AppendChild(curSelSeats); TextNode CurSelTNode = new TextNode("Current Selection", new RectangleF(515, 70, 90, 20)); CurSelTNode.FontStyle.Family = "Arial"; CurSelTNode.FontColorStyle.Color = Color.White; CurSelTNode.FontStyle.Size = 8; CurSelTNode.VerticalAlignment = StringAlignment.Center; CurSelTNode.LineStyle.LineColor = Color.Transparent; CurSelTNode.EditStyle.AllowSelect = false; diagram1.Model.AppendChild(CurSelTNode); for (int i = 1; i < 106; i++) { Group seatNode = new Group(palette.Nodes["Seat"] as Group); Syncfusion.Windows.Forms.Diagram.Label lbl = new Syncfusion.Windows.Forms.Diagram.Label(seatNode, i.ToString()); lbl.FontStyle.Family = "Arial"; lbl.FontColorStyle.Color = Color.White; seatNode.Labels.Add(lbl); seatNode.Size = new SizeF(30, 30); seatNode.PinPoint = new PointF(x, y); seatNode.EditStyle.AllowMoveX = false; seatNode.EditStyle.AllowMoveY = false; UpdateEditStyle(seatNode); seatNode.EditStyle.DefaultHandleEditMode = HandleEditMode.None; diagram1.Model.AppendChild(seatNode); seats.Add(seatNode); if (rowNodeCnt == 10) { x = x + 80; } else { x = x + 40; } if (rowNodeCnt == 15) { Syncfusion.Windows.Forms.Diagram.Rectangle rowNode = new Syncfusion.Windows.Forms.Diagram.Rectangle(100, y - 10, 20, 20); rowNode.FillStyle.Color = Color.Goldenrod; rowNode.FillStyle.ForeColor = Color.Yellow; rowNode.FillStyle.Type = FillStyleType.LinearGradient; rowNode.LineStyle.LineColor = Color.Goldenrod; rowNode.EditStyle.AllowSelect = false; Syncfusion.Windows.Forms.Diagram.Label lbl1 = new Syncfusion.Windows.Forms.Diagram.Label(rowNode, strRow[j]); lbl1.FontStyle.Family = "Arial"; lbl1.FontColorStyle.Color = Color.Black; rowNode.Labels.Add(lbl1); diagram1.Model.AppendChild(rowNode); x = 150; y = y + 40; rowNodeCnt = 0; j++; } rowNodeCnt++; } Syncfusion.Windows.Forms.Diagram.Rectangle rect = new Syncfusion.Windows.Forms.Diagram.Rectangle(150, y + 40, 600, 50); rect.FillStyle.Color = Color.WhiteSmoke; rect.LineStyle.LineColor = Color.LightGray; Syncfusion.Windows.Forms.Diagram.Label label = new Syncfusion.Windows.Forms.Diagram.Label(rect, "Screen this way"); label.FontStyle.Bold = true; label.FontStyle.Size = 16; label.FontStyle.Family = "Segoe UI"; rect.Labels.Add(label); diagram1.Model.AppendChild(rect); diagram1.BeginUpdate(); ReserveSeats(); diagram1.EndUpdate(); }