Example #1
0
    // GetCompatiblePortsをオーバーライドする
    public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
    {
        var compatiblePorts = new List <Port>();

        compatiblePorts.AddRange(ports.ToList().Where(port =>
        {
            // 同じノードには繋げない
            if (startPort.node == port.node)
            {
                return(false);
            }

            // Input同士、Output同士は繋げない
            if (port.direction == startPort.direction)
            {
                return(false);
            }

            // ポートの型が一致していない場合は繋げない
            if (port.portType != startPort.portType)
            {
                return(false);
            }

            return(true);
        }));

        return(compatiblePorts);
    }
 public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
 {
     return(ports
            .ToList()
            .Where(port => port.direction != startPort.direction && port.node != startPort.node)
            .ToList());
 }
Example #3
0
        public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
        {
            var compatiblePorts = new List <Port>();

            compatiblePorts.AddRange(ports.ToList().Where(p => {
                var portView = p as PortView;

                if (portView.owner == (startPort as PortView).owner)
                {
                    return(false);
                }

                if (p.direction == startPort.direction)
                {
                    return(false);
                }

                //Check for type assignability
                if (!BaseGraph.TypesAreConnectable(startPort.portType, p.portType))
                {
                    return(false);
                }

                //Check if the edge already exists
                if (portView.GetEdges().Any(e => e.input == startPort || e.output == startPort))
                {
                    return(false);
                }

                return(true);
            }));

            return(compatiblePorts);
        }
        public override List <PortView> GetCompatiblePorts(PortView startPort, NodeAdapter nodeAdapter)
        {
            var compatible = new List <PortView>();

            ports.ForEach(p =>
            {
                if (startPort == p)
                {
                    return;
                }
                if (startPort.node == p.node)
                {
                    return;
                }
                if (startPort.direction == p.direction)
                {
                    return;
                }
                if (p.direction == Direction.Input && !startPort.portType.IsCastableTo(p.portType, true))
                {
                    return;
                }
                if (p.direction == Direction.Output && !p.portType.IsCastableTo(startPort.portType, true))
                {
                    return;
                }
                compatible.Add(p);
            });
            return(compatible);
        }
Example #5
0
        public void When_NodeExt_Has_Alternate_Network_Configured_Use_External_Hostname(string networkType, string expected)
        {
            var node    = new Node();
            var nodeExt = new NodesExt
            {
                Hostname           = "default",
                AlternateAddresses = new AlternateAddressesConfig
                {
                    External = new ExternalAddressesConfig
                    {
                        Hostname = "external"
                    }
                }
            };

            var bucketConfig = new BucketConfig
            {
                NetworkType   = networkType,
                SurrogateHost = expected
            };

            var adapter = new NodeAdapter(node, nodeExt, bucketConfig);

            Assert.Equal(expected, adapter.Hostname);
        }
        public void When_NodeExt_Has_Alternate_Network_Configured_Use_External_Hostname(string networkType, string expected)
        {
            var node    = new Node();
            var nodeExt = new NodesExt
            {
                Hostname           = "default",
                AlternateAddresses = new Dictionary <string, ExternalAddressesConfig>
                {
                    {
                        "external", new ExternalAddressesConfig
                        {
                            Hostname = "external"
                        }
                    }
                }
            };

            var bucketConfig = new BucketConfig
            {
                NetworkResolution = networkType
            };

            var adapter = new NodeAdapter(node, nodeExt, bucketConfig);

            Assert.Equal(expected, adapter.Hostname);
        }
Example #7
0
        public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
        {
            var compatiblePorts = new List <Port>();

            System.Type[] allowedPortTypes;
            if (startPort.direction == Direction.Input)
            {
                allowedPortTypes = ((BaseNode)startPort.node).AllowedOutPorts;
            }
            else
            {
                allowedPortTypes = ((BaseNode)startPort.node).AllowedInPorts;
            }
            ports.ForEach((port) => {
                if (startPort.node != port.node && startPort.direction != port.direction)
                {
                    for (int i = 0; i < allowedPortTypes.Length; i++)
                    {
                        if (port.node.GetType() == allowedPortTypes[i])
                        {
                            compatiblePorts.Add(port);
                            break;
                        }
                    }
                    compatiblePorts.Add(port);
                }
            });
            return(compatiblePorts);
        }
