Creates all sub properties and puts them in properties
.
Creates all sub properties and puts them in properties
.
Adds new validator and clears current validation result.
Adds new validator and clears current validation result. It does not fire validation process.
Adds new validator and clears current validation result.
Adds new validator and clears current validation result. It does not fire validation process.
Safely casts DirectProperty[A] to ModelProperty[A]
Safely casts DirectProperty[A] to ModelProperty[A]
Safely casts DirectProperty[Seq[A]] to DirectSeqProperty[A]
Safely casts DirectProperty[Seq[A]] to DirectSeqProperty[A]
Removes all listeners from property.
Removes all listeners from property.
Removes all validators from property and clears current validation result.
Removes all validators from property and clears current validation result. It does not fire validation process.
Combines two properties into a new one.
Combines two properties into a new one. Created property will be updated after any change in the origin ones.
Type of elements in provided property.
Output property elements type.
Property[B]
to combine with this
.
Parent of combined property, null
by default.
Method combining values A and B into O.
Property[O] updated on any change in this
or property
.
Fires value listeners.
Fires value listeners.
Current property value.
Unique property ID.
Unique property ID.
False if subproperties were not created yet.
False if subproperties were not created yet.
True if value was never changed.
True if value was never changed.
ModelProperty is valid if all validators return io.udash.properties.Valid and all subproperties are valid.
ModelProperty is valid if all validators return io.udash.properties.Valid and all subproperties are valid.
Validation result as Future, which will be completed on the validation process ending. It can fire validation process if needed.
Registers listener which will be called on value change.
Registers listener which will be called on value change.
If true
, listener will be instantly triggered with current value of property.
Registers listener which will be called on the next value change.
Registers listener which will be called on the next value change. This listener will be fired only once.
Returns listeners count.
Returns listeners count.
This method should be called when the listener is registered or removed.
This method should be called when the listener is registered or removed.
Parent property.
Parent property. null
if this property has no parent.
Ensures read-only access to this property.
Ensures read-only access to this property.
Returns child ModelProperty[B].
Returns child ModelProperty[B].
Returns child DirectProperty[B].
Returns child DirectProperty[B].
Returns child DirectSeqProperty[B]
Returns child DirectSeqProperty[B]
Changes current property value.
Changes current property value. Fires value change listeners.
Should not be null!
If true, the value change listeners will be fired even if value didn't change.
Changes current property value.
Changes current property value. Does not fire value change listeners.
Streams value changes to the target
property.
Streams value changes to the target
property.
It is not as strong relation as transform
, because target
can change value independently.
Returns child ModelProperty[B].
Returns child ModelProperty[B].
Returns child DirectProperty[B].
Returns child DirectProperty[B].
Returns child DirectSeqProperty[B] of any Seq-like field.
Returns child DirectSeqProperty[B] of any Seq-like field. Note that due to SeqProperty mutable nature, there may be performance overhead while calling subSeq on fields of type more specific than scala.collection.Seq, e.g. scala.collection.immutable.List or scala.collection.immutable.Seq
Bidirectionally synchronizes Property[B] with this
.
Bidirectionally synchronizes Property[B] with this
. The transformed value is synchronized from this
to Property[B] on initialization.
Type of new Property.
Property to be synchronized with this
.
Method transforming type A of existing Property to type B of new Property.
Method transforming type B of new Property to type A of existing Property.
Bidirectional registration between existing and new property.
Fires value change listeners with current value and clears validation result.
Fires value change listeners with current value and clears validation result.
Creates Property[B] linked to this
.
Creates Property[B] linked to this
. Changes will be bidirectionally synchronized between this
and new property.
Type of new Property.
Method transforming type A of existing Property to type B of new Property.
Method transforming type B of new Property to type A of existing Property.
New Property[B], which will be synchronised with original Property[A].
Creates ReadableProperty[B] linked to this
.
Creates ReadableProperty[B] linked to this
. Changes will be synchronized with this
.
Type of new Property.
Method transforming type A of existing Property to type B of new Property.
New ReadableProperty[B], which will be synchronised with original ReadableProperty[A].
Creates SeqProperty[B] linked to this
.
Creates SeqProperty[B] linked to this
. Changes will be synchronized with this
in both directions.
Type of elements in new SeqProperty.
Method transforming type A of existing Property to type Seq[B] of new Property.
Method transforming type Seq[B] to A.
New ReadableSeqProperty[B], which will be synchronised with original Property[A].
Creates ReadableSeqProperty[B] linked to this
.
Creates ReadableSeqProperty[B] linked to this
. Changes will be synchronized with this
.
Type of elements in new SeqProperty.
Method transforming type A of existing Property to type Seq[B] of new Property.
New ReadableSeqProperty[B], which will be synchronised with original ReadableProperty[A].
Property containing validation result.
Property containing validation result.
Triggers validation.
Triggers validation.
This method should be called when the value has changed.
This method should be called when the value has changed.