コード例 #1
0
 static GenericMixedEntityDescriptor()
 {
     _nodesToBuild = new INodeBuilder[]
     {
         new T(),
     };
 }
コード例 #2
0
        public StackNode(Store store, IStackModel stackModel, INodeBuilder builder)
        {
            m_Store         = store;
            this.stackModel = stackModel;
            m_GraphView     = builder.GraphView;

            styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(UICreationHelper.templatePath + "StackNode.uss"));

            style.overflow = Overflow.Visible;

            var borderItem = this.MandatoryQ("borderItem");

            borderItem.style.overflow = Overflow.Visible;

            this.AddManipulator(new ContextualMenuManipulator(OnContextualMenuEvent));
            RegisterCallback <AttachToPanelEvent>(OnEnterPanel);
            RegisterCallback <DetachFromPanelEvent>(OnLeavePanel);
            RegisterCallback <CustomStyleResolvedEvent>(OnCustomStyleResolved);

            userData = stackModel;

            UpdateFromModel();

            inputContainer.pickingMode  = PickingMode.Ignore;
            outputContainer.pickingMode = PickingMode.Ignore;

            PopulateStack(m_GraphView, store, stackModel, this);
        }
コード例 #3
0
 static GenericEntityDescriptor()
 {
     _nodesToBuild = new INodeBuilder[]
     {
         new NodeBuilder <T>()
     };
 }
コード例 #4
0
        public StackNode(Store store, IStackModel stackModel, INodeBuilder builder)
        {
            m_Store         = store;
            this.stackModel = stackModel;
            m_GraphView     = builder.GraphView;

            styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(UICreationHelper.templatePath + "StackNode.uss"));
            // @TODO: This might need to be reviewed in favor of a better / more scalable approach (non preprocessor based)
            // that would ideally bring the same level of backward/forward compatibility and/or removed when a 2013 beta version lands.
#if UNITY_2019_3_OR_NEWER
            styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(UICreationHelper.templatePath + "StackNode.2019.3.uss"));
#endif

            style.overflow = Overflow.Visible;

            var borderItem = this.MandatoryQ("borderItem");
            borderItem.style.overflow = Overflow.Visible;

            this.AddManipulator(new ContextualMenuManipulator(OnContextualMenuEvent));
            RegisterCallback <AttachToPanelEvent>(OnEnterPanel);
            RegisterCallback <DetachFromPanelEvent>(OnLeavePanel);
            RegisterCallback <CustomStyleResolvedEvent>(OnCustomStyleResolved);

            userData = stackModel;

            UpdateFromModel();

            inputContainer.pickingMode  = PickingMode.Ignore;
            outputContainer.pickingMode = PickingMode.Ignore;

            PopulateStack(m_GraphView, store, stackModel, this);
        }
コード例 #5
0
 public AssetMemberNode([NotNull] INodeBuilder nodeBuilder, Guid guid, [NotNull] IObjectNode parent, [NotNull] IMemberDescriptor memberDescriptor, IReference reference)
     : base(nodeBuilder, guid, parent, memberDescriptor, reference)
 {
     ValueChanged += ContentChanged;
     IsNonIdentifiableCollectionContent = MemberDescriptor.GetCustomAttributes <NonIdentifiableCollectionItemsAttribute>(true)?.Any() ?? false;
     CanOverride = MemberDescriptor.GetCustomAttributes <NonOverridableAttribute>(true)?.Any() != true;
 }
コード例 #6
0
 /// <inheritdoc/>
 public virtual IContent CreateMemberContent(INodeBuilder nodeBuilder, IContent container, IMemberDescriptor member, bool isPrimitive, object value, bool shouldProcessReference)
 {
     var reference = nodeBuilder.CreateReferenceForNode(member.Type, value);
     return new MemberContent(nodeBuilder, container, member, isPrimitive, reference)
     {
         ShouldProcessReference = shouldProcessReference
     };
 }