Example #8
0
        public override List <Port> GetCompatiblePorts(Port startAnchor, NodeAdapter nodeAdapter)
        {
            var compatibleAnchors          = new List <Port>();
            List <FSStateNode> connections = null;

            if (startAnchor.direction == Direction.Input)
            {
                connections = startAnchor.connections.OfType <FSMEdgeView>().Select(e => e.Transition.ToNode as FSStateNode).ToList();
            }
            else
            {
                connections = startAnchor.connections.OfType <FSMEdgeView>().Select(e => e.Transition.FromNode as FSStateNode).ToList();
            }

            foreach (var candidateAnchor in ports.ToList())
            {
                if (startAnchor.node == candidateAnchor.node)
                {
                    continue;
                }

                if (startAnchor.direction == candidateAnchor.direction)
                {
                    continue;
                }
                if (connections.Any(c => c == (candidateAnchor.node as FSMNodeView)?.StateNode))
                {
                    continue;
                }

                compatibleAnchors.Add(candidateAnchor);
            }

            return(compatibleAnchors);
        }
    public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter adapter = null)
    {
        var compatible = new List <Port>();

        foreach (var port in ports.ToList())
        {
            //分岐
            // 同じノードには繋げない
            if (startPort.node == port.node)
            {
                continue;
            }

            // Input同士、Output同士は繋げない
            if (port.direction == startPort.direction)
            {
                continue;
            }

            // ポートの型が一致していない場合は繋げない
            if (port.portType != startPort.portType)
            {
                continue;
            }

            compatible.Add(port);
        }

        return(compatible);
    }
Example #10
0
        public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
        {
            // Remove all ports on same node and all ports with same direction (in/out)
            // Get only type-compatable ports
            var availablePorts = ports.ToList()
                                 .Where(p => p.direction != startPort.direction && p.node != startPort.node)
                                 .ToArray();

            // Get only type-compatable ports
            // I know I can better but...
            if (startPort.portType == typeof(AnyValueType))
            {
                availablePorts = availablePorts
                                 .Where(p => p.portType != typeof(ExecutionPin) && !typeof(UnityEngine.Object).IsAssignableFrom(p.portType))
                                 .ToArray();
            }
            else
            {
                availablePorts = availablePorts
                                 .Where(p => p.portType == startPort.portType)
                                 .ToArray();
            }

            var connectedPorts = startPort.connections.Select(c => startPort.direction == Direction.Input ? c.output : c.input).ToArray();

            // Remove all ports which we already are connected with to avoid multi-edge generation on both in and out ports multi capacity
            return(availablePorts.Where(p => !connectedPorts.Contains(p)).ToList());
        }
Example #11
0
        // TODO: save the position and zoom in the graph asset
        // public override void OnPersistentDataReady()
        // {
        //  //We set the position and scale saved in the graph asset file
        //  Vector3 pos = graph.position;
        //  Vector3 scale = graph.scale;

        //  base.OnPersistentDataReady();

        //  UpdateViewTransform(pos, scale);
        // }

        public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
        {
            var compatiblePorts = new List <Port>();

            compatiblePorts.AddRange(ports.ToList().Where(p => {
                var portView = p as PortView;

                if (p.direction == startPort.direction)
                {
                    return(false);
                }

                //Check if there is custom adapters for this assignation
                if (CustomPortIO.IsAssignable(startPort.portType, p.portType))
                {
                    return(true);
                }

                //Check for type assignability
                if (!p.portType.IsReallyAssignableFrom(startPort.portType))
                {
                    return(false);
                }

                //Check if the edge already exists
                if (portView.GetEdges().Any(e => e.input == startPort || e.output == startPort))
                {
                    return(false);
                }

                return(true);
            }));

            return(compatiblePorts);
        }
