!7 concept RewriteExample { S in, out; } cmodule RewriteDatabase { transient CRUD rewriteExamplesCRUD; transient SingleComponentPanel scpSuggestions; transient ReliableSingleThread rstMakeSuggestions = dm_rst(me(), r makeSuggestions); start { rewriteExamplesCRUD = CRUD(RewriteExample); } visualize { JComponent c = jtabs("Rewrite Examples", centerAndSouthWithMargin( rewriteExamplesCRUD, jCenteredSection("Suggestions", scpSuggestions = singleComponentPanel()))); onTableSelectionChanged(rewriteExamplesCRUD.table(), rstMakeSuggestions); onConceptChangeByClass RewriteExample(rstMakeSuggestions); ret c; } void makeSuggestions { RewriteExample e = rewriteExamplesCRUD.selected(), ret if null; S transferred = transferCurlyBracketPhrases(e.out, e.in); if (neq(transferred, e.in)) setComponent(scpSuggestions, jbutton("Change LHS to: " + transferred, r { cset(e, in := transferred); })); } }