private void GenerateTabbedLayout(IModelDetailView detailViewInfo) { if (detailViewInfo.Layout["Main"] != null) { detailViewInfo.Layout["Main"].Remove(); } IModelLayoutGroup main = detailViewInfo.Layout.AddNode <IModelLayoutGroup>(ModelDetailViewLayoutNodesGenerator.MainLayoutGroupName); IModelLayoutGroup generalNode = null; IModelTabbedGroup tabNode = null; IModelLayoutGroup footerNode = null; foreach (IModelViewItem modelViewItem in detailViewInfo.Items) { IModelPropertyEditor editor = modelViewItem as IModelPropertyEditor; if (editor != null) { if (FindModelDefaultAttribute(editor.ModelMember.MemberInfo, CustomDetailViewItemsGenarator.VisiblePropertiesAttribute) != null) { editor.PropertyEditorType = typeof(DetailPropertyEditor);// editor.ModelMember.EditorsInfo[EditorAliases.DetailPropertyEditor].DefaultEditor; } editor.ImmediatePostData = true; IModelMemberExtender item = (IModelMemberExtender)editor; string tabPageName = item.TabPageName; if (string.IsNullOrEmpty(tabPageName)) { if (item.Footer) { if (footerNode == null) { footerNode = main.AddNode <IModelLayoutGroup>(CustomDetailViewItemsGenarator.FooterId); footerNode.Index = 5; } AddLayoutItemNode(footerNode, editor); } else { if (generalNode == null) { generalNode = main.AddNode <IModelLayoutGroup>(CustomDetailViewItemsGenarator.GeneralId); generalNode.Index = editor.Index.HasValue ? editor.Index : 0; } AddLayoutItemNode(generalNode, editor); } } else { if (tabNode == null) { tabNode = main.AddNode <IModelTabbedGroup>(CustomDetailViewItemsGenarator.MainTabId); tabNode.Index = editor.Index.HasValue ? editor.Index : 1; } IModelLayoutGroup group = AddEditorToTabbedGroup(tabNode, tabPageName, editor); if (editor.ModelMember.Index >= 0) { group.Index = editor.ModelMember.Index; } } } } }
//public static IModelLayoutViewItem AddItem(this IModelLayoutGroup group, Expression<Func<object, object>> property) //{ // var mc = (property.Body as UnaryExpression); // var mm = mc.Operand as MemberExpression; // return group.AddItem(mm.Member.Name); //} public static IModelLayoutViewItem AddItem(this IModelTabbedGroup tab, string viewItem) { var item = tab.AddNode <IModelLayoutViewItem>(); item.ViewItem = item.ViewItems[viewItem]; return(item); }
private IModelLayoutGroup AddEditorToTabbedGroup(IModelTabbedGroup rootTabNode, string tabId, IModelPropertyEditor editor, FlowDirection direction) { IModelLayoutGroup rootTabPageNode = (IModelLayoutGroup)rootTabNode[tabId]; if (rootTabPageNode == null) { rootTabPageNode = rootTabNode.AddNode <IModelLayoutGroup>(tabId); rootTabPageNode.Caption = CaptionHelper.ConvertCompoundName(tabId); rootTabPageNode.Direction = direction; } AddLayoutItemNode(rootTabPageNode, editor); return(rootTabPageNode); }
internal static void MapTabbedLayoutGroup( IModelTabbedGroup modelTabbedGroup, LayoutTabbedGroupItem tabbedGroupItemNode ) { modelTabbedGroup.Direction = tabbedGroupItemNode.Direction; if (tabbedGroupItemNode.MultiLine is not null) { modelTabbedGroup.MultiLine = tabbedGroupItemNode.MultiLine ?? modelTabbedGroup.MultiLine; } }
private IModelLayoutGroup AddEditorToTabbedGroup(IModelTabbedGroup rootTabNode, string tabId, IModelPropertyEditor editor) { return(AddEditorToTabbedGroup(rootTabNode, tabId, editor, FlowDirection.Horizontal)); }