Ext.Net.BorderLayoutDesigner.SetEditableDesignerRegionContent C# (CSharp) Method

SetEditableDesignerRegionContent() private method

private SetEditableDesignerRegionContent ( System.Web.UI.Design.EditableDesignerRegion region, string content ) : void
region System.Web.UI.Design.EditableDesignerRegion
content string
return void
        public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content)
        {
            if (content == null)
            {
                return;
            }

            IDesignerHost host = (IDesignerHost)Component.Site.GetService(typeof(IDesignerHost));

            if (host != null)
            {
                string[] parameters = region.Name.Split('_');

                if (parameters.Length == 3 && parameters[0] == "Body")
                {
                    BorderLayoutRegion layoutRegion = GetLayoutRegionByName(parameters[1]);

                    if (layoutRegion != null && layoutRegion.Items.Count > 0)
                    {
                        IContent contentPanel = null;
                        int activeIndex = int.Parse(parameters[2]);

                        if (layoutRegion.Items[0] is Panel)
                        {
                            contentPanel = layoutRegion.Items[0] as Panel;
                        }
                        else if (layoutRegion.Items[0] is TabPanel)
                        {
                            TabPanel tabPanel = layoutRegion.Items[0] as TabPanel;

                            if (activeIndex < tabPanel.Items.Count)
                            {
                                contentPanel = tabPanel.Items[activeIndex] as IContent;
                            }
                        }

                        if (contentPanel == null)
                        {
                            return;
                        }

                        ITemplate template = ControlParser.ParseTemplate(host, content);
                        TypeDescriptor.GetProperties(contentPanel)["Body"].SetValue(
                                contentPanel, template);
                        contentPanel.Content = template;

                        this.Tag.SetDirty(true);
                    }
                }
            }
        }