Пример #1
0
        // Create a template from the content string and
        // put it in the selected view.
        public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content)
        {
            if (content == null)
            {
                return;
            }

            // Get a reference to the designer host
            IDesignerHost host = (IDesignerHost)Component.Site.GetService(typeof(IDesignerHost));

            if (host != null)
            {
                // Create a template from the content string
                ITemplate template = ControlParser.ParseTemplate(host, content);

                // Determine which region should get the template
                // Either 'Content0' or 'Content1'
                if (region.Name.EndsWith("0"))
                {
                    myControl.View1 = template;
                }
                else if (region.Name.EndsWith("1"))
                {
                    myControl.View2 = template;
                }
            }
        }
Пример #2
0
        public override string GetEditableDesignerRegionContent(EditableDesignerRegion region)
        {
            IDesignerHost service = (IDesignerHost)CurrentControl.Site.GetService(typeof(IDesignerHost));

            if (service != null)
            {
                if (region.Name == "Items")
                {
                    StringBuilder sb = new StringBuilder();
                    foreach (ControlBase c in CurrentControl.Items)
                    {
                        sb.Append(ControlPersister.PersistControl(c, service));
                    }
                    //sb.Append(ControlPersister.PersistControl(CurrentControl.Items[1], service));
                    //sb.Append("<ext:CheckBox runat=\"server\" Text=\"Click to postback\" Checked=\"True\" AutoPostBack=\"True\" Label=\"CheckBox\" ID=\"CheckBox1\" __designer:mapid=\"4\" OnCheckedChanged=\"CheckBox1_CheckedChanged\"></ext:CheckBox>");
                    //sb.Append("<ext:CheckBox runat=\"server\" Text=\"Click to postback\" Checked=\"True\" AutoPostBack=\"True\" Label=\"CheckBox\" ID=\"CheckBox1\" OnCheckedChanged=\"CheckBox1_CheckedChanged\"></ext:CheckBox>");
                    return(sb.ToString());
                }
                else if (region.Name == "Toolbars")
                {
                    StringBuilder sb = new StringBuilder();
                    foreach (Toolbar c in CurrentControl.Toolbars)
                    {
                        sb.Append(ControlPersister.PersistControl(c, service));
                    }
                    return(sb.ToString());
                }
            }
            return(String.Empty);
        }
Пример #3
0
        public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content)
        {
            IDesignerHost service = (IDesignerHost)base.Component.Site.GetService(typeof(IDesignerHost));

            if (service != null)
            {
                if (region.Name == "Content")
                {
                    Tab tab = CurrentControl.Tabs[CurrentControl.ActiveTabIndex];

                    Control[] parsedControls = ControlParser.ParseControls(service, content);

                    tab.Items.Clear();
                    for (int i = 0, length = parsedControls.Length; i < length; i++)
                    {
                        ControlBase c = parsedControls[i] as ControlBase;
                        if (c != null)
                        {
                            tab.Items.Add(c);
                        }
                    }
                    //CurrentControl.Tabs[CurrentControl.ActiveTabIndex] = ControlParser.ParseControls(service, content)[0] as Tab;
                }
            }
        }
Пример #4
0
        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 == 2 && parameters[0] == "Body")
                {
                    int index = int.Parse(parameters[1]);
                    if (this.layout.Items.Count > 0)
                    {
                        ContentPanel panel = this.layout.Items[index] as ContentPanel;

                        if (panel != null)
                        {
                            ITemplate template = ControlParser.ParseTemplate(host, content);
                            panel.Body = template;
                        }
                        Tag.SetDirty(true);
                    }
                }
            }
        }
