!7 module ModuleInspector > DynSCP { S moduleIDAndName; visualize { JComponent c = northAndCenterWithMargins( withCenteredTitle("Module to inspect:", dm_moduleSelectorComboBox(dm_fieldLiveValue('moduleIDAndName))), super.visualize()); update(); ret c; } L menuItems() { ret ll(abstractAction("Update", r update)); } void update { fO module = dm_getModule(firstIntAsString(moduleIDAndName)); if (module == null) setComponent(jCenteredGoogledImage("Jester")); else { L fields = allFieldObjects(module); setComponent(makeForm(pairsToParams(map(fields, func(Field f) -> Pair { O value = f.get(module); ret (Pair) pair(jLabel(f.getName()), className(value)); })))); } } }