Example #12
0
    public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
    {
        var ret = new List <Port>();

        if (startPort.portType == typeof(FlowEntryPort))
        {
            ports.ForEach(port =>
            {
                if (port.portType == typeof(FlowExitPort))
                {
                    ret.Add(port);
                }
            });
        }
        else if (startPort.portType == typeof(FlowExitPort))
        {
            ports.ForEach(port =>
            {
                Debug.Log(port.name + " " + port.portType);
                if (port.portType == typeof(FlowEntryPort))
                {
                    ret.Add(port);
                }
            });
        }
        return(ret);
    }
Example #13
0
        internal static ILinkBuilder BuildLink(NodeAdapter adapter, ContentItem item, bool selected, string target)
        {
            INode  node      = item;
            string className = node.ClassNames;

            if (selected)
            {
                className += "selected ";
            }

            ILinkBuilder builder = Link.To(node)
                                   .Target(target)
                                   .Class(className)
                                   .Href(adapter.GetPreviewUrl(item))
                                   .Text("<img src='" + adapter.GetIconUrl(item) + "'/>" + node.Contents)
                                   .Attribute("id", item.Path.Replace('/', '_'))
                                   .Attribute("title", "#" + item.ID + ": " + N2.Context.Current.Definitions.GetDefinition(item).Title)
                                   .Attribute("data-id", item.ID.ToString())
                                   .Attribute("data-type", item.GetContentType().Name)
                                   .Attribute("data-path", item.Path)
                                   .Attribute("data-url", item.Url)
                                   .Attribute("data-page", item.IsPage.ToString().ToLower())
                                   .Attribute("data-zone", item.ZoneName)
                                   .Attribute("data-permission", adapter.GetMaximumPermission(item).ToString());

            builder.Href(adapter.GetPreviewUrl(item));

            return(builder);
        }
        public override List<Port> GetCompatiblePorts(Port startAnchor, NodeAdapter nodeAdapter)
        {
            var compatibleAnchors = new List<Port>();
            var startSlot = startAnchor.GetSlot();
            if (startSlot == null)
                return compatibleAnchors;

            var startStage = startSlot.stageCapability;
            if (startStage == ShaderStageCapability.All)
                startStage = NodeUtils.GetEffectiveShaderStageCapability(startSlot, true) & NodeUtils.GetEffectiveShaderStageCapability(startSlot, false);

            foreach (var candidateAnchor in ports.ToList())
            {
                var candidateSlot = candidateAnchor.GetSlot();
                if (!startSlot.IsCompatibleWith(candidateSlot))
                    continue;

                if (startStage != ShaderStageCapability.All)
                {
                    var candidateStage = candidateSlot.stageCapability;
                    if (candidateStage == ShaderStageCapability.All)
                        candidateStage = NodeUtils.GetEffectiveShaderStageCapability(candidateSlot, true)
                            & NodeUtils.GetEffectiveShaderStageCapability(candidateSlot, false);
                    if (candidateStage != ShaderStageCapability.All && candidateStage != startStage)
                        continue;
                }

                compatibleAnchors.Add(candidateAnchor);
            }
            return compatibleAnchors;
        }
Example #15
0
        public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
        {
            var compatiblePorts = new List <Port>();

            foreach (var port in ports.ToList())
            {
                // 同じノードは繋げない
                if (startPort.node == port.node)
                {
                    continue;
                }

                // Input - Input , Output - Outputは繋げない
                if (startPort.direction == port.direction)
                {
                    continue;
                }

                // ポートタイプが違うものは繋げない
                if (startPort.portType != port.portType)
                {
                    continue;
                }

                compatiblePorts.Add(port);
            }

            return(compatiblePorts);
        }
