!7 sclass SearchInFullSpeechLog > DynTableWithSearcher { bool copyFromAIBar; L calc() { ret data; } start { L log = katze_getFullLog(); data = new L; for i over log: data.add(litorderedmap('Text, log.get(i), 'Nr := i+1)); ownResource(onSpeechRecognized_withoutMine(voidfunc(S s) { Map row = litorderedmap(Text := s, 'Nr := l(data)+1); data = listPlus(data, row); addRowToTableWithSearcher(tableSearcher, row); })); dm_onTopInputChange(voidfunc(S s) { if (copyFromAIBar) setSearchTerm(s) }); } afterVisualize { replaceComponent(tableSearcher.searchPanel, func(JComponent panel) -> JComponent { westAndCenter(jLiveValueCheckBox("Copy from AI bar |", dm_fieldLiveValue('copyFromAIBar)), panel) }); } }