Пример #1
0
        private void SetInitialMutableValue()
        {
            var userFacingAbsKey = MutableField.AbsoluteKey;

            switch (MutableField.SchemaSource)
            {
            case SchemaSource.Mutable:
                SetSelectedMutableText("Local Payload" + (userFacingAbsKey.Length == 0 ? "" : ".") + userFacingAbsKey);
                break;

            case SchemaSource.Global:
                SetSelectedMutableText("Global Payload" + (userFacingAbsKey.Length == 0 ? "" : ".") + userFacingAbsKey);
                break;
            }

            var segmentCount = MutableField.AbsoluteKey.Count(c => c.Equals('.')) + 2;

            GetComponent <LayoutElement>().preferredHeight = segmentCount * 16;

            SchemaProvider.CacheSchema();
            bool fieldValid;

            try
            {
                fieldValid = MutableField.ValidateKey(SchemaProvider.Schema);
            }
            catch (NullReferenceException)
            {
                fieldValid = false;
            }
            SchemaProvider.UnCacheSchema();

            IndicateError = !fieldValid;
        }
Пример #2
0
        private void PopulateOptions()
        {
            DestroyMutableDropDownItems();

            // generate items from field's schema

            SchemaProvider.CacheSchema();

            EvaluateMutableValueForAdding("", SchemaSource.Mutable, SchemaProvider.Schema);
            GenerateMutableDropDownItems(MutableObject.IntersectOwnSchema(SchemaProvider.Schema), SchemaSource.Mutable, new Stack <string>());

            // generate items from cached schema
            if (CachedMutableDataStore.DataCached)
            {
                EvaluateMutableValueForAdding("", SchemaSource.Cached, CachedMutableDataStore.DataStore);
                GenerateMutableDropDownItems(MutableObject.IntersectOwnSchema(CachedMutableDataStore.DataStore), SchemaSource.Cached, new Stack <string>());
            }

            // generate items from the global variable store's schema

            AddMutableItem("", SchemaSource.Global, false, null);
            GenerateMutableDropDownItems(GlobalVariableDataStore.Instance.Schema, SchemaSource.Global, new Stack <string>());

            SchemaProvider.UnCacheSchema();
        }
Пример #3
0
        private void ChangeStringKeyValue(bool applyValue)
        {
            var text = NewFieldValueInputFieldComponent.text;

            if (applyValue)
            {
                UndoLord.Instance.Push(new MutableTargetChange(this,
                                                               (MutableTarget.SchemaSource == SchemaSource.Mutable ? "Local Payload." : "Global Payload.") + MutableTarget.AbsoluteKey,
                                                               (MutableTarget.SchemaSource == SchemaSource.Mutable ? "Local Payload." : "Global Payload.") + MutableTarget.IntermediateKeyString
                                                               + (string.IsNullOrEmpty(MutableTarget.IntermediateKeyString) ? "" : ".") + text));
            }

            if (text.Contains('.'))
            {
                IndicateError = true;
                return;
            }

            if (!applyValue)
            {
                return;
            }

            // Send on up
            SchemaProvider.CacheSchema();
            MutableTarget.LastKey = text;
            SchemaProvider.UnCacheSchema();
        }
Пример #4
0
        //private void HandleGlobalParameterSelected( MutableBoxMutableItemBehaviour item )
        //{
        //    IndicateGlobalValue(item);
        //
        //    ShowItemDropDown = false;
        //}

        private void IndicateMutableValue(MutableBoxMutableItemBehaviour item)
        {
            SetSelectedMutableText(item.UserFacingAbsoluteKey);

            var segmentCount = item.UserFacingAbsoluteKey.Count(c => c.Equals('.')) + 1;

            GetComponent <LayoutElement>().preferredHeight = segmentCount * 16;

            UndoLord.Instance.Push(new MutableFieldChange(this, MutableField, item.UserFacingAbsoluteKey));

            // ArraySuffix never leaves this class!
            var arrayFreeText = item.AbsoluteKey.Replace(ArraySuffix, "");

            SchemaProvider.CacheSchema();
            MutableField.AbsoluteKey = arrayFreeText;

            MutableField.SchemaSource = item.SchemaSource;

            //////
            //MutableField.UseMutableValue = !item.useCachedData?
            //////

            //MutableField.UseMutableData = true;

            bool fieldValid;

            try
            {
                fieldValid = MutableField.ValidateKey(SchemaProvider.Schema);
            }
            catch (NullReferenceException)
            {
                fieldValid = false;
            }
            SchemaProvider.UnCacheSchema();

            IndicateError = !fieldValid;

            SwitchDisplayToMutableValue();

            //ShowItemDropDown = false;
        }
