abstract sclass ELESuggester > DynSCP { start { ele_onInputAndNow(lambda1 process); } Pt minimumSize() { ret pt(300, 300); } // override me void process_impl(S input) {} void process(S input) q { process_impl(input); } void showSuggestions(S madeFromInput, LS l) { setComponent(vstackWithSpacing(map(l, s -> withSideMargin(jLabelWithButtons(s, "+", r { ele_logUserFeedback(true, item := s, moduleID := dm_moduleID(), moduleName := dm_moduleName(), +madeFromInput) }, "-", r { ele_logUserFeedback(false, item := s, moduleID := dm_moduleID(), moduleName := dm_moduleName(), +madeFromInput) }, "Say", r { dm_say(s) }))))); } }