Exemple #1
0
        public async void Disabled_WhenConnectingSource(ConnectorDirection connectingDirection,
                                                        IConnector connectingConnector)
        {
            // Arrange

            connectingConnector.Direction
            .Returns(connectingDirection);

            connectingConnector.Node
            .Returns(node);

            var connector = kernel.Get <IInConnectorViewModel>();

            // Act

            connector.Activator
            .Activate();

            mixer.ConnectingConnector = connectingConnector;

            var isEnabled = await connector.WhenAnyValue(vm => vm.IsEnabled)
                            .FirstAsync();

            // Assert

            isEnabled.Should().BeFalse();
        }
        protected override object ConstructTexture(ConnectorSide side, ConnectorDirection direction, bool connected, Color tint = default(Color))
        {

            string iconBase = null;

            if (direction == ConnectorDirection.Input && connected) iconBase = _filledInputIconCode;
            if (direction == ConnectorDirection.Input && !connected) iconBase = _emptyInputIconCode;
            if (direction == ConnectorDirection.Output && connected) iconBase = _filledOutputIconCode;
            if (direction == ConnectorDirection.Output && !connected) iconBase = _emptyOutputIconCode;
            if (direction == ConnectorDirection.TwoWay && connected) iconBase = _emptyTwoWayIconCode;
            if (direction == ConnectorDirection.TwoWay && !connected) iconBase = _filledTwoWayIconCode;

            var baseTexture = ElementDesignerStyles.GetSkinTexture(iconBase);

            if (tint != default(Color))
            {
                baseTexture = baseTexture.Tint(tint);
            }

            switch (side)
            {
                default:
                    return baseTexture;
            }

            return null;
        }
Exemple #3
0
 public Connector(ConnectorDirection direction, Transition trans = null, Place pla = null)
 {
     Id        = Guid.NewGuid();
     Direction = direction;
     Trans     = trans ?? new Transition();
     Pla       = pla ?? new Place();
 }
Exemple #4
0
        public async void Disabled_WhenNotConnectableTo(bool expected,
                                                        ConnectorDirection connectingDirection,
                                                        INode connectingNode,
                                                        IConnector connectingConnector)
        {
            // Arrange

            connectingConnector.Direction
            .Returns(connectingDirection);

            connectingConnector.Node
            .Returns(connectingNode);

            var connector = kernel.Get <IInConnectorViewModel>();

            // Act

            connector.Activator
            .Activate();

            mixer.ConnectingConnector = connectingConnector;

            var actual = await connector.WhenAnyValue(vm => vm.IsEnabled)
                         .FirstAsync();

            // Assert

            actual.Should().Be(expected);
        }
