Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        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;
        }
Example #5
0
        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();
        }
Example #6
0
        /// <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);
        }
Example #7
0
        /// <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);
        }
Example #8
0
        /// <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);
        }
Example #9
0
        /// <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);
        }
Example #10
0
        /// <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);
        }
Example #11
0
        /// <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);
        }
Example #12
0
        /// <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);
        }
Example #13
0
        /// <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);
            }
        }
Example #15
0
        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();
        }
Example #16
0
 /// <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));
 }
Example #17
0
        /// 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");

        }
Example #18
0
        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;
        }
Example #19
0
        //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);
        }
Example #20
0
        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();
        }
Example #21
0
        /// <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);
        }
Example #22
0
        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);
        }
Example #23
0
        //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");
        }
Example #24
0
        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();
                    }
                }
            }
        }
Example #25
0
        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();
        }