/// <summary> /// Deserializes a PaletteGroupView object from the code DOM. /// </summary> /// <param name="manager"></param> /// <param name="codeObject"></param> /// <returns></returns> public override object Deserialize(IDesignerSerializationManager manager, object codeObject) { object retVal = null; // Get base class serializer CodeDomSerializer baseSerializer = (CodeDomSerializer)manager.GetSerializer(typeof(GroupView), typeof(CodeDomSerializer)); if (baseSerializer != null) { // Deserialize palette group view using base class serializer retVal = baseSerializer.Deserialize(manager, codeObject); if (retVal != null) { // Downcast to PaletteGroupView PaletteGroupView palGrpVw = retVal as PaletteGroupView; if (palGrpVw != null) { // Load symbol palette from the resource file and attach // to the palette group view string resName = palGrpVw.Name + "." + "Palette"; System.ComponentModel.Design.IResourceService resSvc = manager.GetService(typeof(System.ComponentModel.Design.IResourceService)) as System.ComponentModel.Design.IResourceService; if (resSvc != null) { System.Resources.IResourceReader resReader = resSvc.GetResourceReader(System.Globalization.CultureInfo.InvariantCulture); if (resReader != null) { // Iterate through the resource file using the resource // reader and find the byte stream for the palette byte[] strmData = null; bool resFound = false; IDictionaryEnumerator resEnum = resReader.GetEnumerator(); while (resEnum.MoveNext() && !resFound) { if ((string)resEnum.Key == resName) { strmData = (byte[])resEnum.Value; resFound = true; } } if (resFound && strmData != null) { palGrpVw.LoadPalette(strmData); } } } } } } return(retVal); }
/// <summary> /// Converts a SymbolPalette from other types. /// </summary> /// <param name="context"></param> /// <param name="culture"></param> /// <param name="value"></param> /// <returns></returns> public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value != null && value.GetType() == typeof(string)) { string fileName = (string)value; PaletteGroupView palGrpVw = context.Instance as PaletteGroupView; if (palGrpVw != null) { if (palGrpVw.LoadPalette(fileName)) { return(palGrpVw.Palette); } return(null); } } return(base.ConvertFrom(context, culture, value)); }
/// <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); }