Пример #1
0
        public IEnumerator ChangeStickyNoteContentUpdatesModel()
        {
            const string newContent = "New Content";

            var stickyNoteModel = GraphModel.CreateStickyNote(new Rect(0, 0, 200, 200));

            stickyNoteModel.Title    = "My Note";
            stickyNoteModel.Contents = "Old Content";
            MarkGraphViewStateDirty();
            yield return(null);

            var stickyNote    = stickyNoteModel.GetUI <GraphElement>(GraphView);
            var label         = stickyNote.SafeQ(StickyNote.contentContainerPartName).SafeQ(EditableLabel.labelName);
            var clickPosition = label.parent.LocalToWorld(label.layout.center);

            EventHelper.Click(clickPosition, clickCount: 2);

            EventHelper.Type(newContent);

            // Commit the changes by clicking outside the field.
            EventHelper.Click(GraphView.layout.min);

            yield return(null);

            Assert.AreEqual(newContent, stickyNoteModel.Contents);
        }
        public IEnumerator PlacematCollapsesOnClick()
        {
            var placematModel = GraphModel.CreatePlacemat(Rect.zero);

            MarkGraphViewStateDirty();
            yield return(null);

            var placemat       = placematModel.GetUI <GraphElement>(GraphView);
            var collapseButton = placemat.SafeQ <CollapseButton>(Placemat.collapseButtonPartName);

            Assert.IsNotNull(collapseButton);
            Assert.IsFalse(collapseButton.value);
            Assert.IsFalse(placematModel.Collapsed);

            var clickPosition = collapseButton.parent.LocalToWorld(collapseButton.layout.center);

            // Move the mouse over to make the button appear.
            EventHelper.MouseMoveEvent(new Vector2(0, 0), clickPosition);
            EventHelper.MouseMoveEvent(clickPosition, clickPosition + Vector2.down);

            EventHelper.Click(clickPosition);
            yield return(null);

            Assert.IsTrue(placematModel.Collapsed);
        }
        public IEnumerator CollapsibleNodeCollapsesOnClick()
        {
            var nodeModel = GraphModel.CreateNode <IONodeModel>();

            // Add a port to make the node collapsible.
            nodeModel.AddInputPort("port", PortType.Data, TypeHandle.Void, null, PortOrientation.Horizontal, PortModelOptions.NoEmbeddedConstant);
            MarkGraphViewStateDirty();
            yield return(null);

            var node           = nodeModel.GetUI <GraphElement>(GraphView);
            var collapseButton = node.SafeQ <CollapseButton>(CollapsibleInOutNode.collapseButtonPartName);

            Assert.IsNotNull(collapseButton);
            Assert.IsFalse(collapseButton.value);
            Assert.IsFalse(nodeModel.Collapsed);

            var clickPosition = collapseButton.parent.LocalToWorld(collapseButton.layout.center);

            // Move the mouse over to make the button appear.
            EventHelper.MouseMoveEvent(new Vector2(0, 0), clickPosition);
            EventHelper.MouseMoveEvent(clickPosition, clickPosition + Vector2.down);

            EventHelper.Click(clickPosition);
            yield return(null);

            Assert.IsTrue(nodeModel.Collapsed);
        }
        public IEnumerator EscapeCancelsEditing()
        {
            var editableLabel = new EditableLabel();

            editableLabel.SetValueWithoutNotify("My Text");
            string newValue = null;

            editableLabel.RegisterCallback <ChangeEvent <string> >(e => newValue = e.newValue);
            m_Window.rootVisualElement.Add(editableLabel);
            // Compute layout
            yield return(null);

            var label     = editableLabel.SafeQ(EditableLabel.labelName);
            var textField = editableLabel.SafeQ(EditableLabel.textFieldName);
            var center    = label.parent.LocalToWorld(label.layout.center);

            // Activate text field
            EventHelper.Click(center, clickCount: 2);

            // Type some text
            EventHelper.Type(k_SomeText);

            // Type Escape
            EventHelper.KeyPressed(KeyCode.Escape);

            Assert.IsNull(newValue);
            Assert.AreEqual(DisplayStyle.Flex, label.resolvedStyle.display);
            Assert.AreEqual(DisplayStyle.None, textField.resolvedStyle.display);
        }
        public IEnumerator ClickingButtonIconChangesItsValue()
        {
            var collapseButton = new CollapseButton();

            m_Window.rootVisualElement.Add(collapseButton);
            // Do layout
            yield return(null);

            Assert.IsFalse(collapseButton.value);
            var     icon   = collapseButton.SafeQ("icon");
            Vector2 center = collapseButton.parent.LocalToWorld(collapseButton.layout.center);

            EventHelper.Click(center);

            Assert.IsTrue(collapseButton.value);
        }
        public IEnumerator DoubleClickOnEditableLabelShowsTextField()
        {
            var editableLabel = new EditableLabel();

            m_Window.rootVisualElement.Add(editableLabel);
            yield return(null);

            var label     = editableLabel.SafeQ(EditableLabel.labelName);
            var textField = editableLabel.SafeQ(EditableLabel.textFieldName);
            var center    = label.parent.LocalToWorld(label.layout.center);

            Assert.AreEqual(DisplayStyle.Flex, label.resolvedStyle.display);
            Assert.AreEqual(DisplayStyle.None, textField.resolvedStyle.display);

            EventHelper.Click(center, clickCount: 2);

            Assert.AreEqual(DisplayStyle.None, label.resolvedStyle.display);
            Assert.AreEqual(DisplayStyle.Flex, textField.resolvedStyle.display);
        }
        public IEnumerator RenameNodeRenamesModel()
        {
            const string newName = "New Name";

            var nodeModel = GraphModel.CreateNode <NodeModel>("Node");

            MarkGraphViewStateDirty();
            yield return(null);

            var node          = nodeModel.GetUI <GraphElement>(GraphView);
            var label         = node.SafeQ(CollapsibleInOutNode.titleIconContainerPartName).SafeQ(EditableLabel.labelName);
            var clickPosition = label.parent.LocalToWorld(label.layout.center);

            EventHelper.Click(clickPosition, clickCount: 2);

            EventHelper.Type(newName);

            EventHelper.Click(GraphView.layout.min);
            yield return(null);

            Assert.AreEqual(newName, nodeModel.Title);
        }
        public IEnumerator RenamePlacematRenamesModel()
        {
            const string newName = "New Name";

            var placematModel = GraphModel.CreatePlacemat(Rect.zero);

            placematModel.Title = "Placemat";
            MarkGraphViewStateDirty();
            yield return(null);

            var placemat      = placematModel.GetUI <GraphElement>(GraphView);
            var label         = placemat.SafeQ(Placemat.titleContainerPartName).SafeQ(EditableLabel.labelName);
            var clickPosition = label.parent.LocalToWorld(label.layout.center);

            EventHelper.Click(clickPosition, clickCount: 2);

            EventHelper.Type(newName);

            EventHelper.Click(GraphView.layout.max);
            yield return(null);

            Assert.AreEqual(newName, placematModel.Title);
        }