Example #16
0
        public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
        {
            var      compatiblePorts = new List <Port>();
            PortView startPortView   = startPort as PortView;

            compatiblePorts.AddRange(ports.ToList().Where(p => {
                var portView = p as PortView;

                if (p.direction == startPort.direction)
                {
                    return(false);
                }

                if (p.node == startPort.node)
                {
                    return(false);
                }

                //Check if there is custom adapters for this assignation
                if (CustomPortIO.IsAssignable(startPort.portType, p.portType))
                {
                    return(true);
                }

                // Allow connection between RenderTexture and all texture types:
                Type startType = startPortView.portData.displayType ?? startPortView.portType;
                Type endType   = portView.portData.displayType ?? portView.portType;
                if (startType == typeof(RenderTexture))
                {
                    if (endType.IsSubclassOf(typeof(Texture)))
                    {
                        return(true);
                    }
                }
                if (endType == typeof(RenderTexture))
                {
                    if (startType.IsSubclassOf(typeof(Texture)))
                    {
                        return(true);
                    }
                }

                //Check for type assignability
                if (!BaseGraph.TypesAreConnectable(startPort.portType, p.portType))
                {
                    return(false);
                }

                //Check if the edge already exists
                if (portView.GetEdges().Any(e => e.input == startPort || e.output == startPort))
                {
                    return(false);
                }

                return(true);
            }));

            return(compatiblePorts);
        }
 public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
 {
     return(ports.ToList().Where(nap =>
                                 nap.direction != startPort.direction &&
                                 nap.node != startPort.node)
            //        nodeAdapter.GetAdapter(nap.source, startPort.source) != null)
            .ToList());
 }
 internal static Uri GetManagementUri(this NodeAdapter nodesAdapter, ClusterOptions clusterOptions)
 {
     return(new UriBuilder
     {
         Scheme = clusterOptions.EffectiveEnableTls ? Https : Http,
         Host = nodesAdapter.Hostname,
         Port = clusterOptions.EffectiveEnableTls ? nodesAdapter.MgmtApiSsl : nodesAdapter.MgmtApi
     }.Uri);
 }
Example #19
0
        // GET api/<controller>
        public Node <int> Get()
        {
            var Contacts     = GenerateContacts.PopulateContacts(1000);
            var Connections  = GenerateConnections.PopulateConnections(Contacts);
            var Adapter      = new NodeAdapter();
            var ContactsNode = Adapter.FromContacts(Contacts, Connections);

            return(ContactsNode);
        }
Example #20
0
        public void When_NodeExt_Has_Alternate_Network_With_Ports_Configured_Use_External_Ports(string networkType, string expected)
        {
            var defaultServices = new Couchbase.Core.Configuration.Server.Services
            {
                Cbas    = 1,
                CbasSsl = 2,
                Capi    = 3,
                CapiSsl = 4,
                Fts     = 5,
                FtsSsl  = 6,
                Kv      = 1,
                KvSsl   = 2,
                N1Ql    = 9,
                N1QlSsl = 10
            };
            var externalServices = new Couchbase.Core.Configuration.Server.Services
            {
                Cbas    = 10,
                CbasSsl = 20,
                Capi    = 30,
                CapiSsl = 40,
                Fts     = 50,
                FtsSsl  = 60,
                Kv      = 10,
                KvSsl   = 20,
                N1Ql    = 90,
                N1QlSsl = 100
            };

            var node    = new Node();
            var nodeExt = new NodesExt
            {
                Hostname           = "default",
                Services           = defaultServices,
                AlternateAddresses = new Dictionary <string, ExternalAddressesConfig>
                {
                    {
                        "external", new ExternalAddressesConfig
                        {
                            Hostname = "external",
                            Ports    = externalServices
                        }
                    }
                }
            };

            var bucketConfig = new BucketConfig
            {
                NetworkResolution = networkType,
                SurrogateHost     = expected
            };

            var adapter = new NodeAdapter(node, nodeExt, bucketConfig);

            VerifyServices(expected == "external" ? externalServices : defaultServices, adapter);
        }
