clients who call startnonuserchange should call finishnonuserchange as soon as possible after the change is done . concode_field_sep boolean nonUserChange concode_field_sep void startListeningTo concode_elem_sep void startListeningForEnter concode_elem_sep void handleEvent concode_elem_sep void stopListeningTo concode_elem_sep void startNonUserChange concode_elem_sep void textChanged concode_elem_sep boolean isNonUserChange
void function ( ) { if ( ! nonUserChange ) throw new IllegalStateException ( "srini_string" ) ; nonUserChange = false ; }