Example #1
0
 public BoolListenableField(object obj, FieldInfo field, string label = "") : base(obj, field)
 {
     style.flexDirection = FlexDirection.Row;
     Text = new Label(string.IsNullOrWhiteSpace(label) ? VisualElementFromClass.SanitizeFieldName(field.Name) : label);
     Add(Text);
     Toggle = new Toggle();
     Add(Toggle);
 }
Example #2
0
 public IDictionaryListenableField(object obj, FieldInfo field, string label = "") : base(obj, field)
 {
     this.DictionaryValuesElement       = new VisualElement();
     this.DictionaryFoldoutElement      = new FoldableElement(this.DictionaryValuesElement, this);
     this.DictionaryFoldoutElement.text = string.IsNullOrWhiteSpace(label) ? VisualElementFromClass.SanitizeFieldName(field.Name) : label;
     this.DictionaryFoldoutElement.Add(this.DictionaryValuesElement);
     this.Add(this.DictionaryFoldoutElement);
 }
Example #3
0
    public void OnInteractiveObjectSelected(ListenedObjectField interactiveObjectField)
    {
        ResetElement();
        CurrentInteracitveObjectFieldSelected = interactiveObjectField;

        var elem = VisualElementFromClass.BuildVisualElement(interactiveObjectField.ListenedObjectRef, ref CurrentIListenableVisualElementRefrerences);

        Add(elem);
        CurrentElement = elem;
    }
Example #4
0
    protected override void OnValueChaged()
    {
        /// Creation of new keys

        foreach (var key in this.value.Keys)
        {
            if (!this.AddedVisualElementsObjects.ContainsKey(key))
            {
                this.AddedVisualElementsObjects[key] = this.value[key];

                VisualElement   entryElement         = new VisualElement();
                FoldableElement entryFoldableElement = new FoldableElement(entryElement, this.DictionaryValuesElement);
                List <IListenableVisualElement> valueListenabledVisualElements = new List <IListenableVisualElement>();
                VisualElementFromClass.BuildVisualElement(this.value[key], ref valueListenabledVisualElements);
                foreach (var valueListenabledVisualElement in valueListenabledVisualElements)
                {
                    entryElement.Add(valueListenabledVisualElement as VisualElement);
                }

                this.DictionaryEntryElements[entryFoldableElement] = valueListenabledVisualElements;

                this.KeyToFoldoutElement[key] = entryFoldableElement;
                this.DictionaryValuesElement.Add(entryFoldableElement);
                entryFoldableElement.text = key.ToString();
            }

            foreach (var dictionaryEntryElementsValues in DictionaryEntryElements.Values)
            {
                foreach (var dictionaryEntryElementsValue in dictionaryEntryElementsValues)
                {
                    dictionaryEntryElementsValue.Refresh();
                }
            }
        }


        /// Destruction of keys removed
        var referenceKeys  = this.value.Keys.Cast <object>().ToList();
        var veKeysToRemove = this.AddedVisualElementsObjects.Keys.ToList();

        veKeysToRemove.RemoveAll(
            delegate(object o) { return(referenceKeys.Contains(o)); }
            );

        foreach (var veKeyToRemove in veKeysToRemove)
        {
            this.AddedVisualElementsObjects.Remove(veKeyToRemove);
            this.DictionaryValuesElement.Remove(this.KeyToFoldoutElement[veKeyToRemove]);
            this.DictionaryEntryElements.Remove(this.KeyToFoldoutElement[veKeyToRemove]);

            this.KeyToFoldoutElement.Remove(veKeyToRemove);
        }
    }
Example #5
0
    private void ProcessIEnumerable(IEnumerable IEnumerable)
    {
        ValueIenumerableAsList.Clear();
        var enumerator = IEnumerable.GetEnumerator();
        var i          = 0;

        while (enumerator.MoveNext())
        {
            var obj = enumerator.Current;
            ValueIenumerableAsList.Add(obj);
            if (!EnumerableElements.ContainsKey(obj))
            {
                var ve       = VisualElementFromClass.BuildVisualElement(obj, ref listenableVisualElements);
                var foldable = new FoldableElement(ve, RootElement);
                foldable.text = field.Name + "_" + i;
                EnumerableElements.Add(obj, foldable);
            }

            i += 1;
        }

        foreach (var EnumerableElement in EnumerableElements.Keys.ToList())
        {
            if (!ValueIenumerableAsList.Contains(EnumerableElement))
            {
                List <IListenableVisualElement> RemovedIListenableVisualElements = null;
                VisualElementFromClass.RemoveAllIListenableVisualElementNested(EnumerableElements[EnumerableElement], ref RemovedIListenableVisualElements);
                if (RemovedIListenableVisualElements != null)
                {
                    foreach (var RemovedIListenableVisualElement in RemovedIListenableVisualElements)
                    {
                        listenableVisualElements.Remove(RemovedIListenableVisualElement);
                    }
                }

                RootElement.Remove(EnumerableElements[EnumerableElement]);
                EnumerableElements.Remove(EnumerableElement);
            }
        }
    }
Example #6
0
 public GameObjectListenableField(object obj, FieldInfo field, string label = "") : base(obj, field)
 {
     ObjectField = new ObjectField(string.IsNullOrWhiteSpace(label) ? VisualElementFromClass.SanitizeFieldName(field.Name) : label);
     Add(ObjectField);
 }
Example #7
0
 public RangeObjectV2ListenableField(object obj, FieldInfo field) : base(obj, field)
 {
     ObjectField = new ObjectField(VisualElementFromClass.SanitizeFieldName(field.Name));
     Add(ObjectField);
 }
Example #8
0
 public EnumListenableField(object obj, FieldInfo field, string label = "") : base(obj, field)
 {
     this.EnumFieldV2 = new TextField(string.IsNullOrWhiteSpace(label) ? VisualElementFromClass.SanitizeFieldName(field.Name) : label);
     Add(this.EnumFieldV2);
 }