public static void ShowValueBadge(this IBadgeContainer self,
                                          VisualElement parent,
                                          VisualElement target,
                                          SpriteAlignment alignment,
                                          string description, Color badgeColor)
        {
            Assert.IsNotNull(parent);
            Assert.IsTrue(self is VisualElement);

            if (self.ValueBadge == null)
            {
                self.ValueBadge = new ValueBadge();
                self.ValueBadge.AddToClassList("valueBadge");
                parent.Add(self.ValueBadge);
                self.ValueBadge.AttachTo(target, alignment);
            }
            else
            {
                self.ValueBadge.style.visibility = Visibility.Visible;
            }

            self.ValueBadge.BadgeColor = badgeColor;
            self.ValueBadge.Text       = description;

            target.EnableInClassList(k_HasValueBadge, true);
        }
        public static void HideErrorBadge(this IBadgeContainer self)
        {
            Assert.IsTrue(self is VisualElement);

            ((VisualElement)self).RemoveFromClassList(k_HasErrorBadge);

            self.ErrorBadge?.RemoveFromHierarchy();
            self.ErrorBadge = null;
        }
        public static void HideValueBadge(this IBadgeContainer self)
        {
            Assert.IsTrue(self is VisualElement);

            ((VisualElement)self).RemoveFromClassList(k_HasValueBadge);
            if (self.ValueBadge != null)
            {
                self.ValueBadge.style.visibility = Visibility.Hidden;
            }
        }
Пример #4
0
 void AddValueToNode(IReadOnlyDictionary <IGraphElementModel, GraphElement> modelsToNodeUiMapping, INodeModel node, string valueReadableValue)
 {
     if (node != null && modelsToNodeUiMapping.TryGetValue(node, out GraphElement ui))
     {
         if (m_PauseState == PauseState.Paused || m_PlayState == PlayModeStateChange.EnteredEditMode)
         {
             var  n = (Experimental.GraphView.Node)ui;
             Port p = n.outputContainer.childCount > 0
                 ? n.outputContainer[0] as Port
                 : null;
             IBadgeContainer badgeContainer = (IBadgeContainer)n;
             if (p == null)
             {
                 return;
             }
             VisualElement cap = p.Q(className: "connectorCap");
             ((VseGraphView)m_GraphView).UIController.AttachValue(badgeContainer, cap, valueReadableValue, p.portColor, SpriteAlignment.BottomRight);
         }
     }
 }
        public static void ShowErrorBadge(
            this IBadgeContainer self,
            VisualElement parent,
            SpriteAlignment alignment,
            string description,
            Store store,
            CompilerQuickFix errorQuickFix
            )
        {
            Assert.IsNotNull(parent);
            Assert.IsTrue(self is VisualElement);

            var target = (VisualElement)self;

            if (self.ErrorBadge?.parent == null)
            {
                var message = description;
                if (errorQuickFix != null)
                {
                    message += $"\r\nQuick fix: {errorQuickFix.description}";
                }

                self.ErrorBadge = IconBadge.CreateError(message);
                parent.Add(self.ErrorBadge);
                self.ErrorBadge.AttachTo(target, alignment);

                target.EnableInClassList(k_HasErrorBadge, true);
                if (errorQuickFix != null)
                {
                    self.ErrorBadge.RegisterCallback <MouseDownEvent>(e => errorQuickFix.quickFix(store));
                }

                return;
            }

            self.ErrorBadge.AttachTo(target, alignment);
        }
        internal void AttachValue(IBadgeContainer badgeContainer, VisualElement visualElement, string value, Color portPos, SpriteAlignment alignment)
        {
            Assert.IsNotNull(visualElement);

            badgeContainer.ShowValueBadge(m_IconsParent, visualElement, alignment, value, portPos);
        }