!7 p-subst { autoRestart(); fS listName = "List => Language", guessesList = listName + " | Guesses", confirmedList = listName + " | Confirmed"; SS guesses = mechMapCI_leftArrows(guessesList); SS confirmed = mechMapCI_leftArrows(confirmedList); guesses = mapMinusKeysOfOtherMap(guesses, confirmed); final JTable table = showTable(guessesList, namedMap("List", "Language", mapSortedByValue(guesses)); addToWindowWithMargin(table, jcenteredline( selectedRowCountTableButton(table, jbutton("Confirm Selected", r { S text = lines(map(selectedTableRowsData(table), func(L l) -> S { second(l) + " <= " + first(l) })); if (neqic("No change", infoBoxAndReturn(botAppendToMechList_uniqCI(confirmedList, text)))) restart(); // TODO: just update table })))); }