// see #1004681 static JTable showConcepts() { final JTable table = tableWithToolTips(); showFrame(tableWithSearcher(table)); tablePopupMenu(table, voidfunc(JPopupMenu menu, final int row) { menu.add(jmenuitem("Delete", r { Map map = getTableLineAsMap(table, row); deleteConcept(toInt(map.get("ID"))); })); }); installTimer(table, 1000, 0, new Runnable { long changesShown; public void run() { if (changesShown == changes) ret; changesShown = changes; L data = map(func(Concept c) { litorderedmap("Name", joinLines(" / " , unnull(c.name)), /*"Energy", formatDouble(c.energy, 2),*/ "ID", c.id) }, values(concepts)); dataToTable_uneditable(table, data); } }); ret table; }