public override object LayoutControls(IModelNode layoutInfo, ViewItemsCollection detailViewItems) { var splitLayout = layoutInfo as IModelSplitLayout; if (IsMasterDetail(layoutInfo, detailViewItems, splitLayout)) { _detailViewItems = detailViewItems; IListControlAdapter adapter = GetListControlAdapter((Control)detailViewItems[0].Control); if (adapter != null) { var detailControl = (Control)detailViewItems[1].Control; ASPxSplitter splitter = LayoutMasterDetail(detailControl, adapter, splitLayout); var viewItem = detailViewItems[0] as ListEditorViewItem; var listEditor = viewItem?.ListEditor as IXpandListEditor; if (listEditor != null) { listEditor.ViewControlsCreated += (s, e) => SetSplitterInitClientEvent(splitter, e.IsRoot); } RaiseMasterDetailLayout(new MasterDetailLayoutEventArgs { MasterViewItem = detailViewItems[0], DetailViewItem = detailViewItems[1], SplitterControl = splitter }); return(splitter); } throw new NotImplementedException(detailViewItems[0].Control.ToString()); } return(base.LayoutControls(layoutInfo, detailViewItems)); }
public override object LayoutControls(IModelNode layoutInfo, ViewItemsCollection detailViewItems) { var splitLayout = layoutInfo as IModelSplitLayout; if (IsMasterDetail(layoutInfo, detailViewItems, splitLayout)) { _detailViewItems = detailViewItems; var gridView = (Control)detailViewItems[0].Control as ASPxGridView; if (gridView != null) { var detailControl = (Control)detailViewItems[1].Control; SetupViewItems(gridView); ASPxSplitter splitter = LayoutMasterDetail(detailControl, gridView, splitLayout); var viewItem = detailViewItems[0] as ListEditorViewItem; if (viewItem != null) { var listEditor = viewItem.ListEditor as XpandASPxGridListEditor; if (listEditor != null) { listEditor.ViewControlsCreated += (s, e) => SetSplitterInitClientEvent(splitter, e.IsRoot); } } RaiseMasterDetailLayout(new MasterDetailLayoutEventArgs { MasterViewItem = detailViewItems[0], DetailViewItem = detailViewItems[1], SplitterControl = splitter }); return splitter; } throw new NotImplementedException(detailViewItems[0].Control.ToString()); } return base.LayoutControls(layoutInfo, detailViewItems); }
private static ViewItem FindViewItem(ViewItemsCollection viewItems, IModelLayoutViewItem layoutItemModel) { IModelViewItem viewItem = layoutItemModel.ViewItem; string viewItemId = viewItem != null ? viewItem.Id : layoutItemModel.Id; return(viewItems[viewItemId]); }
protected override object CreateControlsCore() { if (this.layoutManager == null) { this.layoutManager = base.Application.CreateLayoutManager(true); this.categoriesListView = base.Application.CreateListView(this.categoriesListViewId, this.CategoriesDataSource, false); this.categoriesListView.Caption = "Category"; this.categoriesListView.SelectionChanged += new EventHandler(this.categoriesListView_SelectionChanged); this.categoriesListView.CreateControls(); if (this.ObjectTreeList != null) { this.ObjectTreeList.OptionsSelection.MultiSelect = false; } ViewItemsCollection detailViewItems = new ViewItemsCollection(); detailViewItems.Add(new ControlViewItem("1", this.categoriesListView.Control)); detailViewItems.Add(new ControlViewItem("2", base.CreateControlsCore())); this.layoutManager.LayoutControls(base.Model.SplitLayout, detailViewItems); this.SubscribeToTreeList(); } var pnl = this.layoutManager.Container as SidePanelContainer; pnl.Orientation = System.Windows.Forms.Orientation.Horizontal; return(this.layoutManager.Container); }
public override object LayoutControls(IModelNode layoutInfo, ViewItemsCollection detailViewItems) { var splitLayout = layoutInfo as IModelSplitLayout; if (IsMasterDetail(layoutInfo, detailViewItems, splitLayout)) { _detailViewItems = detailViewItems; var gridView = (Control)detailViewItems[0].Control as ASPxGridView; if (gridView != null) { var detailControl = (Control)detailViewItems[1].Control; SetupViewItems(detailControl, gridView); return LayoutControls(detailControl, gridView, splitLayout); } throw new NotImplementedException(detailViewItems[0].Control.ToString()); } return base.LayoutControls(layoutInfo, detailViewItems); }
public override object LayoutControls(DevExpress.ExpressApp.Model.IModelNode layoutInfo, DevExpress.ExpressApp.Layout.ViewItemsCollection detailViewItems) { IModelSplitLayout splitLayout = layoutInfo as IModelSplitLayout; if (splitLayout != null && detailViewItems.Count > 1) { viewItems = detailViewItems; DevExpress.Web.ASPxSplitter.ASPxSplitter splitter = new DevExpress.Web.ASPxSplitter.ASPxSplitter(); splitter.ID = "MasterDetailSplitter"; splitter.ClientIDMode = ClientIDMode.Static; splitter.Orientation = (splitLayout.Direction == FlowDirection.Horizontal) ? Orientation.Horizontal : Orientation.Vertical; var listPane = splitter.Panes.Add(); listPane.Name = "listPane"; Control listControl = (Control)detailViewItems[0].Control; listControl.ClientIDMode = ClientIDMode.Predictable; listPane.Controls.Add(listControl); splitter.ClientSideEvents.Init = "function (s,e) {s.AdjustControl(); s.GetMainElement().ClientControl = s; document.getElementById('CP').style.height='0px';AdjustSize();}"; splitter.ShowCollapseBackwardButton = true; splitter.ShowCollapseForwardButton = true; ASPxGridView gridView = listControl as ASPxGridView; if (gridView != null) { if (string.IsNullOrEmpty(gridView.ClientInstanceName)) gridView.ClientInstanceName = "gridViewInSplitter"; splitter.ClientSideEvents.PaneResized = string.Format(CultureInfo.InvariantCulture, "function (s,e) {{ if (e.pane.name==='listPane') {{ {0}.SetWidth(e.pane.GetClientWidth()); {0}.SetHeight(e.pane.GetClientHeight()); }}}}", gridView.ClientInstanceName); } var detailPane = splitter.Panes.Add(); detailPane.ScrollBars = ScrollBars.Auto; ASPxCallbackPanel updatePanel = new ASPxCallbackPanel(); updatePanel.ID = "DetailUpdatePanel"; updatePanel.ClientIDMode = ClientIDMode.Static; updatePanel.ClientSideEvents.Init = "function (s,e) {s.GetMainElement().ClientControl = s;}"; Control detailControl = (Control)detailViewItems[1].Control; detailControl.ClientIDMode = ClientIDMode.Predictable; updatePanel.Controls.Add(detailControl); detailPane.Controls.Add(updatePanel); return splitter; } else return base.LayoutControls(layoutInfo, detailViewItems); }
/// <summary> /// Layouts the controls. /// </summary> /// <param name="layoutInfo">The layout information.</param> /// <param name="repositoryControls">The repository controls.</param> /// <returns></returns> /// <exception cref="ArgumentException"> /// The layoutInfo isn't IModelSplitLayout /// or /// repositoryControls /// </exception> public override object LayoutControls(IModelNode layoutInfo, ViewItemsCollection repositoryControls) { if (!(layoutInfo is IModelSplitLayout)) { throw new ArgumentException("The layoutInfo isn't IModelSplitLayout"); } if (repositoryControls.Count == 2) { LayoutControls((IModelSplitLayout)layoutInfo, repositoryControls[0], repositoryControls[1]); } else if (repositoryControls.Count == 1) { LayoutControls((IModelSplitLayout)layoutInfo, repositoryControls[0], null); } else { throw new ArgumentException(SystemExceptionLocalizer.GetExceptionMessage(ExceptionId.LayoutControlInvalidCount, repositoryControls.Count), "repositoryControls"); } return(Container); }
public override object LayoutControls(IModelNode layoutModel, ViewItemsCollection detailViewItems) { if (layoutModel is IModelSplitLayout) { return(base.LayoutControls(layoutModel, detailViewItems)); } else { RenderFragment root = (builder) => { foreach (var propertyEditor in detailViewItems) { if (propertyEditor is BlazorPropertyEditor blazorPropertyEditor) { blazorPropertyEditor.CreateControl(); RenderFragment renderFragment = blazorPropertyEditor.RenderFragment; builder.AddContent(0, renderFragment); } } }; return(root); } }
protected override LayoutItemTemplateContainer LayoutItem(ViewItemsCollection viewItems, IModelLayoutViewItem layoutItemModel) { LayoutItemTemplateContainer templateContainer = new LayoutItemTemplateContainer(this, viewItems, layoutItemModel); templateContainer.Template = LayoutItemTemplate; templateContainer.ID = WebIdHelper.GetCorrectedLayoutItemId(layoutItemModel); ViewItem viewItem = FindViewItem(viewItems, layoutItemModel); templateContainer.ViewItem = viewItem; if (viewItem != null) { MarkRequiredFieldCaptionEventArgs args = new MarkRequiredFieldCaptionEventArgs(viewItem, false); OnMarkRequiredFieldCaption(args); templateContainer.Caption = BuildItemCaption(viewItem, args.NeedMarkRequiredField, args.RequiredFieldMark); } templateContainer.ShowCaption = GetIsLayoutItemCaptionVisible(layoutItemModel, viewItem); templateContainer.CaptionWidth = CalculateCaptionWidth(viewItem, viewItems, layoutItemModel); templateContainer.CaptionLocation = GetCaptionLocation(layoutItemModel); templateContainer.CaptionHorizontalAlignment = GetCaptionHorizontalAlignment(layoutItemModel); templateContainer.CaptionVerticalAlignment = GetCaptionVerticalAlignment(layoutItemModel); OnLayoutItemCreatedNew(templateContainer, layoutItemModel, viewItem); return(templateContainer); }
bool IsMasterDetail(IModelNode layoutInfo, ViewItemsCollection detailViewItems, IModelSplitLayout splitLayout) { return splitLayout != null && detailViewItems.Count > 1 && ((IModelListView)layoutInfo.Parent).MasterDetailMode == MasterDetailMode.ListViewAndDetailView; }
bool IsMasterDetail(IModelNode layoutInfo, ViewItemsCollection detailViewItems, IModelSplitLayout splitLayout) { return(splitLayout != null && detailViewItems.Count > 1 && ((IModelListView)layoutInfo.Parent).MasterDetailMode == MasterDetailMode.ListViewAndDetailView); }
private void CollectLayoutItemVisibleCaptions <T>(IList <string> captions, IEnumerable <T> layoutInfo, ViewItemsCollection viewItems, bool recursively) { foreach (T itemInfo in layoutInfo) { if (itemInfo is IModelLayoutViewItem) { IModelLayoutViewItem layoutItemModel = (IModelLayoutViewItem)itemInfo; ViewItem viewItem = FindViewItem(viewItems, layoutItemModel); if (viewItem != null && GetIsLayoutItemCaptionVisible(layoutItemModel, viewItem) && GetIsItemForCaptionCalculation(layoutItemModel, viewItem)) { MarkRequiredFieldCaptionEventArgs args = new MarkRequiredFieldCaptionEventArgs(viewItem, false); OnMarkRequiredFieldCaption(args); captions.Add(BuildItemCaption(viewItem, args.NeedMarkRequiredField, args.RequiredFieldMark)); } } else if (recursively) { if (itemInfo is IEnumerable <IModelViewLayoutElement> ) { CollectLayoutItemVisibleCaptions <IModelViewLayoutElement>(captions, (IEnumerable <IModelViewLayoutElement>)itemInfo, viewItems, recursively); } else if (itemInfo is IEnumerable <IModelLayoutGroup> ) { CollectLayoutItemVisibleCaptions <IModelLayoutGroup>(captions, (IEnumerable <IModelLayoutGroup>)itemInfo, viewItems, recursively); } } } }
private System.Web.UI.WebControls.Unit CalculateLayoutItemCaptionWidthNew(IEnumerable <IModelViewLayoutElement> layoutInfo, ViewItemsCollection viewItems, bool recursively) { List <string> list = new List <string>(); CollectLayoutItemVisibleCaptions <IModelViewLayoutElement>(list, layoutInfo, viewItems, recursively); return(this.GetMaxStringWidth(list)); }
private System.Web.UI.WebControls.Unit CalculateCaptionWidth(ViewItem viewItem, ViewItemsCollection viewItems, IModelLayoutViewItem layoutItemModel) { var item = layoutItemModel as IModelWebLayoutItem; if (item != null) { if (item.TextAlignMode == TextAlignModeItem.AutoSize) { return(this.GetMaxStringWidth(new string[] { this.EnsureCaptionColon(viewItem.Caption) })); } else { IModelViewLayoutElement current = layoutItemModel; while (current != null) { var group = current.Parent as IModelWebLayoutGroup; if (group != null) { if (group.TextAlignMode == TextAlignModeGroup.AutoSize) { return(this.GetMaxStringWidth(new string[] { this.EnsureCaptionColon(viewItem.Caption) })); } if (group.TextAlignMode == TextAlignModeGroup.AlignLocal) { return(CalculateLayoutItemCaptionWidthNew((IModelLayoutGroup)group, viewItems, false)); } if (group.TextAlignMode == TextAlignModeGroup.AlignWithChildren) { return(CalculateLayoutItemCaptionWidthNew((IModelLayoutGroup)group, viewItems, true)); } } current = current.Parent as IModelViewLayoutElement; } } } return(this.LayoutItemCaptionWidth); }