Пример #5
0
        public override string GetDesignTimeHtml(DesignerRegionCollection regions)
        {
            string title = CurrentControl.Title;

            if (String.IsNullOrEmpty(title))
            {
                title = String.Format("[{0}]", CurrentControl.ID);
            }

            EditableDesignerRegion itemsRegion = new EditableDesignerRegion(this, "Items", true);

            regions.Add(itemsRegion);

            string itemsContent = String.Format("<div style=\"border:solid 1px #ccc;\"><div style=\"font-size:11px;background-color:#ddd;\">Items</div><div style=\"padding:2px;\" {0}=\"{1}\">{2}</div></div>",
                                                DesignerRegion.DesignerRegionAttributeName, "0", GetEditableDesignerRegionContent(itemsRegion));


            string toolbarsContent = "";

            if (CurrentControl.Toolbars.Count > 0)
            {
                EditableDesignerRegion toolbarsRegion = new EditableDesignerRegion(this, "Toolbars", true);
                regions.Add(toolbarsRegion);

                toolbarsContent = String.Format("<div style=\"border:solid 1px #ccc;margin-bottom:5px;\"><div style=\"font-size:11px;background-color:#ddd;\">Toolbars</div><div style=\"padding:2px;\" {0}=\"{1}\">{2}</div></div>",
                                                DesignerRegion.DesignerRegionAttributeName, "1", GetEditableDesignerRegionContent(toolbarsRegion));
            }

            return(String.Format(TEMPLATE, title, toolbarsContent, itemsContent));
        }
        // Create a template from the content string and put it
        // in the selected view. Called by the designer host
        public override void SetEditableDesignerRegionContent(EditableDesignerRegion Region, string content)
        {
            if (content == null)
            {
                return;
            }

            // Get a reference to the designer host
            System.ComponentModel.Design.IDesignerHost host = (System.ComponentModel.Design.IDesignerHost)(Component.Site.GetService(typeof(System.ComponentModel.Design.IDesignerHost)));
            if (host != null)
            {
                // Create a template from the content string
                ITemplate template = ControlParser.ParseTemplate(host, content);

                if (template != null)
                {
                    switch (Region.Name)
                    {
                    case "FirstPanel":
                        Control.FirstPanel = template;
                        break;

                    case "SecondPanel":
                        Control.SecondPanel = template;
                        break;
                    }
                }
            }
        }
        // Get the content string for the selected region. Called by the designer host
        public override string GetEditableDesignerRegionContent(EditableDesignerRegion Region)
        {
            // Get a reference to the designer host
            System.ComponentModel.Design.IDesignerHost host = (System.ComponentModel.Design.IDesignerHost)(Component.Site.GetService(typeof(System.ComponentModel.Design.IDesignerHost)));

            if (host != null)
            {
                ITemplate template = null;
                switch (Region.Name)
                {
                case "FirstPanel":
                    template = Control.FirstPanel;
                    break;

                case "SecondPanel":
                    template = Control.SecondPanel;
                    break;
                }

                // Persist the template in the design host
                if (template != null)
                {
                    return(ControlPersister.PersistTemplate(template, host));
                }
            }

            return(string.Empty);
        }
Пример #8
0
        public override string GetEditableDesignerRegionContent(EditableDesignerRegion region)
        {
            IDesignerHost service = (IDesignerHost)CurrentControl.Site.GetService(typeof(IDesignerHost));

            if (service != null)
            {
                if (region.Name == "Items")
                {
                    StringBuilder sb = new StringBuilder();
                    foreach (ControlBase c in CurrentControl.Items)
                    {
                        sb.Append(ControlPersister.PersistControl(c, service));
                    }
                    return(sb.ToString());
                }
                else if (region.Name == "Toolbars")
                {
                    StringBuilder sb = new StringBuilder();
                    foreach (Toolbar c in CurrentControl.Toolbars)
                    {
                        sb.Append(ControlPersister.PersistControl(c, service));
                    }
                    return(sb.ToString());
                }
            }
            return(String.Empty);
        }
Пример #9
0
        public override string GetEditableDesignerRegionContent(EditableDesignerRegion region)
        {
            IDesignerHost host = (IDesignerHost)Component.Site.GetService(typeof(IDesignerHost));

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

                if (parameters.Length == 2 && parameters[0] == "Body")
                {
                    int activeIndex = int.Parse(parameters[1]);

                    if (activeIndex >= 0)
                    {
                        ContentPanel panel = this.layout.Items[activeIndex] as ContentPanel;
                        if (panel != null)
                        {
                            ITemplate contentTemplate = panel.Body;

                            if (contentTemplate != null)
                            {
                                return(ControlPersister.PersistTemplate(contentTemplate, host));
                            }
                        }
                    }
                }
            }
            return(String.Empty);
        }
