!7 concept UserScreenshot { S text; new Ref pngFile; } p-substance { final SimpleCRUD crud = new SimpleCRUD(UserScreenshot) { @Override void makeComponents(UserScreenshot c, Map map) { map.put("image", new ImageChooser(c == null ? null : c.pngFile->loadImage()); map.put("text", jTextField(getString(c, "text")); if (c != null) map.put("PNG File", jlabel(absolutePath(c.pngFile->pngFile()))); } @Override void saveData(UserScreenshot c, Map components) { super.saveData(c, components); cset(c, pngFile := new PNGFile(((ImageChooser) components.get("image")).getImage()); } }.show(); crud.buttons.add(tableDependButton(crud.table, jbutton("Show screenshot", r { showFullScreenImageSurface(crud.selectedConcept().pngFile->loadImage()) }))); hideConsole(); }