コード例 #1
0
        private List <T2> GenerateAttributeNodes(ModelNode node)
        {
            var modelMemberViewItem = node.GetParent <IModelMemberViewItem>();
            var nodes = new List <T2>();

            if (modelMemberViewItem != null)
            {
                var modelAdapterAttributes = modelMemberViewItem.ModelMember.MemberInfo.FindAttributes <ModelAdapterAttribute>().ToArray();

                for (var index = 0; index < modelAdapterAttributes.Length; index++)
                {
                    var modelAdapterAttribute = modelAdapterAttributes[index];
                    if (typeof(T).Name.EndsWith(modelAdapterAttribute.Adapter.ToString()))
                    {
                        var id           = ModelAdapterContextsNodeGenerator.ModelAdapterAttribute + "-" + modelAdapterAttribute.Adapter;
                        var newNode      = node.AddNode <T2>(id);
                        var modelAdapter = ((IModelApplicationModelAdapterContexts)node.Application).ModelAdapterContexts[
                            ModelAdapterContextsNodeGenerator.ModelAdapterAttribute].OfType <T>().FirstOrDefault(arg => arg.Id() == id);
                        newNode.ModelAdapter = modelAdapter;
                        newNode.Index        = index + 1;
                        nodes.Add(newNode);
                    }
                }
            }
            return(nodes);
        }
 public override void UpdateNode(ModelNode node)
 {
     if (node.GetParent <IModelArtifactState>() == null)
     {
         var modelActionExecutionContextGroup = ((IModelActionExecutionContextGroup)node);
         var modelActionExecutionContexts     = modelActionExecutionContextGroup.AddNode <IModelActionExecutionContexts>(ObjectViewActionContext);
         modelActionExecutionContexts.AddNode <IModelActionExecutionContext>("New");
     }
 }
コード例 #3
0
        protected override void GenerateNodesCore(ModelNode node)
        {
            var modelObjectView = node.GetParent <IModelObjectView>();

            var typeInfo = modelObjectView.ModelClass.TypeInfo;
            var infos    = typeInfo.FindAttributes <ModelMergedDifferencesAttribute>();

            foreach (var info in infos.Where(_ => _.TargetView == modelObjectView.Id && node[_.TargetView] == null))
            {
                var difference = node.AddNode <IModelMergedDifference>(info.TargetView);
                difference.View = node.Application.Views[info.SourceView].AsObjectView;
            }
        }
コード例 #4
0
ファイル: ModelLogic.cs プロジェクト: jjcolumb/DevExpress.XAF
 public override void UpdateNode(ModelNode node)
 {
     if (node.GetParent <IModelClass>().TypeInfo.Type == typeof(TraceEvent))
     {
         foreach (var module in Modules)
         {
             var modelAppearanceRule = node.AddNode <IModelAppearanceRule>($"{module.Key}Source");
             modelAppearanceRule.TargetItems = nameof(TraceEvent.Source);
             modelAppearanceRule.FontColor   = module.Value;
             modelAppearanceRule.Context     = "ListView";
             modelAppearanceRule.Criteria    = "[" + nameof(TraceEvent.Source) + "] = '" + module.Key + "'";
         }
     }
 }