/// <summary>
        /// Create parse item of any type as long as it is derived from ParseItem
        /// </summary>
        /// <typeparam name="T">Type of item to create</typeparam>
        /// <param name="parent">Parent element</param>
        /// <param name="type">Suggested type to create</param>
        /// <returns></returns>
        internal ParseItem Create <T>(ComplexItem parent, Type type) where T : ParseItem, new()
        {
            ParseItem item = null;

            if (ExternalFactory != null)
            {
                item = ExternalFactory.CreateItem(this, TextProvider, TokenStream, parent, type);
            }

            if (item == null)
            {
                item = new T();
            }

            return(item);
        }
Example #2
0
 public AntennaConextMenuManager(IAntennas<AntennaEntity> Antennacollection)
 {
     this.components = null;
     this.m_externalFactory = new ExternalFactory();
     this.InitializeComponent();
     this.m_iantennas = Antennacollection;
     this.AntManage = new AntennaDataVerify(this.m_iantennas);
     this.contextMenuStrip_Child.Opening += new CancelEventHandler(this.contextMenuStrip_Child_Opening);
     this.m_ToolStripItemClick = new Dictionary<ToolStripItem, ToolStripItemClickedEventHandler>();
     this.m_ToolStripItemClick.Add(this.ToolStripMenuItem_CreateNew, new ToolStripItemClickedEventHandler(this.CreateNew_Click));
     this.m_ToolStripItemClick.Add(this.ToolStripMenuItem_ImportItem, new ToolStripItemClickedEventHandler(this.ImportAntenna_Click));
     this.m_ToolStripItemClick.Add(this.ToolStripMenuItem_ParentExport, new ToolStripItemClickedEventHandler(this.ParentExport_Click));
     this.m_ToolStripItemClick.Add(this.ToolStripMenuItem_properties, new ToolStripItemClickedEventHandler(this.PropertiesAntenna_Click));
     this.m_ToolStripItemClick.Add(this.ToolStripMenuItem_delete, new ToolStripItemClickedEventHandler(this.DeleteAntenna_Click));
     this.m_ToolStripItemClick.Add(this.ToolStripMenuItem_rename, new ToolStripItemClickedEventHandler(this.ModifyAntenna_Click));
     this.m_ToolStripItemClick.Add(this.ToolStripMenuItem_OpenTable, new ToolStripItemClickedEventHandler(this.OpenTable_Click));
     this.m_ToolStripItemClick.Add(this.ToolStripMenuItem_export, new ToolStripItemClickedEventHandler(this.Export_Click));
     this.m_ToolStripItemClick.Add(this.ToolStripMenuItem_duplicate, new ToolStripItemClickedEventHandler(this.Duplicate_Click));
 }
        /// <summary>
        /// Create specific item. Called when parser cannot accept random type and rather
        /// needs a specific type. Returned item can be derived from type T.
        /// </summary>
        /// <typeparam name="T">Type of item to create</typeparam>
        /// <param name="parent">Parent element</param>
        /// <param name="type">Suggested item type</param>
        /// <returns></returns>
        internal T CreateSpecific <T>(ComplexItem parent, Type type) where T : ParseItem, new()
        {
            T item = default;

            if (ExternalFactory != null)
            {
                ParseItem pi = ExternalFactory.CreateItem(this, TextProvider, TokenStream, parent, type);

                if (pi != null)
                {
                    item = pi as T;
                    Debug.Assert(item != null);
                }
            }

            if (item == null)
            {
                item = new T();
            }

            return(item);
        }
Example #4
0
 public AntennaConextMenuManager(IBaseService service)
 {
     this.components = null;
     this.m_externalFactory = new ExternalFactory();
     this.service = service;
 }