abstract sclass DynCopiedObjectTable extends DynObjectTable {
S srcModuleLibID;
transient bool autoScrollDown;
void init {} // override this in subclasses
start {
init();
dm_require(srcModuleLibID);
dm_vmBus_onMessage listChanged(voidfunc(O mod, L list) {
if (empty(srcModuleLibID) || dm_isMe(mod) || !eq(dm_moduleLibID(mod), srcModuleLibID)) ret;
updateMe(); // goes through RST + Q
});
updateMe();
}
void update {
L l = cast dm_callModuleWithLibID(srcModuleLibID, 'getList);
if (l == null) ret;
setList(quickImport(l));
if (autoScrollDown) scrollDown();
}
}