private void lstInstances_SelectedIndexChanged(object sender, EventArgs e) { if (lstInstances.SelectedItems.Count == 1) { var it = lstInstances.SelectedItems[0]; ISymbolInstance symRef = (ISymbolInstance)it.Tag; _params.Clear(); ISymbolDefinitionBase sym = GetSymbolDefinition(symRef); //Add existing overrides foreach (var p in symRef.ParameterOverrides.Override) { IParameter pdef = sym.GetParameter(p.ParameterIdentifier); var model = new ParameterModel(p, pdef); _params.Add(model); } //Now add available parameters PopulateAvailableParameters(symRef, sym); btnSaveExternal.Enabled = (symRef.Reference.Type == SymbolInstanceType.Inline); btnEditInstanceProperties.Enabled = true; btnEditComponent.Enabled = true; } else { btnSaveExternal.Enabled = false; btnEditInstanceProperties.Enabled = false; btnEditComponent.Enabled = false; } }
private void RenderPreview(ISymbolInstance symInst, ListViewItem item) { string previewKey = null; if (!string.IsNullOrEmpty(item.ImageKey)) { previewKey = item.ImageKey; } else { previewKey = Guid.NewGuid().ToString(); } if (imgPreviews.Images.ContainsKey(previewKey)) { Image img = imgPreviews.Images[previewKey]; imgPreviews.Images.RemoveByKey(previewKey); img.Dispose(); } var conn = _edSvc.CurrentConnection; ISymbolDefinitionBase previewSymbol = null; string resId = "Session:" + conn.SessionID + "//" + Guid.NewGuid().ToString() + ".SymbolDefinition"; switch (symInst.Reference.Type) { case SymbolInstanceType.Inline: previewSymbol = (ISymbolDefinitionBase)((ISymbolInstanceReferenceInline)symInst.Reference).SymbolDefinition.Clone(); //Inline symbol definitions will have schema and version stripped. We need to add them back previewSymbol.SetSchemaAttributes(); previewSymbol.ResourceID = resId; using (var stream = ApplyOverrides(previewSymbol, symInst.ParameterOverrides)) { conn.ResourceService.SetResourceXmlData(resId, stream); } previewSymbol = (ISymbolDefinitionBase)conn.ResourceService.GetResource(resId); break; case SymbolInstanceType.Reference: previewSymbol = (ISymbolDefinitionBase)conn.ResourceService.GetResource(((ISymbolInstanceReferenceLibrary)symInst.Reference).ResourceId); previewSymbol = (ISymbolDefinitionBase)previewSymbol.Clone(); previewSymbol.ResourceID = resId; using (var stream = ApplyOverrides(previewSymbol, symInst.ParameterOverrides)) { conn.ResourceService.SetResourceXmlData(resId, stream); } previewSymbol = (ISymbolDefinitionBase)conn.ResourceService.GetResource(resId); break; } var res = DefaultResourcePreviewer.GenerateSymbolDefinitionPreview(conn, previewSymbol, imgPreviews.ImageSize.Width, imgPreviews.ImageSize.Height); imgPreviews.Images.Add(previewKey, res.ImagePreview); item.ImageKey = previewKey; }
/// <summary> /// Gets the parameters. /// </summary> /// <param name="sym">The sym.</param> /// <returns></returns> public static IEnumerable <IParameter> GetParameters(this ISymbolDefinitionBase sym) { Check.ArgumentNotNull(sym, nameof(sym)); if (sym.Type == SymbolDefinitionType.Simple) { return(((ISimpleSymbolDefinition)sym).GetParameters()); } else { return(((ICompoundSymbolDefinition)sym).GetParameters()); } }
private void PopulateParameterList(ISymbolInstance symRef, ISymbolDefinitionBase sym) { foreach (var p in sym.GetParameters()) { var param = p; var btn = new ToolStripButton(p.DisplayName.Replace("&", "&"), null, (s, e) => { AddParameterOverride(symRef, sym, param); }); btn.ToolTipText = p.Description; btnAddProperty.DropDown.Items.Insert(0, btn); } btnAddProperty.DropDown.Items.Add(toolStripSeparator1); btnAddProperty.DropDown.Items.Add(refreshToolStripMenuItem); }
private ISymbolDefinitionBase GetSymbolDefinition(ISymbolInstance symRef) { ISymbolDefinitionBase sym = null; if (symRef.Reference.Type == SymbolInstanceType.Reference) { sym = (ISymbolDefinitionBase)_edSvc.CurrentConnection.ResourceService.GetResource(((ISymbolInstanceReferenceLibrary)symRef.Reference).ResourceId); } else if (symRef.Reference.Type == SymbolInstanceType.Inline) { var inline = (ISymbolInstanceReferenceInline)symRef.Reference; sym = inline.SymbolDefinition; } return(sym); }
private static Stream ApplyOverrides(ISymbolDefinitionBase previewSymbol, IParameterOverrideCollection parameterOverrideCollection) { foreach (var ov in parameterOverrideCollection.Override) { foreach (var pdef in previewSymbol.GetParameters()) { if (pdef.Name == ov.ParameterIdentifier) { pdef.DefaultValue = ov.ParameterValue; break; } } } return(ObjectFactory.Serialize(previewSymbol)); }
private void AddParameterOverride(ISymbolInstance symRef, ISymbolDefinitionBase sym, IParameter param) { foreach (var p in _params) { if (p.Override.ParameterIdentifier == param.Name) { MessageBox.Show(Strings.ParameterOverrideExists); return; } } var ov = symRef.ParameterOverrides.CreateParameterOverride(sym.Name, param.Name); ov.SymbolName = sym.Name; ov.ParameterValue = param.DefaultValue; var model = new ParameterModel(ov, param); _params.Add(model); symRef.ParameterOverrides.AddOverride(ov); _edSvc.HasChanged(); }
public SymbolEditorService(IEditorService edSvc, ISymbolDefinitionBase symDef) { _inner = edSvc; _symDef = symDef; this.PreviewLocale = "en"; //NOXLATE }
private void AddParameterOverride(ISymbolDefinitionBase sym, IParameter param) { foreach (var p in _params) { if (p.ParameterIdentifier == param.Name) { MessageBox.Show(Strings.ParameterOverrideExists); return; } } var ov = _symRef.ParameterOverrides.CreateParameterOverride(sym.Name, param.Name); ov.SymbolName = sym.Name; _params.Add(ov); _symRef.ParameterOverrides.AddOverride(ov); this.RaiseDirty(); }
private void PopulateParameterList(ISymbolDefinitionBase sym) { foreach (var p in sym.GetParameters()) { var param = p; var btn = new ToolStripButton(p.Name, null, (s, e) => { AddParameterOverride(sym, param); }); btnAdd.DropDown.Items.Insert(0, btn); } btnAdd.DropDown.Items.Add(toolStripSeparator1); btnAdd.DropDown.Items.Add(refreshToolStripMenuItem); }
/// <summary> /// Gets the parameter definition for the given identifer /// </summary> /// <param name="sym"></param> /// <param name="identifier"></param> /// <returns></returns> public static IParameter GetParameter(this ISymbolDefinitionBase sym, string identifier) { Check.ArgumentNotNull(sym, nameof(sym)); return(sym.GetParameters().FirstOrDefault(x => x.Identifier == identifier)); }
private void PopulateAvailableParameters(ISymbolInstance symRef, ISymbolDefinitionBase symbol) { btnAddProperty.DropDown.Items.Clear(); PopulateParameterList(symRef, symbol); }
public SymbolEditorService(IEditorService edSvc, ISymbolDefinitionBase symDef) { _inner = edSvc; _symDef = symDef; this.PreviewLocale = "en"; //NOXLATE }