!7 module LocalSnippets > DynObjectTable { visualize { ret withCenteredButtons(super.visualize(), "Create snippet...", r addSnippet, tableDependentButton("Transpile", rThread { transpileLocalSnippet(selected().id) }); } start { itemToMap = func(Snippet s) -> Map { litorderedmap("ID" := s.id, "Title" := unnull(s.title), "Lines" := str(numberOfLinesInFile(localSnippetFile(s.id)))) }; updateList(); } void updateList enter { setData(listLocalSnippets()); } void addSnippet enter { final JTextField tfTitle = jtextfield(); showFormTitled("Create local snippet", "Title", tfTitle, "Type", "Dynamic Module", rThread { long id = newLocalSnippetID(); File f = localSnippetFile(id); assertFalse(fileExists(f)); saveTextFile(f, newModuleText()); setFileInfoField(dropExtension(f), "Title", gtt(tfTitle)); updateList(); }); } }