//-------------------------------------------------------------------
        public static ControlContainerSplitterDesc FromTaxonSplitterContainer(ControlContainerSplitter _split)
        {
            ControlContainerSplitterDesc desc = new ControlContainerSplitterDesc
            {
                Orientation      = _split.Orientation,
                SplitterDistance = _split.SplitterDistance
            };

            if (_split.Panel1.Controls[0] is ControlContainerTabs)
            {
                desc.Panel1TabDesc = ControlContainerTabsDesc.FromTaxonTabControls(_split.Panel1.Controls[0] as ControlContainerTabs);
            }
            else if (_split.Panel1.Controls[0] is ControlContainerSplitter)
            {
                desc.Panel1SplitterDesc = FromTaxonSplitterContainer(_split.Panel1.Controls[0] as ControlContainerSplitter);
            }

            if (_split.Panel2.Controls[0] is ControlContainerTabs)
            {
                desc.Panel2TabDesc = ControlContainerTabsDesc.FromTaxonTabControls(_split.Panel2.Controls[0] as ControlContainerTabs);
            }
            else if (_split.Panel2.Controls[0] is ControlContainerSplitter)
            {
                desc.Panel2SplitterDesc = FromTaxonSplitterContainer(_split.Panel2.Controls[0] as ControlContainerSplitter);
            }
            return(desc);
        }
        public static ControlContainerTabsDesc FromTaxonTabControls(ControlContainerTabs _tab)
        {
            ControlContainerTabsDesc desc = new ControlContainerTabsDesc
            {
                ChildrenName = new List <string>()
            };

            foreach (Controls.TaxonControl tuc in _tab.Children)
            {
                desc.ChildrenName.Add(tuc.GetType().FullName);
            }
            desc.CurrentIndex          = _tab.Children.IndexOf(_tab.Current);
            desc.ShowHeaderWhenOnlyOne = _tab.ShowHeaderWhenOnlyOne;
            return(desc);
        }