コード例 #1
0
        public override void UpdateNode(ModelNode node)
        {
            var rootNavigationItems = (IModelRootNavigationItems)node;

            var mainNode = rootNavigationItems.Items.AddNode <IModelNavigationItem>("Main");

            AddNavItem(mainNode.Items, ModelNodeIdHelper.GetListViewId(typeof(Event)));
            AddNavItem(mainNode.Items, ModelNodeIdHelper.GetListViewId(typeof(Person)));
        }
コード例 #2
0
        /// <summary>
        /// Updates the Application Model node content generated by the Nodes Generator, specified by the <see cref="T:DevExpress.ExpressApp.Model.ModelNodesGeneratorUpdater`1" /> class' type parameter.
        /// </summary>
        /// <param name="node">A ModelNode Application Model node to be updated.</param>
        /// <autogeneratedoc />
        public override void UpdateNode(ModelNode node)
        {
            if (node is IModelViews views)
            {
                //Make sure we generate navigation item nodes before we remove the views
                //Otherwise we have no idea what View/ModelClass the navigation item belonged to
                if (views.Application is IModelApplicationNavigationItems modelApplicationNavigationItems)
                {
                    _ = modelApplicationNavigationItems.NavigationItems.Items;
                }

                foreach (var view in views.OfType <IModelObjectView>())
                {
                    foreach (var attribute in view.ModelClass.TypeInfo.FindAttributes <GenerateNoViewAttribute>())
                    {
                        if (view.Id.Equals(attribute.ViewId))
                        {
                            view.Remove();
                        }
                    }

                    if (view is IModelDetailView)
                    {
                        if (view.ModelClass.TypeInfo.IsAttributeDefined <GenerateNoDetailViewAttribute>(false))
                        {
                            if (ModelNodeIdHelper.GetDetailViewId(view.ModelClass.TypeInfo.Type).Equals(view.Id))
                            {
                                view.Remove();
                            }
                        }
                    }

                    if (view is IModelListView)
                    {
                        if (view.ModelClass.TypeInfo.IsAttributeDefined <GenerateNoListViewAttribute>(false))
                        {
                            if (ModelNodeIdHelper.GetListViewId(view.ModelClass.TypeInfo.Type).Equals(view.Id))
                            {
                                view.Remove();
                            }
                        }

                        if (view.ModelClass.TypeInfo.IsAttributeDefined <GenerateNoLookupListViewAttribute>(false))
                        {
                            if (ModelNodeIdHelper.GetLookupListViewId(view.ModelClass.TypeInfo.Type).Equals(view.Id))
                            {
                                view.Remove();
                            }
                        }
                    }
                }
            }
        }
コード例 #3
0
        private void ShowProxyListView(SimpleActionExecuteEventArgs e, string memberName)
        {
            var masterObject     = this.View.CurrentObject;
            var memberInfo       = this.View.ObjectTypeInfo.FindMember(memberName);
            var listViewID       = ModelNodeIdHelper.GetNestedListViewId(memberInfo.Owner.Type, memberName);
            var collectionSource = Application.CreatePropertyCollectionSource(ObjectSpace, typeof(MasterDetailMode), masterObject, memberInfo, listViewID);
            var view             = Application.CreateListView(listViewID, collectionSource, false);

            e.ShowViewParameters.CreatedView  = view;
            e.ShowViewParameters.Context      = TemplateContext.View;
            e.ShowViewParameters.TargetWindow = TargetWindow.NewModalWindow;
            var dc = new DialogController();

            dc.SaveOnAccept = false;
            //e.ShowViewParameters.Controllers.Add(dc);
        }
コード例 #4
0
        public override void UpdateNode(ModelNode node)
        {
            var options = (IModelCommandlineOptionsIModelNode)node;

            var items = ((IModelApplicationNavigationItems)node.Application).NavigationItems;

            var eventNode = options.AddNode <IModelCommandlineOption>();

            eventNode.Argument       = "/Events";
            eventNode.NavigationItem = items.Items["Main"].Items[ModelNodeIdHelper.GetListViewId(typeof(Event))];

            var personNode = options.AddNode <IModelCommandlineOption>();

            personNode.Argument       = "/People";
            personNode.NavigationItem = items.Items["Main"].Items[ModelNodeIdHelper.GetListViewId(typeof(Person))];
        }
コード例 #5
0
 DetailView LogonAttemptsAmountedToLimitDetailView()
 {
     return(Application.CreateDetailView(new NonPersistentObjectSpace(Application.TypesInfo), ModelNodeIdHelper.GetDetailViewId(typeof(LogonAttemptsAmountedToLimit)), true));
 }
コード例 #6
0
 internal static IModelDetailView?FindDetailView(this IModelApplication model, Type boType)
 => model
 .Views
 .OfType <IModelDetailView>()
 .FirstOrDefault(d => d.Id.Equals(ModelNodeIdHelper.GetDetailViewId(boType), StringComparison.Ordinal));