/// <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); }
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(); } } }