コード例 #7
0
ファイル: MemberContent.cs プロジェクト: FERRERDEV/xenko
 public MemberContent(INodeBuilder nodeBuilder, IContent container, IMemberDescriptor member, bool isPrimitive, IReference reference)
     : base(nodeBuilder.TypeDescriptorFactory.Find(member.Type), isPrimitive, reference)
 {
     if (container == null) throw new ArgumentNullException(nameof(container));
     Member = member;
     Container = container;
     nodeContainer = nodeBuilder.NodeContainer;
 }
コード例 #8
0
        /// <inheritdoc/>
        public virtual IContent CreateObjectContent(INodeBuilder nodeBuilder, object obj, ITypeDescriptor descriptor, bool isPrimitive, bool shouldProcessReference)
        {
            var reference = nodeBuilder.CreateReferenceForNode(descriptor.Type, obj) as ReferenceEnumerable;

            return(new ObjectContent(obj, descriptor, isPrimitive, reference)
            {
                ShouldProcessReference = shouldProcessReference
            });
        }
コード例 #9
0
        /// <inheritdoc/>
        public virtual IContent CreateMemberContent(INodeBuilder nodeBuilder, IContent container, IMemberDescriptor member, bool isPrimitive, object value, bool shouldProcessReference)
        {
            var reference = nodeBuilder.CreateReferenceForNode(member.Type, value);

            return(new MemberContent(nodeBuilder, container, member, isPrimitive, reference)
            {
                ShouldProcessReference = shouldProcessReference
            });
        }
コード例 #10
0
        protected override void Initialize(string rootNodeValue)
        {
            // Initializes the Binary Tree by creating a root node
            NodeBuilder = new TextValueNodeBuilder();

            RootNode = BuildNode(rootNodeValue);

            CurrentNode = RootNode;
        }
コード例 #11
0
 /// <inheritdoc/>
 public virtual IContent CreateMemberContent(INodeBuilder nodeBuilder, IContent container, IMemberDescriptor member, bool isPrimitive, object value, bool shouldProcessReference)
 {
     var reference = nodeBuilder.CreateReferenceForNode(member.Type, value);
     // TODO: OverridableMemberContent should not be in the DefaultContentFactory but in an asset-specific factory.
     return new OverridableMemberContent(nodeBuilder, container, member, isPrimitive, reference)
     {
         ShouldProcessReference = shouldProcessReference
     };
 }
コード例 #12
0
 public NodePresenterFactory([NotNull] INodeBuilder nodeBuilder, [NotNull] IReadOnlyCollection <INodePresenterCommand> availableCommands, [NotNull] IReadOnlyCollection <INodePresenterUpdater> availableUpdaters)
 {
     this.nodeBuilder = nodeBuilder;
     if (nodeBuilder == null)
     {
         throw new ArgumentNullException(nameof(nodeBuilder));
     }
     AvailableCommands = availableCommands ?? throw new ArgumentNullException(nameof(availableCommands));
     AvailableUpdaters = availableUpdaters ?? throw new ArgumentNullException(nameof(availableUpdaters));
 }
コード例 #13
0
ファイル: ObjectNode.cs プロジェクト: nesrak1/xenko
 public ObjectNode([NotNull] INodeBuilder nodeBuilder, object value, Guid guid, [NotNull] ITypeDescriptor descriptor, IReference reference)
     : base(nodeBuilder.SafeArgument(nameof(nodeBuilder)).NodeContainer, guid, descriptor)
 {
     if (reference is ObjectReference)
     {
         throw new ArgumentException($"An {nameof(ObjectNode)} cannot contain an {nameof(ObjectReference)}");
     }
     this.value     = value;
     ItemReferences = reference as ReferenceEnumerable;
 }
