!7 sclass Entry { S name; long size, compressedSize; } cmodule ArchiveContents > DynObjectTable { File archive; visual withCenteredButtons(super, "Load archive...", rThread loadArchive); void loadArchive enter { loadArchive(showFileChooser()); } // API void loadArchive(File f) { setField(archive := f); setData(map(listZipEntries(f), e -> nu Entry( name := e.getName(), size := e.getSize(), compressedSize := e.getCompressedSize() ))); } }