private static IModelObjectView NewModelView(IModelViews modelViews, CloneModelViewAttribute cloneViewAttribute, IModelClass modelClass) { if (cloneViewAttribute.ViewType == CloneViewType.ListView) { var listView = modelViews.AddNode <IModelListView>(cloneViewAttribute.ViewId); listView.ModelClass = modelClass; ModelListViewNodesGenerator.GenerateNodes(listView, modelClass); return(listView); } if (cloneViewAttribute.ViewType == CloneViewType.LookupListView) { var listViewModel = modelViews.AddNode <IModelListView>(cloneViewAttribute.ViewId); listViewModel.ModelClass = modelClass; listViewModel.SetValue("IsLookupView", true); if (!modelClass.TypeInfo.IsPersistent) { listViewModel.DataAccessMode = CollectionSourceDataAccessMode.Client; } listViewModel.IsGroupPanelVisible = false; listViewModel.AutoExpandAllGroups = false; listViewModel.IsFooterVisible = false; return(listViewModel); } if (cloneViewAttribute.ViewType == CloneViewType.DetailView) { var detailView = modelViews.AddNode <IModelDetailView>(cloneViewAttribute.ViewId); detailView.ModelClass = modelClass; return(detailView); } throw new NotImplementedException(); }
public override void UpdateNode(ModelNode node) { foreach (IModelClass classInfo in node.Application.BOModel) { if (classInfo.TypeInfo.IsPersistent) { if (!string.IsNullOrEmpty(classInfo.Name)) { foreach (string method in LinqCollectionSourceHelper.GetXPQueryMethods(classInfo.TypeInfo.Type)) { string id = ModelListViewNodesGenerator.GetListViewId(classInfo.TypeInfo.Name) + "_" + method + LinqCollectionSource.DefaultSuffix; var listViewInfo = (IModelListView)(node.Application.Views[id] ?? node.AddNode <IModelListView>(id)); listViewInfo.ModelClass = classInfo; ((IModelListViewLinq)listViewInfo).XPQueryMethod = method; } } } } }
public static string GetListViewId(Type type) { return(ModelListViewNodesGenerator.GetListViewId(type)); }