コード例 #14
0
ファイル: DefaultContentFactory.cs プロジェクト: AL-OMR/xenko
        /// <inheritdoc/>
        public virtual IContent CreateMemberContent(INodeBuilder nodeBuilder, IContent container, IMemberDescriptor member, bool isPrimitive, object value, bool shouldProcessReference)
        {
            var reference = nodeBuilder.CreateReferenceForNode(member.Type, value);

            // TODO: OverridableMemberContent should not be in the DefaultContentFactory but in an asset-specific factory.
            return(new OverridableMemberContent(nodeBuilder, container, member, isPrimitive, reference)
            {
                ShouldProcessReference = shouldProcessReference
            });
        }
コード例 #15
0
 public MemberContent(INodeBuilder nodeBuilder, IContent container, IMemberDescriptor member, bool isPrimitive, IReference reference)
     : base(nodeBuilder.TypeDescriptorFactory.Find(member.Type), isPrimitive, reference)
 {
     if (container == null)
     {
         throw new ArgumentNullException(nameof(container));
     }
     Member        = member;
     Container     = container;
     nodeContainer = nodeBuilder.NodeContainer;
 }
コード例 #16
0
 public ModelConsistencyCheckVisitor(INodeBuilder nodeBuilder)
 {
     if (nodeBuilder == null)
     {
         throw new ArgumentNullException("nodeBuilder");
     }
     this.nodeBuilder = nodeBuilder as DefaultModelBuilder;
     if (this.nodeBuilder == null)
     {
         throw new ArgumentException(@"This argument should be a DefaultModelBuilder", "nodeBuilder");
     }
 }
コード例 #17
0
ファイル: MemberNode.cs プロジェクト: Ethereal77/stride
 public MemberNode([NotNull] INodeBuilder nodeBuilder, Guid guid, [NotNull] IObjectNode parent, [NotNull] IMemberDescriptor memberDescriptor, IReference reference)
     : base(nodeBuilder.SafeArgument(nameof(nodeBuilder)).NodeContainer, guid, nodeBuilder.TypeDescriptorFactory.Find(memberDescriptor.Type))
 {
     if (nodeBuilder == null)
     {
         throw new ArgumentNullException(nameof(nodeBuilder));
     }
     Parent           = parent ?? throw new ArgumentNullException(nameof(parent));
     MemberDescriptor = memberDescriptor ?? throw new ArgumentNullException(nameof(memberDescriptor));
     Name             = memberDescriptor.Name;
     TargetReference  = reference as ObjectReference;
 }
コード例 #18
0
ファイル: Database.cs プロジェクト: daviddw/Kinsky
        public void AddTopLevelContainer(string aName, INodeBuilder aBuilder)
        {
            NodeContainer container = new NodeContainer(aName, iNextId, null);

            iNextId++;

            TopLevelContainer c = new TopLevelContainer();

            c.Container = container;
            c.Builder   = aBuilder;
            iTopLevelContainerList.Add(c);

            iRoot.Add(container.Name, container);
        }
コード例 #19
0
 /// <inheritdoc/>
 public virtual IObjectNode CreateBoxedNode(INodeBuilder nodeBuilder, Guid guid, object structure, ITypeDescriptor descriptor)
 {
     if (nodeBuilder == null)
     {
         throw new ArgumentNullException(nameof(nodeBuilder));
     }
     if (structure == null)
     {
         throw new ArgumentNullException(nameof(structure));
     }
     if (descriptor == null)
     {
         throw new ArgumentNullException(nameof(descriptor));
     }
     return(new BoxedNode(nodeBuilder, structure, guid, descriptor));
 }
コード例 #20
0
        public IteratorStackNode(Store store, IIteratorStackModel model, INodeBuilder builder)
            : base(store, model, builder)
        {
            // TODO: Move affecting rules in a more generic USS file and share with BlackboardEcsProvider
            styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(UICreationHelper.TemplatePath + "BlackboardECS.uss"));
            // @TODO: This might need to be reviewed in favor of a better / more scalable approach (non preprocessor based)
            // that would ideally bring the same level of backward/forward compatibility and/or removed when a 2013 beta version lands.