Пример #5
0
        public void DoUndo(string newKey)
        {
            var parts = newKey.Split('.');

            SetSelectedMutableText(string.Join(".", parts, 0, parts.Length - 1));

            var segmentCount = parts.Length - 1;

            GetComponent <LayoutElement>().preferredHeight = segmentCount * 16 + PreferredHeight - 16 + 4;    // -16 for keypanel, +4 for layout group padding.

            // ArraySuffix never leaves this class!
            var arrayFreeText = string.Join(".", parts, 1, parts.Length - 2).Replace(ArraySuffix, "");

            SchemaProvider.CacheSchema();
            MutableTarget.IntermediateKeyString = arrayFreeText;
            SchemaProvider.UnCacheSchema();

            var textKey = parts[parts.Length - 1];

            NewFieldValueInputFieldComponent.text = textKey;

            var indicError = false;

            if (textKey.Contains('.'))
            {
                indicError = true;
            }
            else
            {
                SchemaProvider.CacheSchema();
                MutableTarget.LastKey = textKey;
                SchemaProvider.UnCacheSchema();
            }

            SchemaProvider.CacheSchema();
            MutableTarget.ValidateKey(SchemaProvider.Schema);
            SchemaProvider.UnCacheSchema();

            IndicateError = indicError | !MutableTarget.KeyValid;
        }
Пример #6
0
        private void IndicateMutableValue(MutableBoxMutableItemBehaviour item)
        {
            SetSelectedMutableText(item.UserFacingAbsoluteKey);

            var segmentCount = item.UserFacingAbsoluteKey.Count(c => c.Equals('.')) + 1;

            GetComponent <LayoutElement>().preferredHeight = segmentCount * 16 + PreferredHeight - 16 + 4;    // -16 for keypanel, +4 for layout group padding.

            // ArraySuffix never leaves this class!
            var arrayFreeText = item.AbsoluteKey.Replace(ArraySuffix, "");

            SchemaProvider.CacheSchema();
            MutableTarget.IntermediateKeyString = arrayFreeText;
            SchemaProvider.UnCacheSchema();

            SchemaProvider.CacheSchema();
            MutableTarget.ValidateKey(SchemaProvider.Schema);
            SchemaProvider.UnCacheSchema();

            IndicateError = !MutableTarget.KeyValid;

            //ShowItemDropDown = false;
        }
Пример #7
0
        private void IndicateMutableValue(MutableBoxMutableItemBehaviour item)
        {
            SetSelectedMutableText(item.UserFacingAbsoluteKey);

            var segmentCount = item.UserFacingAbsoluteKey.Count(c => c.Equals('.')) + 1;

            GetComponent <LayoutElement>().preferredHeight = segmentCount * 16;

            // ArraySuffix never leaves this class!
            var arrayFreeText = item.AbsoluteKey.Replace(ArraySuffix, "");

            SchemaProvider.CacheSchema();
            Scope.AbsoluteKey = arrayFreeText;
            SchemaProvider.UnCacheSchema();

            SchemaProvider.CacheSchema();
            IndicateError = !Scope.ValidateKey(SchemaProvider.Schema);
            SchemaProvider.UnCacheSchema();

            SwitchDisplayToMutableValue();

            //ShowItemDropDown = false;
        }
Пример #8
0
        public void DoUndo(bool toLiteral, string value)
        {
            if (LiteralValueDisplayPanel.activeInHierarchy != toLiteral)
            {
                if (toLiteral)
                {
                    SwitchDisplayToLiteralValue();
                }
                else
                {
                    SwitchDisplayToMutableValue();
                }
            }

            if (toLiteral)
            {
                LiteralValueInputFieldComponent.text = value;

                object result = null;

                var success = value.StringToValueOfType(Type, ref result);

                if (success)
                {
                    IndicateError = !MutableField.SetLiteralValueAsObject(result);
                }
            }
            else //This was a Mutable
            {
                var segmentCount = value.Count(c => c.Equals('.')) + 1;
                GetComponent <LayoutElement>().preferredHeight = segmentCount * 16;

                SetSelectedMutableText(value);

                var schemaSource = value.StartsWith("Local") ? SchemaSource.Mutable : SchemaSource.Global;
                value = value.Substring(value.IndexOf(".", StringComparison.CurrentCulture) + 1);

                // ArraySuffix never leaves this class!
                var arrayFreeText = value.Replace(ArraySuffix, "");

                SchemaProvider.CacheSchema();
                MutableField.AbsoluteKey = arrayFreeText;

                MutableField.SchemaSource = schemaSource;

                bool fieldValid;

                try
                {
                    fieldValid = MutableField.ValidateKey(SchemaProvider.Schema);
                }
                catch (NullReferenceException)
                {
                    fieldValid = false;
                }
                SchemaProvider.UnCacheSchema();

                IndicateError = !fieldValid;

                SwitchDisplayToMutableValue();
            }
        }