1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- namespace InABox.Core
- {
- public enum DesignBooleanFieldType
- {
- Checkbox,
- ComboBox,
- Buttons
- }
- public class DFLayoutBooleanFieldProperties : DFLayoutFieldProperties<bool, bool?>
- {
- [EnumLookupEditor(typeof(DesignBooleanFieldType))]
- [EditorSequence(1)]
- public DesignBooleanFieldType Type { get; set; }
- [TextBoxEditor]
- [EditorSequence(2)]
- public string TrueValue { get; set; }
- [TextBoxEditor]
- [EditorSequence(3)]
- public string FalseValue { get; set; }
- protected override void LoadProperties()
- {
- base.LoadProperties();
- Type = GetProperty("Type", DesignBooleanFieldType.Checkbox);
- TrueValue = GetProperty("TrueValue", "True");
- FalseValue = GetProperty("FalseValue", "False");
- }
- protected override void SaveProperties()
- {
- base.SaveProperties();
- SetProperty("Type", Type);
- SetProperty("TrueValue", TrueValue);
- SetProperty("FalseValue", FalseValue);
- }
- public override string FormatValue(bool? value)
- {
- return value == true ? TrueValue : FalseValue;
- }
- public override bool GetValue(bool? value)
- {
- return value ?? Default;
- }
- public override bool? DeserializeValue(DFLoadStorageEntry entry)
- {
- var value = entry.GetValue();
- if (value is bool b)
- return b;
- if (bool.TryParse(value as string, out var result))
- return result;
- if (value is string str)
- {
- if (str == TrueValue)
- return true;
- if (str == FalseValue)
- return false;
- return null;
- }
- return null;
- }
- public override void SerializeValue(DFSaveStorageEntry entry, bool? value)
- {
- if(value == true)
- {
- entry.SetValue(TrueValue);
- }
- else if (value == false)
- {
- entry.SetValue(FalseValue);
- }
- }
- }
- }
|