Example #21
0
        internal static ILinkBuilder BuildLink(NodeAdapter adapter, ContentItem item, bool isSelected, string target, bool isSelectable)
        {
            var    node      = adapter.GetTreeNode(item);
            string className = node.CssClass;

            if (isSelected)
            {
                className += " selected";
            }
            if (isSelectable)
            {
                className += " selectable";
            }
            else
            {
                className += " unselectable";
            }

            StringBuilder text = new StringBuilder();

            if (!string.IsNullOrEmpty(node.IconClass))
            {
                text.AppendFormat("<b class='{0}'></b> ", node.IconClass);
            }
            else if (!string.IsNullOrEmpty(node.IconUrl))
            {
                text.AppendFormat("<img src='{0}' alt='icon'/>", node.IconUrl);
            }
            text.Append(node.Title);

            foreach (var mi in node.MetaInformation)
            {
                text.AppendFormat(" <span class='meta {0}' title='{1}'>{2}</span>", mi.Key, mi.Value.ToolTip, mi.Value.Text);
            }

            var builder = new Link(text.ToString(), node.ToolTip, node.Target ?? target, node.PreviewUrl, className)
                          .Attribute("id", item.Path.Replace('/', '_'))
                          .Attribute("data-id", item.ID.ToString())
                          .Attribute("data-type", item.GetContentType().Name)
                          .Attribute("data-path", item.Path)
                          .Attribute("data-url", item.Url)
                          .Attribute("data-page", item.IsPage.ToString().ToLower())
                          .Attribute("data-zone", item.ZoneName)
                          .Attribute("data-permission", node.MaximumPermission.ToString());

            if (isSelected)
            {
                builder.Attribute("data-selected", "true");
            }
            if (isSelectable)
            {
                builder.Attribute("data-selectable", "true");
            }

            return(builder);
        }
        public void When_NodeExt_Hostname_Is_Null_NodeAdapater_Can_Parse_Hostname_and_Port_From_Node(string hostname, string expectedHostname)
        {
            var node = new Node
            {
                Hostname = hostname
            };
            var nodeExt = new NodeExt();

            var adapter = new NodeAdapter(node, nodeExt);

            Assert.AreEqual(expectedHostname, adapter.Hostname);
        }
        public void When_IPv6_NodeAdapter_Does_Not_Fail()
        {
            //arrange
            var serverConfigJson = ResourceHelper.ReadResource("config_with_ipv6");
            var serverConfig     = JsonConvert.DeserializeObject <BucketConfig>(serverConfigJson);

            //act
            var adapter = new NodeAdapter(serverConfig.Nodes[0], serverConfig.NodesExt[0]);

            //assert
            Assert.IsNotNull(adapter);
        }
Example #24
0
        public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
        {
            var compatiblePorts = new List <Port>();

            ports.ForEach(port => {
                if (startPort != port /*&& startPort.node != port.node*/ && port.direction != startPort.direction && (startPort as DlogPort).IsCompatibleWith(port as DlogPort))
                {
                    compatiblePorts.Add(port);
                }
            });
            return(compatiblePorts);
        }
        public void When_NodeExt_Has_Alternate_Network_With_Ports_Configured_Use_External_Ports(string networkType, string expected)
        {
            var defaultServices = new Services
            {
                Analytics    = 1,
                AnalyticsSsl = 2,
                Capi         = 3,
                CapiSSL      = 4,
                Fts          = 5,
                FtsSSL       = 6,
                KV           = 1,
                KvSSL        = 2,
                N1QL         = 9,
                N1QLSsl      = 10
            };
            var externalServices = new Services
            {
                Analytics    = 10,
                AnalyticsSsl = 20,
                Capi         = 30,
                CapiSSL      = 40,
                Fts          = 50,
                FtsSSL       = 60,
                KV           = 10,
                KvSSL        = 20,
                N1QL         = 90,
                N1QLSsl      = 100
            };

            var node    = new Node();
            var nodeExt = new NodeExt
            {
                Hostname           = "default",
                Services           = defaultServices,
                AlternateAddresses = new AlternateAddressesConfig
                {
                    External = new ExternalAddressesConfig
                    {
                        Hostname = "external",
                        Ports    = externalServices
                    }
                }
            };

            var mockBucketConfig = new Mock <IBucketConfig>();

            mockBucketConfig.Setup(x => x.NetworkType).Returns(NetworkTypes.Auto);
            mockBucketConfig.Setup(x => x.SurrogateHost).Returns(expected);

            var adapter = new NodeAdapter(node, nodeExt, mockBucketConfig.Object);

            VerifyServices(expected == "external" ? externalServices : defaultServices, adapter);
        }
