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; }
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(); }
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(); }
//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; }
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; }
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; }
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; }
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(); } }