#if UNITY_2019_3_OR_NEWER
            styleSheets.Add(AssetDatabase.LoadAssetAtPath <StyleSheet>(UICreationHelper.TemplatePath + "BlackboardECS.2019.3.uss"));
#endif

            var stackNodeHeaderContainer = this.MandatoryQ("stackNodeHeaderContainer");

            var stencil = Store.GetState().CurrentGraphModel?.Stencil;
            stackNodeHeaderContainer.Add(new CriteriaSubSection(stencil, model, store));
        }
        public static GraphElement CreateToken(this INodeBuilder builder, Store store, IVariableModel model)
        {
            var       isExposed = model.DeclarationModel?.IsExposed;
            Texture2D icon      = (isExposed != null && isExposed.Value)
                ? VisualScriptingIconUtility.LoadIconRequired("GraphView/Nodes/BlackboardFieldExposed.png")
                : null;

            GetTokenPorts(store, model, out var input, out var output, Orientation.Horizontal);

            var token = new Token(model, store, input, output, builder.GraphView, icon);

            if (model.DeclarationModel != null && model.DeclarationModel is LoopVariableDeclarationModel loopVariableDeclarationModel)
            {
                VseUtility.AddTokenIcon(token, loopVariableDeclarationModel.TitleComponentIcon);
            }
            return(token);
        }
 public static GraphElement CreateUnaryOperator(this INodeBuilder builder, Store store, UnaryOperatorNodeModel model)
 {
     return(new Node(model, store, builder.GraphView)
     {
         CustomSearcherHandler = (node, nStore, pos, _) =>
         {
             SearcherService.ShowEnumValues("Pick a new operator type", typeof(UnaryOperatorKind), pos, (pickedEnum, __) =>
             {
                 if (pickedEnum != null)
                 {
                     ((UnaryOperatorNodeModel)node.model).Kind = (UnaryOperatorKind)pickedEnum;
                     nStore.Dispatch(new RefreshUIAction(UpdateFlags.GraphTopology));
                 }
             });
             return true;
         }
     });
 }
コード例 #23
0
        /// <inheritdoc/>
        public virtual IObjectNode CreateObjectNode(INodeBuilder nodeBuilder, Guid guid, object obj, ITypeDescriptor descriptor)
        {
            if (nodeBuilder == null)
            {
                throw new ArgumentNullException(nameof(nodeBuilder));
            }
            if (obj == null)
            {
                throw new ArgumentNullException(nameof(obj));
            }
            if (descriptor == null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }
            var reference = nodeBuilder.CreateReferenceForNode(descriptor.Type, obj, false) as ReferenceEnumerable;

            return(new ObjectNode(nodeBuilder, obj, guid, descriptor, reference));
        }
コード例 #24
0
        /// <inheritdoc/>
        public virtual IMemberNode CreateMemberNode(INodeBuilder nodeBuilder, Guid guid, IObjectNode parent, IMemberDescriptor member, object value)
        {
            if (nodeBuilder == null)
            {
                throw new ArgumentNullException(nameof(nodeBuilder));
            }
            if (parent == null)
            {
                throw new ArgumentNullException(nameof(parent));
            }
            if (member == null)
            {
                throw new ArgumentNullException(nameof(member));
            }
            var reference = nodeBuilder.CreateReferenceForNode(member.Type, value, true);

            return(new MemberNode(nodeBuilder, guid, parent, member, reference));
        }
