Warning: session_start(): open(/var/lib/php/sessions/sess_dultu2lcmvsp3r05b0p0gotu26, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
abstract !include #1016674 // Module List
sclass LoadedModuleSearch extends ModuleList {
transient S query;
transient new RestartableCountdown autoHide;
start {
calculateWhenHidden = true;
ownResource(vmBus_onMessage('topInput, voidfunc(S s) { doSearch(s) }));
ownResource(vmBus_onMessage('hideQuickSearchModules, r dm_hideModule);
}
visualize {
JComponent c = super.visualize();
onDoubleClickOrEnter(list, r dm_hideQuickSearchModules);
ret c;
}
void update {
S s = unnullTrim(dm_getInterestingString());
if (neq(s, query))
doSearch(s);
}
void doSearch(S s) {
temp enter();
query = s;
super.update();
if (nempty(query) && nempty(results)) {
dm_placeModuleUnderAIBar(this, query);
dm_autoHide(autoHide);
} else
dm_hideModule();
}
L modulesToList() {
if (empty(query)) ret emptyList();
L modules = super.modulesToList();
L results = scoredSearch_eachTerm(dm_getInterestingString(),
map(modules, func(fO m) -> S {
"[" + dm_moduleID(m) + "] "
+ pcallF(func -> S { dm_moduleName(m) })
+ " / " + shortClassName(m)
+ " / " + getProgramID(m) }));
ret map(results, func(S s) -> O { dm_getModule(leadingSquareBracketStuff(s)) });
}
}