Exemple #1
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);
        }
Exemple #2
0
        private void OnPalette_ChildrenChangeComplete(object sender, NodeCollection.EventArgs nodeEvtArgs)
        {
            if (nodeEvtArgs.ChangeType == CollectionEx.ChangeType.Insert)
            {
                SymbolModel symModel = nodeEvtArgs.Node as SymbolModel;

                if (symModel != null)
                {
                    GroupViewItem gvItem = new GroupViewPaletteItem(symModel);
                    this.GroupViewItems.Add(gvItem);
                }
            }
            else if (nodeEvtArgs.ChangeType == CollectionEx.ChangeType.Remove)
            {
                if (nodeEvtArgs.Node == this.SelectedSymbolModel)
                {
                    this.SelectedItem = -1;
                }

                int  gviIdx = 0;
                bool found  = false;

                while (gviIdx < this.GroupViewItems.Count && !found)
                {
                    if (this.GroupViewItems[gviIdx].Tag == nodeEvtArgs.Node)
                    {
                        found = true;
                    }
                    else
                    {
                        gviIdx++;
                    }
                }

                if (found)
                {
                    this.GroupViewItems.RemoveAt(gviIdx);
                    this.Refresh();
                }
            }
        }