コード例 #25
0
        /// <summary>
        /// 加载Update命令生成树的Set节点子节点及其附属的sql参数
        /// </summary>
        /// <param name="setParameters">属性名及属性值字典</param>
        /// <param name="nodeBuilders">Update命令生成树的Set节点子节点集合</param>
        /// <param name="sqlParameters">附属的sql参数集合</param>
        private void LoadUpdateChildNodesAndParameters(IDictionary <string, object> setParameters, List <INodeBuilder> nodeBuilders, List <IDbDataParameter> sqlParameters)
        {
            //获取table别名
            string tableAlias = this.TableMapper.Header.TableAlias;

            //遍历setParameters
            foreach (KeyValuePair <string, object> setPair in setParameters)
            {
                //获取columnMapper
                IColumnMapper columnMapper = this.TableMapper.GetColumnMapper(setPair.Key);
                //获取参数名
                string parameterName = string.Concat("New", columnMapper.Property.Name);
                //获取Update Set的子sql表达式节点
                INodeBuilder setBuilder = this.CommandTreeFactory.GetUpdateSetChildBuilder(tableAlias, columnMapper.ColumnName, parameterName);
                //添加sql表达式节点
                nodeBuilders.Add(setBuilder);
                //添加sql参数
                sqlParameters.Add(this.DbHelper.Parameter(parameterName, setPair.Value));
            }
        }
コード例 #26
0
 public MemberContent([NotNull] INodeBuilder nodeBuilder, Guid guid, [NotNull] IObjectNode parent, [NotNull] IMemberDescriptor memberDescriptor, bool isPrimitive, IReference reference)
     : base(guid, nodeBuilder.TypeDescriptorFactory.Find(memberDescriptor.Type), isPrimitive, reference)
 {
     if (nodeBuilder == null)
     {
         throw new ArgumentNullException(nameof(nodeBuilder));
     }
     if (parent == null)
     {
         throw new ArgumentNullException(nameof(parent));
     }
     if (memberDescriptor == null)
     {
         throw new ArgumentNullException(nameof(memberDescriptor));
     }
     Parent           = parent;
     MemberDescriptor = memberDescriptor;
     Name             = memberDescriptor.Name;
     nodeContainer    = nodeBuilder.NodeContainer;
 }
        public static GraphElement CreateSetVar(this INodeBuilder builder, Store store, SetVariableNodeModel model)
        {
            if (model.DeclarationModel.IsObjectReference())
            {
                return(GraphElementFactoryExtensions.CreateToken(builder, store, model));
            }
            if (!model.IsGetter)
            {
                return(new SetVariableNode(model, store, builder.GraphView));
            }

            GraphElementFactoryExtensions.GetTokenPorts(store, model, out var input, out var output);
            if (output != null)
            {
                output.portName = "";
            }

            var token = new DotsVariableToken(model, store, input, output, builder.GraphView);

            return(token);
        }
コード例 #28
0
        public OnKeyPressStackNode(Store store, OnKeyPressEcsNodeModel model, INodeBuilder builder)
            : base(store, model, builder)
        {
            void OnKeyCodeChange(ChangeEvent <Enum> e)
            {
                model.Code = (KeyCode)e.newValue;
                store.Dispatch(new RefreshUIAction(UpdateFlags.RequestCompilation));
            }

            void OnKeyPressTypeChange(ChangeEvent <Enum> e)
            {
                model.PressType = (OnKeyPressEcsNodeModel.KeyPressType)e.newValue;
                store.Dispatch(new RefreshUIAction(UpdateFlags.RequestCompilation));
            }

            RegisterCallback <AttachToPanelEvent>(evt =>
            {
                if (m_KeyCodeEnumField == null)
                {
                    title = "On";

                    m_KeyCodeEnumField = new EnumField(model.Code);
                    m_KeyCodeEnumField.RegisterValueChangedCallback(OnKeyCodeChange);
                    TitleElement.Add(m_KeyCodeEnumField);

                    m_PressTypeEnumField = new EnumField(model.PressType);
                    m_PressTypeEnumField.RegisterValueChangedCallback(OnKeyPressTypeChange);

                    TitleElement.Add(m_PressTypeEnumField);
                }
            });

            RegisterCallback <DetachFromPanelEvent>(evt =>
            {
                m_KeyCodeEnumField.UnregisterValueChangedCallback(OnKeyCodeChange);
                m_PressTypeEnumField.UnregisterValueChangedCallback(OnKeyPressTypeChange);
            });
        }
