Configurable<T> class
abstract
Base class for all configurable fields in a config editor.
Each subclass represents a specific value type (bool, string, number, etc.) and knows how to display, validate, serialize, and edit itself using the appropriate terminice prompt.
Type parameters:
T- The Dart type of the value this configurable holds.
Example:
final field = StringConfigurable(
key: 'name',
label: 'App Name',
value: 'My App',
validator: (v) => v.isEmpty ? 'Required' : null,
);
Constructors
- Configurable({required String key, required String label, required T value, String? description, String? hint, String formatter(T value)?, String? validator(T value)?, String? icon})
- Creates a new Configurable field.
Properties
- defaultTypeIcon → String
-
The default icon for this configurable type.
Override in subclasses to provide a type-specific glyph.
no setter
- defaultValue → T
-
The original value before any edits.
final
- description → String?
-
Optional longer description shown as context when editing.
final
- displayValue → String
-
Formatted string representation of value for display in the list.
no setter
- formatter → String Function(T value)?
-
Optional display formatter. When provided, displayValue uses this
instead of the default
toString()representation.final - hashCode → int
-
The hash code for this object.
no setterinherited
- hint → String?
-
Optional hint text shown alongside the field.
final
- icon → String?
-
Custom icon override. When set, typeIcon returns this instead of
the subclass default from defaultTypeIcon.
final
- isModified → bool
-
Whether the current value differs from defaultValue.
no setter
- key → String
-
Unique key used for serialization and lookup.
final
- label → String
-
Human-readable label shown in the editor list.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- typeIcon → String
-
Glyph prefix identifying the field type in the list view.
Returns the custom icon if set, otherwise defaultTypeIcon.
no setter
- validator → String? Function(T value)?
-
Optional validator. Returns an error message on failure,
nullon success. Returning''is also accepted as success for backwards compatibility.final - value ↔ T
-
The current value of this configurable.
getter/setter pair
Methods
-
edit(
Terminice terminice) → bool - Runs the appropriate terminice prompt to edit this field's value.
-
formatValue(
) → String - Override in subclasses to provide type-specific formatting.
-
loadJsonValue(
dynamic jsonValue) → void - Deserializes and applies a value from a JSON-compatible source.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
reset(
) → void - Resets value back to defaultValue.
-
toJsonValue(
) → dynamic - Serializes the current value into a JSON-compatible map entry.
-
toString(
) → String -
A string representation of this object.
inherited
-
trySetValue(
T candidate) → bool -
Sets value to
candidateonly when it passes validation. -
validate(
) → String? -
Validates the current value. Returns
nullif valid, error message otherwise. -
validationErrorFor(
T candidate) → String? - Validates a candidate value using the shared validator semantics.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited