srecord noeq G22AutoStartPanel(G22Utils g22utils) { G22AutoStarter autoStarter; JButton btnCancel; JLabel lblStatus; cachedVisualize { autoStarter = g22utils.autoStarter(); var vis = jCenteredSection("Auto Start Scripts", northAndCenterWithMargin( centerAndEastWithMargin( btnCancel = jThreadedButton("Cancel", r { autoStarter.cancel() }), jbutton("Edit") // TODO ), lblStatus = jlabel() )); bindListenerToComponent(lblStatus, autoStarter, r update); ret vis; } void update { setEnabled(btnCancel, autoStarter.enabled()); setText(lblStatus, autoStarter.status()); } }