Пример #10
0
        private string GetEditableDesignerAttribute()
        {
            EditableDesignerRegion region = new EditableDesignerRegion(this, "Body", true);

            designerRegions.Add(region);
            return(string.Format("{0}=\"{1}\"", DesignerRegion.DesignerRegionAttributeName, designerRegions.Count - 1));
        }
Пример #11
0
        /// <summary>
        /// GetDesignTimeHtml
        /// </summary>
        /// <param name="regions"></param>
        /// <returns></returns>
        /// <remarks>
        /// GetDesignTimeHtml
        /// </remarks>
        public override string GetDesignTimeHtml(DesignerRegionCollection regions)
        {
            this.CreateChildControls();

            for (int i = 0; i < this.nbRegions; i++)
            {
                DesignerRegion r;
                if (this.currentRegion == i)
                {
                    r = new EditableDesignerRegion(this, i.ToString());
                }
                else
                {
                    r = new DesignerRegion(this, i.ToString());
                }
                regions.Add(r);
            }

            if ((this.currentRegion >= 0) && (this.currentRegion < this.nbRegions))
            {
                regions[this.currentRegion].Highlight = true;
            }
            UpdateDesignTimeHtml();
            return(base.GetDesignTimeHtml(regions));
        }
Пример #12
0
        public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content)
        {
            IDesignerHost service = (IDesignerHost)base.Component.Site.GetService(typeof(IDesignerHost));

            if (service != null)
            {
                Control[] parsedControls = ControlParser.ParseControls(service, content);

                if (region.Name == "Items")
                {
                    CurrentControl.Items.Clear();
                    for (int i = 0; i < parsedControls.Length; i++)
                    {
                        ControlBase c = parsedControls[i] as ControlBase;
                        if (c != null)
                        {
                            CurrentControl.Items.Add(c);
                        }
                    }
                }
                else if (region.Name == "Toolbars")
                {
                    CurrentControl.Toolbars.Clear();
                    for (int i = 0; i < parsedControls.Length; i++)
                    {
                        Toolbar c = parsedControls[i] as Toolbar;
                        if (c != null)
                        {
                            CurrentControl.Toolbars.Add(c);
                        }
                    }
                }
            }
        }
Пример #13
0
        public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content)
        {
            if (region == null)
            {
                throw new ArgumentNullException("region");
            }

            string regionName = region.Name;

            Debug.Assert(regionName[0] == 'c' || regionName[0] == 'h', "Expected regionName to start with c or h, not " + regionName);

            bool setTabContent = regionName[0] == 'c';

            regionName = regionName.Substring(1);

            // figure out which tab we have.
            TabPanel activeTab = (TabPanel)TabContainer.FindControl(regionName);

            Debug.Assert(activeTab != null, "Couldn't find tab " + regionName);


            IDesignerHost host = (IDesignerHost)GetService(typeof(IDesignerHost));

            Debug.Assert(host != null, "Failed to get IDesignerHost?!?");

            // push the content into the right template
            PersistTemplateContent(activeTab, host, content, (setTabContent ? "ContentTemplate" : "HeaderTemplate"));
        }
Пример #14
0
        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 == 2 && parameters[0] == "Body")
                {
                    int index = int.Parse(parameters[1]);

                    if (this.tabPanelControl != null && this.tabPanelControl.Items.Count > 0)
                    {
                        PanelBase tab = this.tabPanelControl.Items[index] as PanelBase;

                        if (tab != null && tab is IContent)
                        {
                            ITemplate template = ControlParser.ParseTemplate(host, content);

                            ((IContent)tab).Content = template;
                        }

                        this.Tag.SetDirty(true);
                    }
                }
            }
        }
Пример #15
0
        public override string GetEditableDesignerRegionContent(EditableDesignerRegion region)
        {
            IDesignerHost host = (IDesignerHost)Component.Site.GetService(typeof(IDesignerHost));

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

                if (parameters.Length == 2 && parameters[0] == "Body")
                {
                    int activeIndex = int.Parse(parameters[1]);

                    if (activeIndex >= 0)
                    {
                        PanelBase tab = this.tabPanelControl.Items[activeIndex] as PanelBase;

                        if (tab != null && tab is IContent)
                        {
                            ITemplate contentTemplate = ((IContent)tab).Content;

                            if (contentTemplate != null)
                            {
                                return(ControlPersister.PersistTemplate(contentTemplate, host));
                            }
                        }
                    }
                }
            }

            return(String.Empty);
        }
