Invert.Core.GraphDesigner.NodeInputConfig.GetDataObject C# (CSharp) Method

GetDataObject() public method

public GetDataObject ( GenericNode node ) : IDiagramNodeItem
node GenericNode
return IDiagramNodeItem
        public IDiagramNodeItem GetDataObject(GenericNode node)
        {
            if (IsAlias) return node;
            if (PropertyInfo != null)
            {
                var result = PropertyInfo.GetValue(node, null) as GenericSlot;
                if (result == null)
                {
                    var slot = Activator.CreateInstance((Type)PropertyInfo.PropertyType) as GenericSlot;
                    slot.Node = node;
                    slot.Name = AttributeInfo.Name;
                    PropertyInfo.SetValue(node, slot, null);
                    return slot;
                }
                return result;
            }
            return node.GetConnectionReference(ReferenceType);
        }

Usage Example

コード例 #1
0
        private void AddOutput(NodeInputConfig inputConfig, GenericNode node = null)
        {
            if (!IsVisible(inputConfig.Visibility))
            {
                return;
            }
            var nodeToUse = node ?? GraphItem;
            var header    = new InputOutputViewModel();

            header.Name       = inputConfig.Name.GetValue(node);
            header.DataObject = inputConfig.IsAlias
                ? DataObject
                : inputConfig.GetDataObject(nodeToUse);
            header.OutputConnectorType = inputConfig.SourceType;
            header.IsInput             = false;
            header.IsOutput            = true;
            if (inputConfig.AttributeInfo != null)
            {
                header.IsNewLine = inputConfig.AttributeInfo.IsNewRow;
            }
            else
            {
                header.IsNewLine = true;
            }
            ContentItems.Add(header);
            ApplyOutputConfiguration(inputConfig, header.DataObject as IGraphItem, header.OutputConnector, true);
            if (header.InputConnector != null)
            {
                header.OutputConnector.Configuration = inputConfig;
            }
        }