public GameObject CreateIntegerPropertyFilterPanel(string propertyName, string displayName) { GameObject newPanel = Instantiate(integerFilterPanel.gameObject, propertyFiltersContent); newPanel.gameObject.SetActive(true); SearchFilterPanel config = newPanel.GetComponent <SearchFilterPanel>(); config.nameLabelText.text = !string.IsNullOrEmpty(displayName) ? displayName : propertyName; int storedFilter; if (Filters.IntMinProperties.TryGetValue(propertyName, out storedFilter)) { config.integerMinInputField.text = storedFilter.ToString(); } config.integerMinInputField.onValueChanged.AddListener(text => SetIntMinPropertyFilter(propertyName, text)); if (Filters.IntMaxProperties.TryGetValue(propertyName, out storedFilter)) { config.integerMaxInputField.text = storedFilter.ToString(); } config.integerMaxInputField.onValueChanged.AddListener(text => SetIntMaxPropertyFilter(propertyName, text)); return(newPanel); }
public GameObject CreateEnumPropertyFilterPanel(string propertyName, PropertyDef property) { GameObject newPanel = Instantiate(toggleFilterPanel.gameObject, propertyFiltersContent); newPanel.gameObject.SetActive(true); SearchFilterPanel config = newPanel.GetComponent <SearchFilterPanel>(); config.nameLabelText.text = !string.IsNullOrEmpty(property.Display) ? property.Display : propertyName; int storedFilter = 0; Filters.EnumProperties.TryGetValue(propertyName, out storedFilter); EnumDef enumDef = CardGameManager.Current.Enums.First(def => def.Property.Equals(propertyName)); float toggleWidth = 0; Vector3 toggleLocalPosition = config.toggle.transform.localPosition; float panelWidth = 0; if (property.DisplayEmptyFirst) { toggleWidth = CreateEmptyEnumToggle(propertyName, property, enumDef, config, storedFilter, toggleLocalPosition); toggleLocalPosition.x += toggleWidth; panelWidth += toggleWidth; } foreach (KeyValuePair <string, string> enumValue in enumDef.Values) { int lookupKey = 0; if (!enumDef.Lookups.TryGetValue(enumValue.Key, out lookupKey)) { lookupKey = enumDef.CreateLookup(enumValue.Key); } Toggle toggle = Instantiate(config.toggle.gameObject, config.toggleGroupContainer).GetOrAddComponent <Toggle>(); toggle.isOn = (storedFilter & lookupKey) != 0; toggle.onValueChanged.AddListener(isOn => SetEnumPropertyFilter(propertyName, lookupKey, isOn)); toggle.GetComponentInChildren <Text>().text = enumValue.Value; toggle.transform.localPosition = toggleLocalPosition; toggleWidth = toggle.GetComponentInChildren <Text>().preferredWidth + 25; RectTransform toggleImageTransform = (RectTransform)toggle.GetComponentInChildren <Image>().transform; toggleImageTransform.sizeDelta = new Vector2(toggleWidth, toggleImageTransform.sizeDelta.y); toggleLocalPosition.x += toggleWidth; panelWidth += toggleWidth; } if (!property.DisplayEmptyFirst && !string.IsNullOrEmpty(property.DisplayEmpty)) { toggleWidth = CreateEmptyEnumToggle(propertyName, property, enumDef, config, storedFilter, toggleLocalPosition); toggleLocalPosition.x += toggleWidth; panelWidth += toggleWidth; } config.toggle.gameObject.SetActive(false); config.toggleGroupContainer.sizeDelta = new Vector2(panelWidth, config.toggleGroupContainer.sizeDelta.y); return(newPanel); }
public GameObject CreateBooleanPropertyFilterPanel(string propertyName, string displayName) { GameObject newPanel = Instantiate(toggleFilterPanel.gameObject, propertyFiltersContent); newPanel.gameObject.SetActive(true); SearchFilterPanel config = newPanel.GetComponent <SearchFilterPanel>(); config.nameLabelText.text = !string.IsNullOrEmpty(displayName) ? displayName : propertyName + "?"; bool hasFilter = false; bool storedFilter; if (Filters.BoolProperties.TryGetValue(propertyName, out storedFilter)) { hasFilter = true; } Toggle toggle; float toggleWidth; RectTransform toggleImageTransform; Vector3 toggleLocalPosition = config.toggle.transform.localPosition; float panelWidth = 0; toggle = Instantiate(config.toggle.gameObject, config.toggleGroupContainer).GetOrAddComponent <Toggle>(); toggle.isOn = hasFilter && storedFilter; toggle.onValueChanged.AddListener(isOn => SetBoolPropertyFilter(propertyName, true, isOn)); toggle.GetComponentInChildren <Text>().text = "true"; toggle.transform.localPosition = toggleLocalPosition; toggleWidth = toggle.GetComponentInChildren <Text>().preferredWidth + 25; toggleImageTransform = (RectTransform)toggle.GetComponentInChildren <Image>().transform; toggleImageTransform.sizeDelta = new Vector2(toggleWidth, toggleImageTransform.sizeDelta.y); toggleLocalPosition.x += toggleWidth; panelWidth += toggleWidth; toggle = Instantiate(config.toggle.gameObject, config.toggleGroupContainer).GetOrAddComponent <Toggle>(); toggle.isOn = hasFilter && !storedFilter; toggle.onValueChanged.AddListener(isOn => SetBoolPropertyFilter(propertyName, false, isOn)); toggle.GetComponentInChildren <Text>().text = "false"; toggle.transform.localPosition = toggleLocalPosition; toggleWidth = toggle.GetComponentInChildren <Text>().preferredWidth + 25; toggleImageTransform = (RectTransform)toggle.GetComponentInChildren <Image>().transform; toggleImageTransform.sizeDelta = new Vector2(toggleWidth, toggleImageTransform.sizeDelta.y); toggleLocalPosition.x += toggleWidth; panelWidth += toggleWidth; config.toggle.gameObject.SetActive(false); config.toggleGroupContainer.sizeDelta = new Vector2(panelWidth, config.toggleGroupContainer.sizeDelta.y); return(newPanel); }
public GameObject CreateStringPropertyFilterPanel(string propertyName, string displayName) { GameObject newPanel = Instantiate(stringFilterPanel.gameObject, propertyFiltersContent); newPanel.gameObject.SetActive(true); SearchFilterPanel config = newPanel.GetComponent <SearchFilterPanel>(); config.nameLabelText.text = !string.IsNullOrEmpty(displayName) ? displayName : propertyName; if (Filters.StringProperties.TryGetValue(propertyName, out string storedFilter)) { config.stringInputField.text = storedFilter; } config.stringPlaceHolderText.text = "Enter " + propertyName + "..."; config.stringInputField.onValueChanged.AddListener(text => SetStringPropertyFilter(propertyName, text)); return(newPanel); }
public float CreateEmptyEnumToggle(string propertyName, PropertyDef property, EnumDef enumDef, SearchFilterPanel config, int storedFilter, Vector3 toggleLocalPosition) { int lookupKey = 0; if (!enumDef.Lookups.TryGetValue(property.DisplayEmpty, out lookupKey)) { lookupKey = enumDef.CreateLookup(property.DisplayEmpty); } Toggle toggle = Instantiate(config.toggle.gameObject, config.toggleGroupContainer).GetOrAddComponent <Toggle>(); toggle.isOn = (storedFilter & lookupKey) != 0; toggle.onValueChanged.AddListener(isOn => SetEnumPropertyFilter(propertyName, lookupKey, isOn)); toggle.GetComponentInChildren <Text>().text = property.DisplayEmpty; toggle.transform.localPosition = toggleLocalPosition; float toggleWidth = toggle.GetComponentInChildren <Text>().preferredWidth + 25; RectTransform toggleImageTransform = (RectTransform)toggle.GetComponentInChildren <Image>().transform; toggleImageTransform.sizeDelta = new Vector2(toggleWidth, toggleImageTransform.sizeDelta.y); return(toggleWidth); }