!7 cmodule AgiBlueControlPanel { transient JLabel lblStarted; transient JButton btnStart; transient int[] ports; visualize { ports = (int[]) getOpt(agiProg(), 'webServerPorts); if (ports == null) ret jcenteredlabel("Not running agi.blue"); ret makeForm( "Web Server Started:", lblStarted = jlabel(yesNo(started())), "HTTP Port:", joinWithComma(asList(ports)), "", "", "", btnStart = jbutton("Start Web Server", rThread startWebServer), "", jbutton("Open in browser", rThread openInBrowser)); } void startWebServer enter { disableButton(btnStart); temp tempSetButtonText(btnStart, "Starting..."); call(agiProg(), 'startEleu); setText(lblStarted, yesNo(started())); } bool started() { ret isTrue(get(agiProg(), 'started)); } O agiProg() { ret mainProgram(); } bool warnOnDelete() { true; } void openInBrowser enter { openURLInBrowser("http://localhost:" + first(ports)); } }