Exemple #5
0
 public Connector(string id, ConnectorDirection direction, Transition trans, Place pla)
 {
     Id        = new Guid(id);
     Direction = direction;
     Trans     = trans;
     Pla       = pla;
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="name">Connector name</param>
 /// <param name="text">Connector display name</param>
 /// <param name="connectorDirection">Connector direction</param>
 public BaseConnector(string name, string text, ConnectorDirection connectorDirection)
 {
     this.Name = name;
     this.Text = text;
     this.ConnectorDirection = connectorDirection;
     this.Loaded            += BaseConnector_Loaded;
 }
Exemple #7
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="name">Connector name</param>
        /// <param name="text">Connector display name</param>
        /// <param name="connectorDirection">Connector direction</param>
        /// <param name="connectorDataType">Connector data type</param>
        /// <param name="isGeneric">Is a generic type ?</param>
        /// <param name="allowedTypes">if a generic type, this limits the types</param>
        public DataConnector(string name, string text, ConnectorDirection connectorDirection, Type connectorDataType, bool isGeneric, string allowedTypes)
            : base(name, text, connectorDirection)
        {
            this.ConnectorDataType = connectorDataType;
            this.DataContext       = this;
            this.ToolTip           = $"{Text} ({connectorDataType?.Name})";
            this.IsGeneric         = isGeneric;
            this.AllowedTypes      = allowedTypes;

            FillDataTemplate();
        }
Exemple #8
0
        protected override object ConstructTexture(ConnectorSide side, ConnectorDirection direction, bool connected, Color tint = default(Color))
        {
            string iconBase = null;

            if (direction == ConnectorDirection.Input && connected)
            {
                iconBase = _filledInputIconCode;
            }
            if (direction == ConnectorDirection.Input && !connected)
            {
                iconBase = _emptyInputIconCode;
            }
            if (direction == ConnectorDirection.Output && connected)
            {
                iconBase = _filledOutputIconCode;
            }
            if (direction == ConnectorDirection.Output && !connected)
            {
                iconBase = _emptyOutputIconCode;
            }
            if (direction == ConnectorDirection.TwoWay && connected)
            {
                iconBase = _emptyTwoWayIconCode;
            }
            if (direction == ConnectorDirection.TwoWay && !connected)
            {
                iconBase = _filledTwoWayIconCode;
            }

            var baseTexture = ElementDesignerStyles.GetSkinTexture(iconBase);

            if (tint != default(Color))
            {
                baseTexture = baseTexture.Tint(tint);
            }

            switch (side)
            {
            default:
                return(baseTexture);
            }

            return(null);
        }
        public object GetTexture(ConnectorSide side, ConnectorDirection direction, bool connected, Color tint = default(Color))
        {
            var item = new SideDirectionItem()
            {
                Side        = side,
                Direction   = direction,
                IsConnected = connected,
                Tint        = tint
            };


            object value = null;

            TexturesCache.TryGetValue(item, out value);
            if (value == null || value.Equals(null))
            {
                TexturesCache[item] = ConstructTexture(side, direction, connected, tint);
            }

            return(TexturesCache[item]);
        }
        public object GetTexture(ConnectorSide side, ConnectorDirection direction, bool connected, Color tint = default(Color))
        {
            var item = new SideDirectionItem()
            {
                Side = side,
                Direction = direction,
                IsConnected = connected,
                Tint = tint
            };


            object value = null;
            TexturesCache.TryGetValue(item, out value);
            if (value == null || value.Equals(null))
            {
                TexturesCache[item] = ConstructTexture(side, direction, connected, tint);
            }

            return TexturesCache[item];

        }
 protected abstract object ConstructTexture(ConnectorSide side, ConnectorDirection direction, bool connected, Color tint = default(Color));
Exemple #12
0
    void OnGUI()
    {
        Rect tmp_rect = EditorGUILayout.BeginHorizontal();

        scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(tmp_rect.width), GUILayout.Height(tmp_rect.height));
        GUILayout.Label("Place By Line", EditorStyles.boldLabel);
        StartFromThisDomino = EditorGUILayout.ObjectField("Start From This Domino", StartFromThisDomino, typeof(GameObject), true) as GameObject;
        Direction           = EditorGUILayout.Vector3Field("Direction", Direction);
        LineLength          = EditorGUILayout.FloatField("Length of Line", LineLength);
        Distance            = EditorGUILayout.FloatField("Distance between Dominos", Distance);
        DominoPrefab        = EditorGUILayout.ObjectField("Domino Prefab", DominoPrefab, typeof(GameObject), true) as GameObject;
        DominosName         = EditorGUILayout.TextField("Dominos Name", DominosName);
        DominoColorType     = (ColorType)EditorGUILayout.EnumPopup("Dominos' Color Type", DominoColorType);
        if (DominoColorType == ColorType.Single)
        {
            DominoColor = EditorGUILayout.ColorField("Dominos' Color", DominoColor);
        }
        else
        {
            DominoColor  = EditorGUILayout.ColorField("Dominos' Color 1", DominoColor);
            DominoColor2 = EditorGUILayout.ColorField("Dominos' Color 2", DominoColor2);
        }
        Parent = EditorGUILayout.Toggle("Add a Object as Parent", Parent);
        if (Parent)
        {
            ParentName = EditorGUILayout.TextField("Parent Name", ParentName);
        }
        if (GUILayout.Button("Create!"))
        {
            CreateLine();
        }

        //Rotate
        GUILayout.Label("Place Dominos Rotate Around Circle", EditorStyles.boldLabel);
        Rotate_StartFromThisDomino = EditorGUILayout.ObjectField("Start From This Domino", Rotate_StartFromThisDomino, typeof(GameObject), true) as GameObject;
        Rotate_PlaceDirection      = EditorGUILayout.Vector3Field("Place Direction", Rotate_PlaceDirection);
        Rotate_Distance            = EditorGUILayout.FloatField("Distance between Dominos", Rotate_Distance);
        Rotate_RotateByAxis        = EditorGUILayout.Vector3Field("Rotate By Axis", Rotate_RotateByAxis);
        Rotate_Angle           = EditorGUILayout.FloatField("Rotate Angle", Rotate_Angle);
        Rotate_NumberOfDominos = EditorGUILayout.IntField("Number of Dominos", Rotate_NumberOfDominos);
        Rotate_DominoPrefab    = EditorGUILayout.ObjectField("Domino Prefab", Rotate_DominoPrefab, typeof(GameObject), true) as GameObject;
        Rotate_DominosName     = EditorGUILayout.TextField("Dominos Name", Rotate_DominosName);
        Rotate_DominoColorType = (ColorType)EditorGUILayout.EnumPopup("Dominos' Color Type", Rotate_DominoColorType);
        if (Rotate_DominoColorType == ColorType.Single)
        {
            Rotate_DominoColor = EditorGUILayout.ColorField("Dominos' Color", Rotate_DominoColor);
        }
        else
        {
            Rotate_DominoColor  = EditorGUILayout.ColorField("Dominos' Color 1", Rotate_DominoColor);
            Rotate_DominoColor2 = EditorGUILayout.ColorField("Dominos' Color 2", Rotate_DominoColor2);
        }
        Rotate_Parent = EditorGUILayout.Toggle("Add a Object as Parent", Rotate_Parent);
        if (Rotate_Parent)
        {
            Rotate_ParentName = EditorGUILayout.TextField("Parent Name", Rotate_ParentName);
        }
        if (GUILayout.Button("Create!"))
        {
            CreateRotate();
        }

        //Picture
        GUILayout.Label("Place Dominos By Picture(1 pixel for 1 domino)(Strongly sugest use small picture)", EditorStyles.boldLabel);
        StartPosition        = EditorGUILayout.ObjectField("Start Place Domino From", StartPosition, typeof(GameObject), true) as GameObject;
        Picture1             = EditorGUILayout.ObjectField("Use Which Pictrure?", Picture1, typeof(Texture2D), true) as Texture2D;
        LineDistance         = EditorGUILayout.FloatField("Distance Between Line", LineDistance);
        DominoDistance       = EditorGUILayout.FloatField("Distance Between Dominos", DominoDistance);
        PlaceByAxis          = EditorGUILayout.Vector3Field("Place By Axis", PlaceByAxis);
        Pic_DominosName      = EditorGUILayout.TextField("Dominos Name", Pic_DominosName);
        Pic_DominoPrefab     = EditorGUILayout.ObjectField("Domino Prefab", Pic_DominoPrefab, typeof(GameObject), true) as GameObject;
        DominoRotationVector = EditorGUILayout.Vector3Field("Domino's Rotation(Degree)", DominoRotationVector);
        Pic_Parent           = EditorGUILayout.Toggle("Add a Object as Parent", Pic_Parent);
        if (Pic_Parent)
        {
            Pic_ParentName = EditorGUILayout.TextField("Parent Name", Pic_ParentName);
        }
        Conector_DominoColorType = (ColorType)EditorGUILayout.EnumPopup("Conectors' Color Type", Conector_DominoColorType);
        if (Conector_DominoColorType == ColorType.Single)
        {
            ConectorColor = EditorGUILayout.ColorField("Conectors' Color", ConectorColor);
        }
        else
        {
            ConectorColor  = EditorGUILayout.ColorField("Conectors' Color 1", ConectorColor);
            ConectorColor2 = EditorGUILayout.ColorField("Conectors' Color 2", ConectorColor2);
        }
        StartFrom       = (ConnectorDirection)EditorGUILayout.EnumPopup("Start Place Connector From", StartFrom);
        ChangeDirection = EditorGUILayout.Toggle("Change Connector Direction", ChangeDirection);
        if (GUILayout.Button("Create!"))
        {
            CreatePicture();
        }

        //Connect
        GUILayout.Label("Connect Two Dominos", EditorStyles.boldLabel);
        Start            = EditorGUILayout.ObjectField("Start From...", Start, typeof(GameObject), true) as GameObject;
        Destination      = EditorGUILayout.ObjectField("Go to...", Destination, typeof(GameObject), true) as GameObject;
        ConnectDistance  = EditorGUILayout.FloatField("Distance Between Dominos", ConnectDistance);
        ConnectColorType = (LinkColorType)EditorGUILayout.EnumPopup("Dominos' Color Type", ConnectColorType);
        if (ConnectColorType == LinkColorType.Single)
        {
            LinkColor = EditorGUILayout.ColorField("Dominos' Color", LinkColor);
        }
        else if (ConnectColorType == LinkColorType.Gradient)
        {
            LinkColor  = EditorGUILayout.ColorField("Conectors' Color 1", LinkColor);
            LinkColor2 = EditorGUILayout.ColorField("Conectors' Color 2", LinkColor2);
        }
        Con_DominoPrefab = EditorGUILayout.ObjectField("Domino Prefab", Pic_DominoPrefab, typeof(GameObject), true) as GameObject;
        Con_DominosName  = EditorGUILayout.TextField("Dominos Name", Con_DominosName);
        Con_Parent       = EditorGUILayout.Toggle("Add a Object as Parent", Pic_Parent);
        if (Con_Parent)
        {
            Con_ParentName = EditorGUILayout.TextField("Parent Name", Con_ParentName);
        }
        if (GUILayout.Button("Create!"))
        {
            CreateLink();
        }

        EditorGUILayout.EndScrollView();
        EditorGUILayout.EndHorizontal();
    }
 protected abstract object ConstructTexture(ConnectorSide side, ConnectorDirection direction, bool connected, Color tint = default(Color));
Exemple #14
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="name">Connector name</param>
 /// <param name="text">Connector display name</param>
 /// <param name="connectorDirection">Connector direction</param>
 public FlowConnector(string name, string text, ConnectorDirection connectorDirection)
     : base(name, text, connectorDirection)
 {
     this.Style = TryFindResource("FlowConnectorTemplate") as Style;
     ToolTip    = Text;
 }