Example #26
0
        public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
        {
            var compatiblePorts = new List <Port>();

            ports.ForEach((port) => {
                if (startPort != port && startPort.node != port.node && startPort.direction != port.direction)
                {
                    compatiblePorts.Add(port);
                }
            });
            return(compatiblePorts);
        }
Example #27
0
            public override List <Port> GetCompatiblePorts(Port start, NodeAdapter nodeAdapter)
            {
                var compatiblePorts = new List <Port>();

                ports.ForEach(port => {
                    if (start == port || start.node == port.node)
                    {
                        return;
                    }
                    compatiblePorts.Add(port);
                });
                return(compatiblePorts);
            }
Example #28
0
        public void When_NodeExt_Hostname_Is_Null_NodeAdapater_Can_Parse_Hostname_and_Port_From_Node(string hostname, string expectedHostname)
        {
            var node = new Node
            {
                Hostname = hostname
            };
            var nodeExt          = new NodesExt();
            var mockBucketConfig = new Mock <BucketConfig>();

            var adapter = new NodeAdapter(node, nodeExt, mockBucketConfig.Object);

            Assert.Equal(expectedHostname, adapter.Hostname);
        }
    public override List <Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
    {
        var oPorts = new List <Port>();

        ports.ForEach(p =>
        {
            if (startPort != p && startPort.node != p.node)
            {
                oPorts.Add(p);
            }
        });
        return(oPorts);
    }
        public void IsAnalyticsNodeSsl_Is_True_When_Port_Is_Provided()
        {
            var node    = new Node();
            var nodeExt = new NodeExt();

            nodeExt.Hostname = "localhost";
            nodeExt.Services.AnalyticsSsl = 18095;

            var adapater = new NodeAdapter(node, nodeExt);

            Assert.AreEqual(18095, adapater.AnalyticsSsl);
            Assert.IsTrue(adapater.IsAnalyticsNode);
        }
Example #31
0
        internal static ILinkBuilder BuildLink(NodeAdapter adapter, ContentItem item, bool selected, string target)
        {
            INode node = item;
            string className = node.ClassNames;
            if (selected)
                className += "selected ";

            ILinkBuilder builder = Link.To(node)
                .Target(target)
                .Class(className)
                .Href(adapter.GetPreviewUrl(item))
                .Text("<img src='" + adapter.GetIconUrl(item) + "'/>" + node.Contents)
                .Attribute("rel", node.Path)
                .Attribute("data-id", item.ID.ToString())
                .Attribute("data-type", item.GetContentType().Name)
                .Attribute("data-path", item.Path)
                .Attribute("data-url", item.Url)
                .Attribute("data-page", item.IsPage.ToString().ToLower())
                .Attribute("data-zone", item.ZoneName);

            builder.Href(adapter.GetPreviewUrl(item));

            return builder;
        }
Example #32
0
File: Tree.cs Project: Jobu/n2cms
        internal static ILinkBuilder BuildLink(NodeAdapter adapter, ContentItem item, bool selected, string target)
        {
            INode node = item;
            string className = node.ClassNames;
            if (selected)
                className += "selected ";

            ILinkBuilder builder = Link.To(node)
                .Target(target)
                .Class(className)
                .Href(adapter.GetPreviewUrl(item))
                .Text("<img src='" + adapter.GetIconUrl(item) + "'/>" + node.Contents)
                .Attribute("id", item.Path.Replace('/', '_'))
                .Attribute("title", "#" + item.ID + ": " + N2.Context.Current.Definitions.GetDefinition(item).Title)
                .Attribute("data-id", item.ID.ToString())
                .Attribute("data-type", item.GetContentType().Name)
                .Attribute("data-path", item.Path)
                .Attribute("data-url", item.Url)
                .Attribute("data-page", item.IsPage.ToString().ToLower())
                .Attribute("data-zone", item.ZoneName)
                .Attribute("data-permission", adapter.GetMaximumPermission(item).ToString());

            builder.Href(adapter.GetPreviewUrl(item));

            return builder;
        }