Пример #16
0
        public override void SetEditableDesignerRegionContent
            (EditableDesignerRegion region, string content)
        {
            int regionIndex = Int32.Parse(region.Name.Substring(7));

            if (content == null)
            {
                //if (regionIndex == 0)
                //    _Control.View1 = null;
                //else if (regionIndex == 1)
                //    _Control.View2 = null;
                //return;
            }

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

            if (host != null)
            {
                //ITemplate template = ControlParser.ParseTemplate(host, content);

                //if (template != null)
                //{
                //    if (regionIndex == 0)
                //        myControl.View1 = template;
                //    else if (regionIndex == 1)
                //        myControl.View2 = template;
                //}
            }
        }
Пример #17
0
        protected virtual void BuildRegions(DesignerRegionCollection regions)
        {
            EditableDesignerRegion edr0 = new EditableDesignerRegion(this, "Content", false);

            regions.Add(edr0);

            regions[0].Highlight = true;
        }
 public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content)
 {
     if (string.Compare(this._content, content, StringComparison.Ordinal) != 0)
     {
         this._content = content;
         base.Tag.SetDirty(true);
     }
 }
Пример #19
0
        public override string GetDesignTimeHtml(DesignerRegionCollection regions)
        {
            if (CurrentControl.Tabs.Count == 0)
            {
                return(GetEmptyDesignTimeHtml());
            }


            // 1. Add tabs title list
            StringBuilder sb       = new StringBuilder();
            int           tabIndex = 0;

            foreach (Tab tab in CurrentControl.Tabs)
            {
                HtmlNodeBuilder nb = new HtmlNodeBuilder("div");

                if (!String.IsNullOrEmpty(tab.Title))
                {
                    nb.InnerProperty = tab.Title;
                }
                else
                {
                    nb.InnerProperty = String.Format("[{0}]", tab.ID);
                }

                string styleStr = "padding:0 5px;margin-right:5px;display:inline;";
                if (CurrentControl.ActiveTabIndex == tabIndex)
                {
                    styleStr += "background-color:#666;";
                }
                nb.SetProperty("style", styleStr);

                nb.SetProperty(DesignerRegion.DesignerRegionAttributeName, tabIndex.ToString());

                DesignerRegion region = new DesignerRegion(this, "Tab_" + tabIndex, true);
                region.Properties["TabIndex"] = tabIndex.ToString();
                regions.Add(region);

                sb.Append(nb.ToString());
                tabIndex++;
            }
            string tabsHtml = sb.ToString();


            // 2. Add current active tab content
            // Note: Currently, we have add (CurrentControl.Tabs.Count - 1) items into regions,
            // So This editable region's index is CurrentControl.Tabs.Count.
            EditableDesignerRegion editableRegion = new EditableDesignerRegion(this, "Content", true);

            regions.Add(editableRegion);
            //editableRegion.Properties["ActiveTabIndex"] = CurrentControl.ActiveTabIndex.ToString();

            string contentHtml = String.Format("<div {0}='{1}'>{2}</div>",
                                               DesignerRegion.DesignerRegionAttributeName, CurrentControl.Tabs.Count, GetEditableDesignerRegionContent(editableRegion));

            return(String.Format(PANEL_TEMPLATE, tabsHtml, contentHtml));
        }
