mvvmfx/src/main/java/de/saxsys/mvvmfx/utils/mapping/ModelWrapper.java
public void useCurrentValuesAsDefaults() {
		M wrappedModelInstance = model.get();
		if(wrappedModelInstance != null) {
			for (final PropertyField<?, M, ?> field : fields) {
				field.updateDefault(wrappedModelInstance);
			}

			for (final ImmutablePropertyField<?, M, ?> field : immutableFields) {
				field.updateDefault(wrappedModelInstance);
			}
		}
	}
public void useCurrentValuesAsDefaults() {
		M wrappedModelInstance = model.get();
		if(wrappedModelInstance != null) {
			for (final PropertyField<?, M, ?> field : fields) {
				field.updateDefault(wrappedModelInstance);
			}

			for (final ImmutablePropertyField<?, M, ?> field : immutableFields) {
				field.updateDefault(wrappedModelInstance);
			}
		}
	}
Use all values that are currently present in the wrapped model object as new default values for respective fields.
This overrides/updates the values that were set during the initialization of the field mappings.
<p>
Subsequent calls to {@link #reset()} will reset the values to this new default values.
<p>
Usage example:
<pre>
ModelWrapper{@code<Person>} wrapper = new ModelWrapper{@code<>}();

wrapper.field(Person::getName, Person::setName, "oldDefault");

Person p = new Person();
wrapper.set(p);


p.setName("Luise");

wrapper.useCurrentValuesAsDefaults(); // now "Luise" is the default value for the name field.


name.set("Hugo");
wrapper.commit();

name.get(); // Hugo
p.getName(); // Hugo


wrapper.reset(); // reset to the new defaults
name.get(); // Luise

wrapper.commit(); // put values from properties to the wrapped model object
p.getName(); // Luise


</pre>


If no model instance is set to be wrapped by the ModelWrapper, nothing will happen when this method is invoked.
Instead the old default values will still be available.