!7 concept Drawing { S calStructure; } static new CirclesAndLines cal; static Canvas canvas; p { db(); substance(); swing { canvas = cal.show(800, 600); new CirclesRelater(canvas, cal); addToWindow(canvas, withMargin(jcenteredline( jbutton("New Circle...", f newCircle), jbutton("Save drawing", f saveDrawing)))); } } svoid newCircle { final JTextField text = jtextfield(); showFormTitled("New Circle", "Text", text, r-thread { cal.circle_autoVis(getTextTrim(text), random(0.2, 0.8), random(0.2, 0.8)); canvas.update(); }); } svoid saveDrawing { S s = structure(cal); Drawing d = cnew(Drawing, calStructure := s); infoBox("Drawing saved. ID: " + d.id + ", " + lUtf8(quote(s)) + " bytes"); }