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);
         }
     }
 }
Beispiel #2
0
        /// <summary>
        /// Binds the specified resource to this control. This effectively initializes
        /// all the fields in this control and sets up databinding on all fields. All
        /// subclasses *must* override this method.
        ///
        /// Also note that this method may be called more than once (e.g. Returning from
        /// and XML edit of this resource). Thus subclasses must take this scenario into
        /// account when implementing
        /// </summary>
        /// <param name="service">The editor service</param>
        protected override void Bind(Maestro.Editors.IEditorService service)
        {
            panelBody.Controls.Clear();
            var ssym = service.GetEditedResource() as ISimpleSymbolDefinition;
            var csym = service.GetEditedResource() as ICompoundSymbolDefinition;

            if (ssym != null)
            {
                var ssymCtrl = new SimpleSymbolDefinitionEditorCtrl();
                ssymCtrl.Dock = DockStyle.Fill;
                panelBody.Controls.Add(ssymCtrl);
                ssymCtrl.Bind(service);
            }
            else if (csym != null)
            {
                var csymCtrl = new CompoundSymbolDefinitionEditorCtrl();
                csymCtrl.Dock = DockStyle.Fill;
                panelBody.Controls.Add(csymCtrl);
                csymCtrl.Bind(service);
            }
        }