protected override void LayoutContentControls(LayoutGroupTemplateContainer templateContainer, IList <Control> controlsToLayout) { base.LayoutContentControls(templateContainer, controlsToLayout); return; LayoutGroupTemplateContainer layoutGroupTemplateContainer = (LayoutGroupTemplateContainer)templateContainer; if (layoutGroupTemplateContainer.ShowCaption) { Panel panel = new Panel(); panel.Style.Add(HtmlTextWriterStyle.Padding, "2px 0px 2px 0px"); ASPxRoundPanel roundPanel = new ASPxRoundPanel(); roundPanel.Width = Unit.Percentage(100); roundPanel.ShowHeader = layoutGroupTemplateContainer.ShowCaption; if (layoutGroupTemplateContainer.HasHeaderImage) { ASPxImageHelper.SetImageProperties(roundPanel.HeaderImage, layoutGroupTemplateContainer.HeaderImageInfo); } roundPanel.ShowCollapseButton = true; roundPanel.CornerRadius = 0; roundPanel.HeaderText = layoutGroupTemplateContainer.Caption; panel.Controls.Add(roundPanel); templateContainer.Controls.Add(panel); foreach (Control control in controlsToLayout) { roundPanel.Controls.Add(control); } } else { foreach (Control control in controlsToLayout) { templateContainer.Controls.Add(control); } } }
private Control CreateCollapsibleCardGroup(LayoutGroupTemplateContainer templateContainer, LayoutItemCSSInfoBase layoutCssInfo) { ASPxRoundPanel cardPanel = new ASPxRoundPanel(); cardPanel.ID = WebIdHelper.GetCorrectedLayoutItemId(templateContainer.Model, "", "_CardTable"); cardPanel.BorderWidth = Unit.Empty; cardPanel.HeaderTemplate = new CustomTemplate(templateContainer); new CollapsibleCardGroupSynchronizer(templateContainer, cardPanel); if (layoutCssInfo.ParentDirection == FlowDirection.Horizontal) { cardPanel.CssClass = layoutCssInfo.EditorContainerCssClassName; } else { cardPanel.CssClass = layoutCssInfo.CardCssClassNameCore; } SetCustomCSSClass(templateContainer.Model, cardPanel); WebControl cardGroupContent = new WebControl(HtmlTextWriterTag.Div); cardGroupContent.CssClass = CardGroupContentCssClassName; if ((!templateContainer.IsOnTabPage || templateContainer.ParentGroupDirection == FlowDirection.Vertical)) { cardGroupContent.CssClass += " CollapsibleContent"; cardPanel.AllowCollapsingByHeaderClick = false; cardPanel.ShowCollapseButton = true; cardPanel.HeaderStyle.CssClass = "GroupHeader Label"; if (templateContainer.HasHeaderImage) { cardPanel.HeaderImage.AlternateText = templateContainer.Caption; ASPxImageHelper.SetImageProperties(cardPanel.HeaderImage, templateContainer.HeaderImageInfo); } if (templateContainer.ShowCaption) { if (WebApplicationStyleManager.EnableGroupUpperCase) { cardPanel.HeaderText = templateContainer.Caption.ToUpper(); } else { cardPanel.HeaderText = templateContainer.Caption; } } else { cardPanel.HeaderText = ""; } ((ISupportToolTip)this).SetToolTip(cardPanel, templateContainer.Model); } else { cardPanel.ShowHeader = false; } cardPanel.Controls.Add(cardGroupContent); templateContainer.Controls.Add(cardPanel); return(cardGroupContent); }
private void panel_Unload(object sender, EventArgs e) { if (panel != null) { ((IModelLayoutGroupWeb)templateContainer.Model).IsCardGroupCollapsed = panel.Collapsed; templateContainer = null; panel.Unload -= panel_Unload; panel = null; } }
public CollapsibleCardGroupSynchronizer(LayoutGroupTemplateContainer templateContainer, ASPxRoundPanel panel) { this.templateContainer = templateContainer; this.panel = panel; panel.Collapsed = ((IModelLayoutGroupWeb)templateContainer.Model).IsCardGroupCollapsed; if (WebApplication.OptimizationSettings.LockRecoverViewStateOnNavigationCallback || WebApplication.OptimizationSettings.UseFastCallbackHandlers) { panel.ClientSideEvents.CollapsedChanged = "function(s,e) { xaf.LayoutManagementController.CollapsiblePanelCollapsedChanged(s, e); }"; } panel.Unload += panel_Unload; }
protected override void LayoutContentControls(LayoutGroupTemplateContainer templateContainer, IList <Control> controlsToLayout) { LayoutGroupTemplateContainer layoutGroupTemplateContainer = (LayoutGroupTemplateContainer)templateContainer; if (layoutGroupTemplateContainer.ShowCaption) { // Outer Panel for setting the default style ASPxPanel outerPanel = new ASPxPanel(); outerPanel.Style.Add(HtmlTextWriterStyle.Padding, "10px 5px 10px 5px"); // Round Panel containing the Content Panel ASPxRoundPanel roundPanel = new ASPxRoundPanel(); roundPanel.Width = Unit.Percentage(100); roundPanel.ShowHeader = layoutGroupTemplateContainer.ShowCaption; if (layoutGroupTemplateContainer.HasHeaderImage) { ASPxImageHelper.SetImageProperties(roundPanel.HeaderImage, layoutGroupTemplateContainer.HeaderImageInfo); } // Content Panel ASPxPanel contentPanel = new ASPxPanel(); contentPanel.ClientInstanceName = templateContainer.Model.Id + "_ContentPanel"; // Set the RoundPanel Header Template roundPanel.HeaderTemplate = new HeaderTemplateEx(layoutGroupTemplateContainer.Caption, contentPanel); // Populate the controls roundPanel.Controls.Add(contentPanel); outerPanel.Controls.Add(roundPanel); templateContainer.Controls.Add(outerPanel); foreach (Control control in controlsToLayout) { contentPanel.Controls.Add(control); } } else { foreach (Control control in controlsToLayout) { templateContainer.Controls.Add(control); } } }
public void ApplyGroupControlStyle(LayoutGroupTemplateContainer layoutGroupTemplateContainer) { var layoutStyle = ((IModelLayoutStyle)layoutGroupTemplateContainer.Model); var containerControl = layoutGroupTemplateContainer.Controls.OfType <WebControl>().FirstOrDefault(); if (containerControl != null) { var groupTemplateContainer = LayoutGroupTemplateContainer(containerControl, 0); if (groupTemplateContainer != null) { ApplyStyle((IModelLayoutStyle)groupTemplateContainer.Model, (WebControl)groupTemplateContainer.Parent); groupTemplateContainer = LayoutGroupTemplateContainer(containerControl, 1); if (groupTemplateContainer != null) { ApplyStyle((IModelLayoutStyle)groupTemplateContainer.Model, (WebControl)groupTemplateContainer.Parent); } } ApplyStyle(layoutStyle, containerControl); } }
protected override void LayoutContentControls(LayoutGroupTemplateContainer layoutGroupTemplateContainer, IList <Control> controlsToLayout) { if (layoutGroupTemplateContainer.ShowCaption) { Panel panel = new Panel(); panel.Style.Add(HtmlTextWriterStyle.Padding, "10px 5px 10px 5px"); ASPxRoundPanel roundPanel = new ASPxRoundPanel(); roundPanel.Width = Unit.Percentage(100); roundPanel.HeaderText = layoutGroupTemplateContainer.Caption; if (layoutGroupTemplateContainer.HasHeaderImage) { ASPxImageHelper.SetImageProperties(roundPanel.HeaderImage, layoutGroupTemplateContainer.HeaderImageInfo); } AddControls(roundPanel.Controls, controlsToLayout); panel.Controls.Add(roundPanel); layoutGroupTemplateContainer.Controls.Add(panel); } else { AddControls(layoutGroupTemplateContainer.Controls, controlsToLayout); } }
private Control CreateCardGroup(LayoutGroupTemplateContainer templateContainer, LayoutItemCSSInfoBase itemCssInfo) { Table cardTable = RenderHelper.CreateTable(); cardTable.BorderWidth = Unit.Empty; if (itemCssInfo.ParentDirection == FlowDirection.Horizontal) { cardTable.CssClass = itemCssInfo.EditorContainerCssClassName; } else { cardTable.CssClass = itemCssInfo.CardCssClassNameCore; } SetCustomCSSClass(templateContainer.Model, cardTable); cardTable.ID = WebIdHelper.GetCorrectedLayoutItemId(templateContainer.Model, "", "_CardTable"); TableRow headerRow = new TableRow(); headerRow.VerticalAlign = VerticalAlign.Top; cardTable.Rows.Add(headerRow); TableRow contentRow = new TableRow(); contentRow.VerticalAlign = VerticalAlign.Top; cardTable.Rows.Add(contentRow); WebControl header = CreateLayoutContentHeader(templateContainer, itemCssInfo.CardItem); if (header != null) { TableCell headerCell = new TableCell(); headerRow.Cells.Add(headerCell); headerCell.Controls.Add(header); } TableCell contentCell = new TableCell(); contentCell.CssClass = CardGroupContentCssClassName; contentRow.Cells.Add(contentCell); templateContainer.Controls.Add(cardTable); return(contentCell); }
protected override void LayoutContentControls(LayoutGroupTemplateContainer templateContainer, IList <Control> controlsToLayout) { Control contentContainer = templateContainer; LayoutCSSInfo layoutCssInfo = templateContainer.LayoutManager.LayoutCSSInfo; LayoutItemCSSInfoBase itemCssInfo = layoutCssInfo?.GetCssInfo(templateContainer.Model); if (itemCssInfo != null && itemCssInfo.CardItem) { if (((IModelLayoutGroupWeb)templateContainer.Model).IsCollapsibleCardGroup) { contentContainer = CreateCollapsibleCardGroup(templateContainer, itemCssInfo); } else { contentContainer = CreateCardGroup(templateContainer, itemCssInfo); } } else { WebControl header = CreateLayoutContentHeader(templateContainer, false); if (header != null) { templateContainer.Controls.Add(header); } } foreach (Control control in controlsToLayout) { if (templateContainer.LayoutManager.DelayedItemsInitialization && control is LayoutItemTemplateContainerBase @base) { @base.Instantiate(); } contentContainer.Controls.Add(control); } }
private WebControl CreateLayoutContentHeader(LayoutGroupTemplateContainer templateContainer, bool isCardItem) { WebControl div = null; if (templateContainer.ShowCaption && (!templateContainer.IsOnTabPage || templateContainer.ParentGroupDirection == FlowDirection.Vertical)) { div = new WebControl(HtmlTextWriterTag.Div); div.CssClass = "GroupHeader"; if (templateContainer.HasHeaderImage) { WebControl imageDiv = new WebControl(HtmlTextWriterTag.Div); ASPxImage imageHeader = new ASPxImage(); imageDiv.Controls.Add(imageHeader); imageHeader.CssClass = "Image"; ASPxImageHelper.SetImageProperties(imageHeader, templateContainer.HeaderImageInfo); imageHeader.AlternateText = templateContainer.Caption; div.Controls.Add(imageDiv); } WebControl labelDiv = new WebControl(HtmlTextWriterTag.Div); Label label = new Label(); labelDiv.Controls.Add(label); if (isCardItem && WebApplicationStyleManager.IsNewStyle && WebApplicationStyleManager.EnableGroupUpperCase) { label.Text = templateContainer.Caption.ToUpper(); } else { label.Text = templateContainer.Caption; } ((ISupportToolTip)this).SetToolTip(label, templateContainer.Model); templateContainer.CaptionControl = label; label.CssClass = "Label"; div.Controls.Add(labelDiv); } return(div); }
public CustomTemplate(LayoutGroupTemplateContainer templateContainer) { _templateContainer = templateContainer; }