!7 static JTable table; sS listName, guessesList, confirmedList; p-subst { autoRestart(); listName = "List => Language"; guessesList = listName + " | Guesses"; confirmedList = listName + " | Confirmed"; makeTable(); addToWindowWithMargin(table, jcenteredline( selectedRowCountTableButton(table, jbutton("Confirm", r { sendMap(twoElementListsToMap((LL) (L) selectedTableRowsData(table))) })), selectedRowCountTableButton(table, jbutton("Mark German", r { sendMap(replaceValuesWith("german", twoElementListsToMap((LL) (L) selectedTableRowsData(table)))) })), selectedRowCountTableButton(table, jbutton("Mark English", r { sendMap(replaceValuesWith("english", twoElementListsToMap((LL) (L) selectedTableRowsData(table)))) })))); } svoid makeTable { SS guesses = mechMapCI_leftArrows(guessesList); SS confirmed = mechMapCI_leftArrows(confirmedList); guesses = mapMinusKeysOfOtherMap(guesses, confirmed); table = showTable(table, namedMap("List", "Language", mapSortedByValue(guesses)), guessesList); } svoid sendMap(SS map) { if (!swic(infoBoxAndReturn(botAppendToMechList_uniqCI(confirmedList, formatDoubleLeftArrowMap(map))), "No change")) { mechLists_clearCache(); makeTable(); } }