Exemple #1
0
        public void ExtractSticky([Values] TestingMode mode)
        {
            IStickyNoteModel sticky = GraphModel.CreateStickyNote(new Rect()) as StickyNoteModel;

            Undo.IncrementCurrentGroup();

            TestPrereqActionPostreq(mode, () =>
            {
                Refresh();
                Assert.That(GraphModel.NodeModels.OfType <MacroRefNodeModel>().Count(), Is.Zero);
                Assert.That(GraphModel.StickyNoteModels.Count(), Is.EqualTo(1));
                return(new RefactorExtractMacroAction(new List <IGraphElementModel> {
                    sticky
                }, Vector2.zero, null));
            }, () =>
            {
                Refresh();
                var macroRef = GraphModel.NodeModels.OfType <MacroRefNodeModel>().Single();
                Assert.That(macroRef, Is.Not.Null);
                Assert.That(macroRef.GraphAssetModel.GraphModel.Stencil, Is.TypeOf <MacroStencil>());
                Assert.That(((VSGraphModel)macroRef.GraphAssetModel.GraphModel).StickyNoteModels.Count(), Is.EqualTo(1));
                Assert.That(((MacroStencil)macroRef.GraphAssetModel.GraphModel.Stencil).ParentType, Is.EqualTo(GraphModel.Stencil.GetType()));

                // Assert Sticky has been removed from GraphModel
                Assert.That(GraphModel.StickyNoteModels.Count(), Is.EqualTo(0));
            });

            void Refresh()
            {
                RefreshReference(ref sticky);
            }
        }
        // ReSharper disable once UnusedParameter.Local
        public StickyNote(Store store, IStickyNoteModel model, Rect position, GraphView graphView)
            : base(position.position)
        {
            m_Store         = store;
            stickyNoteModel = model;

            theme = ConvertTheme(model.Theme);
            UpdateThemeClasses();

            fontSize = (StickyNoteFontSize)model.TextSize;

            title    = model.Title;
            contents = model.Contents;
            base.SetPosition(position);

            RegisterCallback <StickyNoteChangeEvent>(OnChange);
        }
        IEnumerator CreateElements(Vector2 firstNodePos, Vector2 secondNodePos, Vector2 placematPos, Vector2 stickyNotePos, bool smallerSize)
        {
            FirstNodeModel  = CreateNode("Node1", firstNodePos);
            SecondNodeModel = CreateNode("Node2", secondNodePos);
            PlacematModel   = CreatePlacemat(new Rect(placematPos, new Vector2(200, smallerSize ? 100 : 200)), "Placemat");
            StickyNoteModel = CreateSticky("Sticky", "", new Rect(stickyNotePos, smallerSize ? new Vector2(100, 100) : new Vector2(200, 200)));

            MarkGraphViewStateDirty();
            yield return(null);

            // Get the UI elements
            m_FirstNode  = FirstNodeModel.GetUI <Node>(graphView);
            m_SecondNode = SecondNodeModel.GetUI <Node>(graphView);
            m_Placemat   = PlacematModel.GetUI <Placemat>(graphView);
            m_StickyNote = StickyNoteModel.GetUI <StickyNote>(graphView);
            Assert.IsNotNull(m_FirstNode);
            Assert.IsNotNull(m_SecondNode);
            Assert.IsNotNull(m_Placemat);
            Assert.IsNotNull(m_StickyNote);
        }
