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); }
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); }
public void OnInteractiveObjectSelected(ListenedObjectField interactiveObjectField) { ResetElement(); CurrentInteracitveObjectFieldSelected = interactiveObjectField; var elem = VisualElementFromClass.BuildVisualElement(interactiveObjectField.ListenedObjectRef, ref CurrentIListenableVisualElementRefrerences); Add(elem); CurrentElement = elem; }
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); } }
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); } } }
public GameObjectListenableField(object obj, FieldInfo field, string label = "") : base(obj, field) { ObjectField = new ObjectField(string.IsNullOrWhiteSpace(label) ? VisualElementFromClass.SanitizeFieldName(field.Name) : label); Add(ObjectField); }
public RangeObjectV2ListenableField(object obj, FieldInfo field) : base(obj, field) { ObjectField = new ObjectField(VisualElementFromClass.SanitizeFieldName(field.Name)); Add(ObjectField); }
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); }