コード例 #29
0
        private void BuildNode(INodeBuilder builder, NodeHandle nodeHandle, NodeHandle activeStateNode)
        {
            switch (builder.Priority)
            {
            case BuildPriority.Immediate:
                if (builder.Build(nodeHandle, nodeHandle.gameObject, activeStateNode))
                {
                    nodeHandle.builder = builder;
                }
                break;

            default:
                pendingBuilds.Enqueue(new BuildInfo()
                {
                    Builder         = builder,
                    NodeHandle      = nodeHandle,
                    Node            = nodeHandle.node,
                    GameObject      = nodeHandle.gameObject,
                    ActiveStateNode = activeStateNode,
                });
                break;
            }
        }
コード例 #30
0
        /// <summary>
        /// 解析查询条件表达式,生成sql条件表达式节点及其附属的sql参数
        /// </summary>
        /// <param name="parameterExpression">Lambda表达式的参数</param>
        /// <param name="bodyExpression">Lambda表达式的主体(或主体的一部分)</param>
        /// <param name="parameterNames">记录不允许重复的sql参数名称</param>
        /// <returns>sql条件表达式节点及其附属的sql参数</returns>
        public override KeyValuePair <INodeBuilder, IDbDataParameter[]> Visit(ParameterExpression parameterExpression, Expression bodyExpression, HashSet <string> parameterNames)
        {
            //获取二叉树表达式主体
            BinaryExpression binaryExpression = bodyExpression as BinaryExpression;

            //若该表达式中包含( == null) 或 ( != null),直接返回sql NULL表达式节点及其空的附属参数
            if (this.IsContainsNullExpression(binaryExpression))
            {
                INodeBuilder nodeBuilder = this.GetNullBuilder(parameterExpression, binaryExpression);
                return(new KeyValuePair <INodeBuilder, IDbDataParameter[]>(nodeBuilder, new IDbDataParameter[0]));
            }
            //初始化的参数名及参数值
            string parameterName  = string.Empty;   //初始化参数名
            object parameterValue = null;           //初始化参数值
            //获取sql表达式节点
            BinaryBuilder binaryBuilder = new BinaryBuilder()
            {
                LeftBuilder  = base.GetSqlBuilder(parameterExpression, binaryExpression.Left, ref parameterName, ref parameterValue),
                NodeType     = binaryExpression.NodeType,
                RightBuilder = base.GetSqlBuilder(parameterExpression, binaryExpression.Right, ref parameterName, ref parameterValue)
            };

            //确定二叉树sql表达式节点的sql参数节点
            if (binaryBuilder.LeftBuilder == null)
            {
                binaryBuilder.LeftBuilder = base.GetParameterBuilder(parameterName);
            }
            if (binaryBuilder.RightBuilder == null)
            {
                binaryBuilder.RightBuilder = base.GetParameterBuilder(parameterName);
            }
            //获取其附属参数数组
            IDbDataParameter[] sqlParameters = base.GetParameters(parameterNames, parameterName, parameterValue).ToArray();
            //返回最终的sql参数表达式及其附属参数
            return(new KeyValuePair <INodeBuilder, IDbDataParameter[]>(binaryBuilder, sqlParameters));
        }
コード例 #31
0
        public INodeBuilderContext SiblingContext(INodeBuilder sibling)
        {
            var context = new LinkedBuilderContext(parser, this.parent, sibling);
            if (this.parent != null)
                this.parent.Add(context);
            else
                this.parser.AddActiveContext(context);

            return context;
        }
コード例 #32
0
 public void TranslateIn(INodeBuilder node)
 {
     var child = this.ChildContext(node);
     this.parser.SetActiveContext((LinkedBuilderContext)child);
 }
