Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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]);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 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);
 }
Esempio n. 8
0
 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);
        }
Esempio n. 10
0
 bool IsMasterDetail(IModelNode layoutInfo, ViewItemsCollection detailViewItems, IModelSplitLayout splitLayout) {
     return splitLayout != null && detailViewItems.Count > 1 && ((IModelListView)layoutInfo.Parent).MasterDetailMode == MasterDetailMode.ListViewAndDetailView;
 }
Esempio n. 11
0
 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);
        }