!7 sclass VoiceReadyForOutput > DynTextArea { S voice; JComponent visualize() { ret centerAndSouthWithMargins(super.visualize(), westCenterAndEast(withLabel("Voice:", jLiveValueComboBox(ll("William"), dm_fieldLiveValue('voice))), jbutton("Say", r sayIt))); } void sayIt { S s = trim(getText()); if (isCereprocVoice(voice) && nempty(s)) cereproc(voice, s); else print("Missing voice"); } S text() { ret (S) value; } void clear() { setValue(""); } }