Пример #20
0
        public override string GetEditableDesignerRegionContent(EditableDesignerRegion region)
        {
            IDesignerHost service = (IDesignerHost)base.Component.Site.GetService(typeof(IDesignerHost));

            if (service != null)
            {
                int rowIndex = Convert.ToInt32(region.Properties["RowIndex"]);

                StringBuilder sb = new StringBuilder();

                foreach (ControlBase c in CurrentControl.Rows[rowIndex].Items)
                {
                    sb.Append(ControlPersister.PersistControl(c, service));
                }

                return(sb.ToString());

                #region old code

                // table不会自动更新,还不如先不用
                ////int rowIndex = Convert.ToInt32(region.Name.Substring(EDITOR_REGION_PREFIX.Length));

                //int rowIndex = Convert.ToInt32(region.Properties["RowIndex"]);

                //ControlBaseCollection controls = CurrentControl.Rows[rowIndex].Items;

                //StringBuilder sb = new StringBuilder();
                //sb.Append("<table cellpadding='0' cellspacing='0' border='0' style='width:100%;'><tbody><tr>");

                //string columnWidthStr = (1.0 / controls.Count * 100).ToString("F0") + "%";

                //if (controls.Count == 0)
                //{
                //    sb.Append("<td style='width:100%;'></td>");
                //}
                //else
                //{
                //    foreach (ControlBase c in controls)
                //    {
                //        sb.AppendFormat("<td style='width:{0};'>", columnWidthStr);

                //        sb.Append(ControlPersister.PersistControl(c, service));

                //        sb.Append("</td>");
                //    }
                //}

                //sb.Append("</tr></tbody></table>");
                ////sb.Append(ControlPersister.PersistControl(CurrentControl.Rows[rowIndex].Fields[columnIndex], service));

                //return sb.ToString();

                #endregion
            }
            return(String.Empty);
        }
        public override string GetDesignTimeHtml(DesignerRegionCollection regions)
        {
            EditableDesignerRegion region = new EditableDesignerRegion(this, "Text")
            {
                Description = System.Design.SR.GetString("LocalizeDesigner_RegionWatermark")
            };

            region.Properties[typeof(Control)] = base.Component;
            regions.Add(region);
            return(string.Format(CultureInfo.InvariantCulture, "<span {0}=0></span>", new object[] { DesignerRegion.DesignerRegionAttributeName }));
        }
Пример #22
0
        public override string GetDesignTimeHtml(DesignerRegionCollection regions)
        {
            EditableDesignerRegion editableRegion = new EditableDesignerRegion(this, "Content", true);

            regions.Add(editableRegion);

            string content = String.Format("<div {0}='{1}'>{2}</div>",
                                           DesignerRegion.DesignerRegionAttributeName, 0, GetEditableDesignerRegionContent(editableRegion));

            return(content);
        }
        public override string GetEditableDesignerRegionContent(EditableDesignerRegion region)
        {
            ITemplate template = this.GetTemplate(this._changePassword);

            if (template == null)
            {
                return(this.GetEmptyDesignTimeHtml());
            }
            IDesignerHost service = (IDesignerHost)this.GetService(typeof(IDesignerHost));

            return(ControlPersister.PersistTemplate(template, service));
        }
        public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content)
        {
            PropertyDescriptor descriptor = TypeDescriptor.GetProperties(base.Component)[region.Name];
            IDesignerHost      service    = (IDesignerHost)this.GetService(typeof(IDesignerHost));
            ITemplate          template   = ControlParser.ParseTemplate(service, content);

            using (DesignerTransaction transaction = service.CreateTransaction("SetEditableDesignerRegionContent"))
            {
                descriptor.SetValue(base.Component, template);
                transaction.Commit();
            }
        }
        public override string GetDesignTimeHtml(DesignerRegionCollection regions)
        {
            EditableDesignerRegion region = new EditableDesignerRegion(this, "Content");

            regions.Add(region);
            Font   captionFont = SystemFonts.CaptionFont;
            Color  controlText = SystemColors.ControlText;
            Color  control     = SystemColors.Control;
            string str         = base.Component.GetType().Name + " - " + base.Component.Site.Name;

            return(string.Format(CultureInfo.InvariantCulture, "<table cellspacing=0 cellpadding=0 style=\"border:1px solid black; width:100%; height:200px\">\r\n            <tr>\r\n              <td style=\"width:100%; height:25px; font-family:Tahoma; font-size:{2}pt; color:{3}; background-color:{4}; padding:5px; border-bottom:1px solid black;\">\r\n                &nbsp;{0}\r\n              </td>\r\n            </tr>\r\n            <tr>\r\n              <td style=\"width:100%; height:175px; vertical-align:top;\" {1}=\"0\">\r\n              </td>\r\n            </tr>\r\n          </table>", new object[] { str, DesignerRegion.DesignerRegionAttributeName, captionFont.SizeInPoints, ColorTranslator.ToHtml(controlText), ColorTranslator.ToHtml(control) }));
        }
 public override string GetEditableDesignerRegionContent(EditableDesignerRegion region)
 {
     if (this._content == null)
     {
         this._content = base.Tag.GetContent();
     }
     if (this._content == null)
     {
         return(string.Empty);
     }
     return(this._content.Trim());
 }
