public ToggleControlView(string label, AbstractMaterialNode node, PropertyInfo propertyInfo)
        {
            m_Node         = node;
            m_PropertyInfo = propertyInfo;
            AddStyleSheetPath("Styles/Controls/ToggleControlView");

            if (propertyInfo.PropertyType != typeof(Toggle))
            {
                throw new ArgumentException("Property must be a Toggle.", "propertyInfo");
            }

            label = label ?? ObjectNames.NicifyVariableName(propertyInfo.Name);

            var value = (Toggle)m_PropertyInfo.GetValue(m_Node, null);
            var panel = new VisualElement {
                name = "togglePanel"
            };

            if (!string.IsNullOrEmpty(label))
            {
                panel.Add(new Label(label));
            }
            Action changedToggle = () => { OnChangeToggle(); };

            m_Toggle = new UnityEngine.Experimental.UIElements.Toggle(changedToggle);
            m_Toggle.SetEnabled(value.isEnabled);
            m_Toggle.on = value.isOn;
            panel.Add(m_Toggle);
            Add(panel);
        }
        public void OnNodeModified(ModificationScope scope)
        {
            var value = (Toggle)m_PropertyInfo.GetValue(m_Node, null);

            m_Toggle.SetEnabled(value.isEnabled);

            if (scope == ModificationScope.Graph)
            {
                Dirty(ChangeType.Repaint);
            }
        }
        public void OnNodeModified(ModificationScope scope)
        {
            var value = (ToggleData)m_PropertyInfo.GetValue(m_Node, null);

            m_Toggle.SetEnabled(value.isEnabled);

            if (scope == ModificationScope.Graph)
            {
                this.MarkDirtyRepaint();
            }
        }