static SimpleLiveValue dm_fieldLiveValue(S fieldName) { ret dm_fieldLiveValue(dm_current_mandatory(), fieldName); } static SimpleLiveValue dm_fieldLiveValue(final DynModule module, fS fieldName) { lock module.lock; Class type = getFieldType(module, fieldName); final SimpleLiveValue value = new(type, get(module, fieldName)); module.onChange(r { ifdef dm_fieldLiveValue_debug print("dm_fieldLiveValue: setting " + fieldName); endifdef O o = get(module, fieldName); ifdef dm_fieldLiveValue_debug print("dm_fieldLiveValue: setting " + fieldName + " = " + o); endifdef value.set(o); ifdef dm_fieldLiveValue_debug print("dm_fieldLiveValue: setting " + fieldName + " done"); printStackTrace(); endifdef }); value.onChange(r { ifdef dm_fieldLiveValue_debug print("dm_fieldLiveValue: setting 2 " + fieldName + " = " + value!); endifdef module.setField(fieldName, value!); ifdef dm_fieldLiveValue_debug print("dm_fieldLiveValue: setting 2 " + fieldName + " done"); endifdef }); ret value; }