public override VisualElement MakeItem()
        {
            // create a visual element hierarchy for this search result
            PropertyElement item = new PropertyElement(m_ItemTemplate.name);

            m_ItemTemplate.CloneTree(item);
            item.Toggle = item.MandatoryQ <Toggle>("selectionToggle");
            item.Toggle.RegisterValueChangedCallback(e => OnSelectionToggle(item));

            return(item);
        }
        public override VisualElement Bind(VisualElement element, SearcherItem item, ItemExpanderState expanderState, string query)
        {
            var             propItem = (PropertySearcherItem)item;
            VisualElement   expander = base.Bind(element, item, expanderState, query);
            PropertyElement propElt  = (PropertyElement)element;

            propElt.Item     = propItem;
            propItem.Element = propElt;
            Toggle toggle = propElt.Toggle;

            // SetValueWithoutNotify sets the value, but not the pseudostate
            toggle.SetValueWithoutNotify(propItem.Enabled);
            // .value= will set the pseudo state, but skip the notify and the markDirtyRepaint, as newValue == oldValue
            toggle.value = (propItem.Enabled);
            // still needed
            toggle.MarkDirtyRepaint();

            return(expander);
        }
Esempio n. 3
0
        internal void DisplayPropertySearcher(PropertyGroupBaseNodeModel model, Vector2 displayAtPosition)
        {
            var items = PropertyGroupSearcherAdapter.GetPropertySearcherItems(model, 4)?.ToList();

            if (items == null)
            {
                return;
            }

            var adapter = new PropertyGroupSearcherAdapter(m_Store, model);

            SearcherService.ShowTransientData(this, items, adapter,
                                              item =>
            {
                if (item == null)
                {
                    return;
                }

                PropertyElement propertyElement = ((PropertySearcherItem)item).Element;
                adapter.EditModel(!propertyElement.Toggle.value, propertyElement.Item);
            },
                                              displayAtPosition);
        }
        void OnSelectionToggle(PropertyElement element)
        {
            PropertySearcherItem boundSearchItem = element.Item;

            EditModel(element.Toggle.value, boundSearchItem);
        }