!7 module CategorizeRandomSpeechLogLines { S line, category, answer; start { setModuleName("Random Speech Log Line (of " + n2(dm_speechLog(), "line") + ")"); } visualize { JLabel lbl = fontSizePlus(3, dm_centeredFieldLabel('line)); awtCalcEvery(lbl, 0.0, 5.0, r { if (mouseInComponent(dm_vis())) ret; setField(line := random(dm_speechLog())); }); ret centerAndSouth(lbl, withMargin(vstackWithSpacing( westCenterAndEastWithMargin(jlabel("Is this line"), dm_fieldTextField('category), jlabel("?")), westCenterAndEastWithMargin( leftAlignedButtons( "Yes", rThread { save("yes") }, "No", rThread { save("no") }), onEnter(dm_fieldTextField('answer), rThread save), jbutton("Save", rThread save)) ))); } void save(S answer) enter { setField(+answer); save(); } void save enter { // TODO } }