Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }