static abstract class DynSingleFunction extends DynModule { transient S buttonText; *() {} *(S *buttonText) {} void setFunctionName(S name) { buttonText = name; } JComponent visualize() { ret jbutton(or2(buttonText, dm_moduleName()), rThread doItWithEnter); } abstract void doIt(); void doItWithEnter() { temp enter(); doIt(); } }