!752 /* Date (automatically recorded) Task: Find URL area in browser Program: #1234 Data gathered: Screenshot (image) Result: Rect(...) Verdict: good Comments: ... */ concept Perf { new Ref task; new S programID; new RefL data; new Ref verdict; } concept ProgramField { S field, valueStructure; } p { conceptsAndBot(); final S progID = "#1006217"; final O program = hotwire(progID); final L fields = splitAtSpace("img clips bestClip"); callMain(program); awt { final new Var form; JButton btnGood = jbutton("Good", r { recordProgramRun("good", progID, program, fields); disposeFrame(form!) }); JButton btnBad = jbutton("Bad", r { recordProgramRun("bad", progID, program, fields); disposeFrame(form!) }); form.set(showFormTitled("Your Verdict", "", jline(btnGood, btnBad))); } } static Perf recordProgramRun(S verdict, S programID, O program, L fields) { Perf perf = cnew(Perf, verdict := cstr(verdict), +programID, task := cstr(getSnippetTitle(programID))); for (S field : fields) pcall { perf.data.add(cnew(ProgramField, +field, valueStructure := structure(getOpt(program, field)))); } ret perf; }