Пример #27
0
        public override string XGetDesignTimeHtml(DesignerRegionCollection regions)
        {
            EditableDesignerRegion region = new EditableDesignerRegion(this, "Body", false);

            regions.Add(region);

            StringWriter   writer     = new StringWriter(CultureInfo.CurrentCulture);
            HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);

            FieldSet c = (FieldSet)this.Control;

            string width  = " width: {0};".FormatWith(c.Width.ToString());
            string height = " height: {0}px;".FormatWith((c.Height.Value - 39).ToString());

            string buttons = "";

            buttons += (c.CheckboxToggle && !c.Collapsible) ? "<input name=\"ext-comp-1002-checkbox\" type=\"checkbox\">" : "";
            buttons += (c.Collapsible && !c.CheckboxToggle) ? "<div class=\"x-tool x-tool-toggle\">&nbsp;</div>" : "";

            /*
             * 0 - ClientID
             * 1 - Title
             * 2 - Width
             * 3 - Height
             * 4 - Buttons
             * 5 - BodyStyle
             */

            object[] args = new object[6];
            args[0] = c.ClientID;
            args[1] = c.Title;
            args[2] = width;
            args[3] = height;
            args[4] = buttons;
            args[5] = c.BodyStyle;

            LiteralControl topCtrl = new LiteralControl(string.Format(this.HtmlBegin, args));

            topCtrl.RenderControl(htmlWriter);

            HtmlGenericControl div = (HtmlGenericControl)c.ContentContainer;

            div.Attributes[DesignerRegion.DesignerRegionAttributeName] = "0";
            div.InnerHtml = this.GetEditableDesignerRegionContent(region);
            div.RenderControl(htmlWriter);

            LiteralControl bottomCtrl = new LiteralControl(this.HtmlEnd);

            bottomCtrl.RenderControl(htmlWriter);

            return(writer.ToString());
        }
Пример #28
0
        public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content)
        {
            if (content == null)
            {
                return;
            }

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

            if (host != null)
            {
                ITemplate template = ControlParser.ParseTemplate(host, content);

                if (template == null)
                {
                    this.viewPort.Content = template;
                    this.viewPort.ContentContainer.Controls.Clear();
                    this.ChangeService();
                    return;
                }

                Control control = ControlParser.ParseControl(host, content);

                if (control is Layout)
                {
                    bool needRefresh = this.viewPort.LayoutControl == null;
                    this.viewPort.Content = template;

                    this.viewPort.ContentContainer.Controls.Clear();
                    this.viewPort.ContentContainer.Controls.Add(control);

                    if (needRefresh)
                    {
                        this.ChangeService();
                    }
                }
                else
                {
                    /*
                     * NOTE: We need to call ChangeService for clear content template if user drop not layout
                     *    But if control have ActionList then after drop this ActionList will be shown
                     *    If we call ChangeService at this moment than VS will crash because trying show
                     *    ActionList not exists control
                     *
                     *    Need find solution for fixed it
                     */


                    // this.ChangeService();
                }
            }
        }
 public override string GetEditableDesignerRegionContent(EditableDesignerRegion region)
 {
     if (region is LoginViewDesignerRegion)
     {
         ITemplate template = ((LoginViewDesignerRegion)region).Template;
         if (template != null)
         {
             IDesignerHost service = (IDesignerHost)base.Component.Site.GetService(typeof(IDesignerHost));
             return(ControlPersister.PersistTemplate(template, service));
         }
     }
     return(base.GetEditableDesignerRegionContent(region));
 }
Пример #30
0
        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);
                    }
                }
            }
        }
	public virtual void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content) {}
	public virtual string GetEditableDesignerRegionContent(EditableDesignerRegion region) {}