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); } } } }
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); }