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"); } }
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; } }
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 + "'"; } } }