!7 sclass ListMethodsOfActiveModule extends DynTextArea { transient O module; void start { dm_updateMeOnNewActiveModule(); } JComponent visualize() { ret centerAndSouth(super.visualize(), withMargin(jcenteredbutton("Call method", r-thread { // TODO /*S s = lineAtCaret(textArea); if (isIdentifier(s)) { print("Calling method " + s + " on " + module); call(module, s); }*/ }))); } void update { O _m = dm_activeModule(); if ((_m != this || module == null) && setField(module := _m)) { setText("Active Module: " + dm_moduleName(module) + "\n"); new StringBuilder buf; L l = allLiveMethods_skipOverridden_sortByNameWithinClass(module); new L lines; Class c = null; for (Method m : l) { if (m.getDeclaringClass() != c) { c = m.getDeclaringClass(); lines.add("\nclass " + shortClassName(c) + "\n"); } Class[] args = m.getParameterTypes(); Class returns = m.getReturnType(); lines.add(" " + m.getName() + (typeIsVoid(returns) && empty(args) ? "!" : ": " + join(appendToAll(allToString(args), " ")) + "-> " + returns); } setText(getText() + lines(lines)); } } }