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