!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 (!swicOneOf(infoBoxAndReturn(botAppendToMechList_uniqCI(confirmedList, text)), "No change", "ERROR")) restart(); // TODO: just update table })))); }