示例#1
0
        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();
        }
示例#2
0
 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;
                 }
             }
         }
     }
 }
示例#3
0
 public static string GetListViewId(Type type)
 {
     return(ModelListViewNodesGenerator.GetListViewId(type));
 }