private void SetListViewItemLabel(ISymbolInstance symRef, ListViewItem li) { var sym = GetSymbolDefinition(symRef); if (symRef.Reference.Type == SymbolInstanceType.Reference) { ISymbolInstance2 symRef2 = symRef as ISymbolInstance2; if (symRef2 != null) { li.Text = sym.Name + " (" + symRef2.GeometryContext + " - " + ((ISymbolInstanceReferenceLibrary)symRef.Reference).ResourceId + ")"; } else { li.Text = sym.Name + " (" + ((ISymbolInstanceReferenceLibrary)symRef.Reference).ResourceId + ")"; } } else { ISymbolInstance2 symRef2 = symRef as ISymbolInstance2; if (symRef2 != null) { li.Text = sym.Name + " (" + symRef2.GeometryContext + " - " + Strings.InlineSymbolDefinition + ")"; } else { li.Text = sym.Name + " (" + Strings.InlineSymbolDefinition + ")"; } } }
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 Control CreateSymbolDefinitionEditor(ISymbolInstance symRef) { Check.ArgumentNotNull(symRef, nameof(symRef)); if (symRef.Reference.Type == SymbolInstanceType.Reference) { return(new ReferenceCtrl((ISymbolInstanceReferenceLibrary)symRef.Reference, _edSvc)); } else { var inline = (ISymbolInstanceReferenceInline)symRef.Reference; var symEditor = new SymbolEditorService(_edSvc, inline.SymbolDefinition); if (inline.SymbolDefinition.Type == SymbolDefinitionType.Simple) { var sed = new SimpleSymbolDefinitionEditorCtrl(); sed.Bind(symEditor); return(sed); } else { var sed = new CompoundSymbolDefinitionEditorCtrl(); sed.Bind(symEditor); return(sed); } } }
private void viaEditorToolStripMenuItem_Click(object sender, EventArgs e) { if (grdOverrides.SelectedRows.Count == 1 && lstInstances.SelectedItems.Count == 1) { var it = lstInstances.SelectedItems[0]; ISymbolInstance symRef = (ISymbolInstance)it.Tag; var ov = (ParameterModel)grdOverrides.SelectedRows[0].DataBoundItem; Func <string> editAction = GetParameterEditorAction(ov.Type, ov.Value); if (editAction != null) { string expr = editAction(); if (expr != null) { ov.Value = expr; _edSvc.HasChanged(); } } else //Fallback to Expression Editor { string expr = _edSvc.EditExpression(ov.Value, _cls, _provider, _featureSourceId, ExpressionEditorMode.Expression, true); if (expr != null) { ov.Value = expr; _edSvc.HasChanged(); } } } }
private void refreshToolStripMenuItem_Click(object sender, EventArgs e) { if (lstInstances.SelectedItems.Count == 1) { var it = lstInstances.SelectedItems[0]; ISymbolInstance symRef = (ISymbolInstance)it.Tag; PopulateAvailableParameters(symRef, GetSymbolDefinition(symRef)); } }
private void btnDelete_Click(object sender, EventArgs e) { if (lstInstances.SelectedItems.Count == 1) { var it = lstInstances.SelectedItems[0]; ISymbolInstance symRef = (ISymbolInstance)it.Tag; _comp.RemoveSymbolInstance(symRef); lstInstances.Items.Remove(it); } }
public SymbolInstancePropertiesDialog(ISymbolInstance inst, IEditorService edSvc, ClassDefinition cls, string featureSourceId, string providerName) : this() { _edSvc = edSvc; _cls = cls; _featureSourceId = featureSourceId; _providerName = providerName; symAddToExclusionRegion.SetBooleanMode(); symAddToExclusionRegion.Bind(inst, nameof(inst.AddToExclusionRegion)); symCheckExclusionRegion.SetBooleanMode(); symCheckExclusionRegion.Bind(inst, nameof(inst.CheckExclusionRegion)); symDrawLast.SetBooleanMode(); symDrawLast.Bind(inst, nameof(inst.DrawLast)); symSizeContext.SetEnumMode <SizeContextType>(); symSizeContext.Bind(inst, nameof(inst.SizeContext)); symInsertOffsetX.Bind(inst, nameof(inst.InsertionOffsetX)); symInsertOffsetY.Bind(inst, nameof(inst.InsertionOffsetY)); symPositioningAlgorithm.Items = new string[] { "'Default'", "'EightSurrounding'", "'PathLabels'" }; symPositioningAlgorithm.Bind(inst, nameof(inst.PositioningAlgorithm)); symScaleX.Bind(inst, nameof(inst.ScaleX)); symScaleY.Bind(inst, nameof(inst.ScaleY)); var inst2 = inst as ISymbolInstance2; if (inst2 != null) { symGeometryContext.SetEnumMode <GeometryContextType>(); symUsageContext.SetEnumMode <UsageContextType>(); symRenderingPass.Bind(inst2, nameof(inst2.RenderingPass)); symGeometryContext.Bind(inst2, nameof(inst2.GeometryContext)); symUsageContext.Bind(inst2, nameof(inst2.UsageContext)); } else { symRenderingPass.Visible = symGeometryContext.Visible = symUsageContext.Visible = lblRenderingPass.Visible = lblGeometryContext.Visible = lblUsageContext.Visible = false; } }
public SymbolInstancePropertiesDialog(ISymbolInstance inst, IEditorService edSvc, ClassDefinition cls, string featureSourceId, string providerName) : this() { _edSvc = edSvc; _cls = cls; _featureSourceId = featureSourceId; _providerName = providerName; symAddToExclusionRegion.SetBooleanMode(); symAddToExclusionRegion.Bind(inst, "AddToExclusionRegion"); symCheckExclusionRegion.SetBooleanMode(); symCheckExclusionRegion.Bind(inst, "CheckExclusionRegion"); symDrawLast.SetBooleanMode(); symDrawLast.Bind(inst, "DrawLast"); symSizeContext.SetEnumMode<SizeContextType>(); symSizeContext.Bind(inst, "SizeContext"); symInsertOffsetX.Bind(inst, "InsertionOffsetX"); symInsertOffsetY.Bind(inst, "InsertionOffsetY"); symPositioningAlgorithm.Items = new string[] { "'Default'", "'EightSurrounding'", "'PathLabels'" }; symPositioningAlgorithm.Bind(inst, "PositioningAlgorithm"); symScaleX.Bind(inst, "ScaleX"); symScaleY.Bind(inst, "ScaleY"); var inst2 = inst as ISymbolInstance2; if (inst2 != null) { symGeometryContext.SetEnumMode<GeometryContextType>(); symUsageContext.SetEnumMode<UsageContextType>(); symRenderingPass.Bind(inst2, "RenderingPass"); symGeometryContext.Bind(inst2, "GeometryContext"); symUsageContext.Bind(inst2, "UsageContext"); } else { symRenderingPass.Visible = symGeometryContext.Visible = symUsageContext.Visible = lblRenderingPass.Visible = lblGeometryContext.Visible = lblUsageContext.Visible = 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; }
private void btnDeleteProperty_Click(object sender, EventArgs e) { if (grdOverrides.SelectedRows.Count == 1 && lstInstances.SelectedItems.Count == 1) { var it = lstInstances.SelectedItems[0]; ISymbolInstance symRef = (ISymbolInstance)it.Tag; var ov = (ParameterModel)grdOverrides.SelectedRows[0].DataBoundItem; _params.Remove(ov); symRef.ParameterOverrides.RemoveOverride(ov.Override); _edSvc.HasChanged(); } }
private void btnEditInstanceProperties_Click(object sender, EventArgs e) { if (lstInstances.SelectedItems.Count == 1) { var it = lstInstances.SelectedItems[0]; ISymbolInstance symRef = (ISymbolInstance)it.Tag; using (var diag = new SymbolInstancePropertiesDialog(symRef, _edSvc, _cls, _featureSourceId, _provider)) { diag.ShowDialog(); SetListViewItemLabel(symRef, it); } } }
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 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 void btnDown_Click(object sender, EventArgs e) { if (lstInstances.SelectedItems.Count == 1) { var it = lstInstances.SelectedItems[0]; var oldIdx = lstInstances.Items.IndexOf(it); ISymbolInstance symRef = (ISymbolInstance)it.Tag; int idx = _comp.MoveSymbolInstanceDown(symRef); if (idx <= _comp.SymbolInstance.Count() - 1 && idx >= 0) { var item = lstInstances.Items[idx]; lstInstances.Items.RemoveAt(idx); lstInstances.Items.RemoveAt(oldIdx); lstInstances.Items.Insert(oldIdx, item); lstInstances.Items.Insert(idx, it); } } }
private void AddInstance(ISymbolInstance symRef, bool add) { var li = new ListViewItem(); li.Tag = symRef; SetListViewItemLabel(symRef, li); lstInstances.Items.Add(li); btnUp.Enabled = btnDown.Enabled = (lstInstances.Items.Count > 1); if (add) { _comp.AddSymbolInstance(symRef); } li.Selected = (lstInstances.Items.Count == 1); RenderPreview(symRef, li); }
private void btnEditComponent_Click(object sender, EventArgs e) { var it = lstInstances.SelectedItems[0]; ISymbolInstance symRef = (ISymbolInstance)it.Tag; var c = CreateSymbolDefinitionEditor(symRef); c.Dock = DockStyle.Fill; using (var ed = new EditorTemplateForm()) { ed.Text = Strings.EditSymbolDefinition; ed.ItemPanel.Controls.Add(c); ed.ManualSizeManagement = true; ed.Width = 800; ed.Height = 600; if (ed.ShowDialog() == System.Windows.Forms.DialogResult.OK) { _edSvc.HasChanged(); } } }
public void SetContent(ISymbolInstance symRef, IEditorService edSvc, ClassDefinition cls, string provider, string featureSourceId) { _symRef = symRef; _edSvc = edSvc; _cls = cls; _provider = provider; _featureSourceId = featureSourceId; _params.Clear(); //Add existing overrides foreach (var p in symRef.ParameterOverrides.Override) { _params.Add(p); } //Now add available parameters PopulateAvailableParameters(); grpSettings.Controls.Clear(); Control c = CreateEditor(symRef, edSvc.ResourceService); c.Dock = DockStyle.Fill; grpSettings.Controls.Add(c); }
private void btnSaveExternal_Click(object sender, EventArgs e) { if (lstInstances.SelectedItems.Count == 1) { var it = lstInstances.SelectedItems[0]; ISymbolInstance symRef = (ISymbolInstance)it.Tag; if (symRef.Reference.Type == SymbolInstanceType.Inline) { var sym = ((ISymbolInstanceReferenceInline)symRef.Reference).SymbolDefinition; using (var picker = new ResourcePicker(_edSvc.CurrentConnection, ResourceTypes.SymbolDefinition.ToString(), ResourcePickerMode.SaveResource)) { if (picker.ShowDialog() == System.Windows.Forms.DialogResult.OK) { sym.SetSchemaAttributes(); _edSvc.CurrentConnection.ResourceService.SaveResourceAs(sym, picker.ResourceID); MessageBox.Show(string.Format(Maestro.Editors.Strings.SymbolExported, picker.ResourceID)); } } } } }
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(); }
private void AddInstance(ISymbolInstance symRef, bool add) { var li = new ListViewItem(); li.ImageIndex = (symRef.Reference.Type == SymbolInstanceType.Reference) ? 0 : 1; li.Tag = symRef; if (li.ImageIndex == 0) li.Text = ((ISymbolInstanceReferenceLibrary)symRef.Reference).ResourceId; else li.Text = Strings.InlineSymbolDefinition; lstInstances.Items.Add(li); if (add) _comp.AddSymbolInstance(symRef); li.Selected = (lstInstances.Items.Count == 1); }
private Control CreateEditor(ISymbolInstance symRef, IResourceService resSvc) { Check.NotNull(symRef, "symRef"); //NOXLATE if (symRef.Reference.Type == SymbolInstanceType.Reference) { return new ReferenceCtrl((ISymbolInstanceReferenceLibrary)symRef.Reference, resSvc); } else { var inline = (ISymbolInstanceReferenceInline)symRef.Reference; var symEditor = new SymbolEditorService(_edSvc, inline.SymbolDefinition); if (inline.SymbolDefinition.Type == SymbolDefinitionType.Simple) { var sed = new SimpleSymbolDefinitionEditorCtrl(); sed.Bind(symEditor); return sed; } else { var sed = new CompoundSymbolDefinitionEditorCtrl(); sed.Bind(symEditor); return sed; } } }
private void PopulateAvailableParameters(ISymbolInstance symRef, ISymbolDefinitionBase symbol) { btnAddProperty.DropDown.Items.Clear(); PopulateParameterList(symRef, symbol); }