コード例 #33
0
ファイル: BoxedNode.cs プロジェクト: Aggror/Stride
 public BoxedNode([NotNull] INodeBuilder nodeBuilder, object value, Guid guid, [NotNull] ITypeDescriptor descriptor)
     : base(nodeBuilder, value, guid, descriptor, null)
 {
 }
コード例 #34
0
        public LinkedBuilderContext(NodeTreeParser parser, LinkedBuilderContext parent, INodeBuilder builder)
        {
            this.parser = parser;
            this.parent = parent;
            this.builder = builder;
            this.childs = new LinkedList<LinkedBuilderContext>();

            this.insertCommand = InsertCommand.Last;

            this.contextId = _lastId++;
        }
コード例 #35
0
        public INodeBuilderContext WrapContext(INodeBuilder wrapper)
        {
            this.TranslateOut();
            var preParent = this.parser.ActiveContext;
            var wrapperContext = new LinkedBuilderContext(parser, preParent, wrapper);
            preParent.Add(wrapperContext);

            return this.SwapParent(wrapperContext);
        }
コード例 #36
0
 public void TranslateIn(INodeBuilder node)
 {
     this.parser.ActiveContext.TranslateIn(node);
 }
コード例 #37
0
        public INodeBuilderContext ChildContext(INodeBuilder child)
        {
            var context = new LinkedBuilderContext(parser, this, child);
            this.parser.SetActiveContext(context);

            return this.Add(context);
        }
コード例 #38
0
 public OverridableMemberContent(INodeBuilder nodeBuilder, IContent container, IMemberDescriptor member, bool isPrimitive, IReference reference)
     : base(nodeBuilder, container, member, isPrimitive, reference)
 {
     Override = container.Value.GetOverride(member);
 }
コード例 #39
0
 public ModelConsistencyCheckVisitor(INodeBuilder nodeBuilder)
 {
     if (nodeBuilder == null) throw new ArgumentNullException(nameof(nodeBuilder));
     this.nodeBuilder = nodeBuilder as DefaultNodeBuilder;
     if (this.nodeBuilder == null) throw new ArgumentException(@"This argument should be a DefaultNodeBuilder", nameof(nodeBuilder));
 }
コード例 #40
0
 /// <inheritdoc/>
 public virtual IContent CreateObjectContent(INodeBuilder nodeBuilder, object obj, ITypeDescriptor descriptor, bool isPrimitive)
 {
     var reference = nodeBuilder.CreateReferenceForNode(descriptor.Type, obj) as ReferenceEnumerable;
     return new ObjectContent(obj, descriptor, isPrimitive, reference);
 }
コード例 #41
0
ファイル: AssetBoxedNode.cs プロジェクト: Beefr/xenko-wd
 public AssetBoxedNode([NotNull] INodeBuilder nodeBuilder, object value, Guid guid, [NotNull] ITypeDescriptor descriptor)
     : base(nodeBuilder, value, guid, descriptor)
 {
     ex           = new AssetObjectNodeExtended(this);
     ItemChanged += (sender, e) => ex.OnItemChanged(sender, e);
 }
コード例 #42
0
 /// <inheritdoc/>
 public virtual IContent CreateBoxedContent(INodeBuilder nodeBuilder, object structure, ITypeDescriptor descriptor, bool isPrimitive)
 {
     return new BoxedContent(structure, descriptor, isPrimitive);
 }
コード例 #43
0
 public LinkedBuilderContext(NodeTreeParser parser, INodeBuilder builder)
     : this(parser, null, builder)
 {
 }
コード例 #44
0
 public AssetNodePresenterFactory([NotNull] INodeBuilder nodeBuilder, [NotNull] IReadOnlyCollection <INodePresenterCommand> availableCommands, [NotNull] IReadOnlyCollection <INodePresenterUpdater> availableUpdaters)
     : base(nodeBuilder, availableCommands, availableUpdaters)
 {
 }