Exemple #4
0
        public StickyNote(Store store, IStickyNoteModel model, Rect position, GraphView graphView)
        {
            m_Store         = store;
            stickyNoteModel = model;
            m_GraphView     = graphView;

            VisualTreeAsset template = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>(UICreationHelper.templatePath + "StickyNote.uxml");

            template.CloneTree(this);

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

            capabilities = Capabilities.Movable | Capabilities.Deletable | Capabilities.Ascendable | Capabilities.Selectable | Capabilities.Renamable;

            m_Title             = this.MandatoryQ <Label>(name: "title");
            m_Title.text        = title;
            m_Title.pickingMode = PickingMode.Ignore;

            m_TitleField = this.MandatoryQ <TextField>("title-field");
            m_TitleField.style.visibility = Visibility.Hidden;
            m_TitleField.isDelayed        = true;

            m_Contents             = this.MandatoryQ <Label>("contents");
            m_Contents.text        = Contents;
            m_Contents.pickingMode = PickingMode.Ignore;

            m_ContentsField = this.MandatoryQ <TextField>(name: "contents-field");
            m_ContentsField.style.visibility = Visibility.Hidden;
            m_ContentsField.multiline        = true;
            m_ContentsField.isDelayed        = true;

            this.AddManipulator(new ContextualMenuManipulator(OnContextualMenuEvent));

            SetPosition(position);

            AddToClassList("sticky-note");
            AddToClassList("selectable");
            UpdateThemeClasses();
            UpdateSizeClasses();
        }
        public void Test_ResizeStickyNoteCommand([Values] TestingMode mode)
        {
            GraphModel.CreateStickyNote(k_StickyNoteRect);

            TestPrereqCommandPostreq(mode,
                                     () =>
            {
                IStickyNoteModel stickyNote = GetStickyNote(0);
                Assert.That(GetNodeCount(), Is.EqualTo(0));
                Assert.That(GetEdgeCount(), Is.EqualTo(0));
                Assert.That(GetStickyNoteCount(), Is.EqualTo(1));
                Assert.That(stickyNote.PositionAndSize, Is.EqualTo(k_StickyNoteRect));
                return(new ChangeElementLayoutCommand(stickyNote, k_StickyNote2Rect));
            },
                                     () =>
            {
                Assert.That(GetNodeCount(), Is.EqualTo(0));
                Assert.That(GetEdgeCount(), Is.EqualTo(0));
                Assert.That(GetStickyNoteCount(), Is.EqualTo(1));
                Assert.That(GetStickyNote(0).PositionAndSize, Is.EqualTo(k_StickyNote2Rect));
            });
        }
 public static IModelUI CreateForStickyNote(this ElementBuilder elementBuilder,
                                            CommandDispatcher commandDispatcher, IStickyNoteModel model)
 {
     return(null);
 }
 public static IModelUI CreateForStickyNote(this ElementBuilder elementBuilder,
                                            CommandDispatcher commandDispatcher, IStickyNoteModel model)
 {
     return(GraphViewFactoryExtensions.CreateStickyNote(elementBuilder, commandDispatcher, model));
 }
 public UpdateStickyNoteAction(IStickyNoteModel stickyNoteModel, string title, string contents)
 {
     StickyNoteModel = stickyNoteModel;
     Title           = title;
     Contents        = contents;
 }
 public ResizeStickyNoteAction(IStickyNoteModel stickyNoteModel, Rect position)
 {
     StickyNoteModel = stickyNoteModel;
     Position        = position;
 }
Exemple #10
0
 public static IReadOnlyCollection <IGraphElementModel> DeleteStickyNote(this IGraphModel self, IStickyNoteModel stickyNoteToDelete)
 {
     return(self.DeleteStickyNotes(new[] { stickyNoteToDelete }));
 }
        public static IModelUI CreateStickyNote(this ElementBuilder elementBuilder, CommandDispatcher commandDispatcher, IStickyNoteModel model)
        {
            var ui = new StickyNote();

            ui.SetupBuildAndUpdate(model, commandDispatcher, elementBuilder.View, elementBuilder.Context);
            return(ui);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateStickyNoteCommand"/> class.
 /// </summary>
 /// <param name="stickyNoteModel">The sticky note model to update.</param>
 /// <param name="title">The new title, or null if the title should not be updated.</param>
 /// <param name="contents">The new content, or null if the content should not be updated.</param>
 public UpdateStickyNoteCommand(IStickyNoteModel stickyNoteModel, string title, string contents) : this()
 {
     StickyNoteModel = stickyNoteModel;
     Title           = title;
     Contents        = contents;
 }