sclass G22LAScriptIDE { settable G22Utils g22utils; settable S noScriptSelectedMsg = "Please select a script to edit it"; G22LAScript script; SingleComponentPanel scp; JLeftArrowScriptIDE ide; *(G22Utils *g22utils) {} visualize { if (scp == null) scp = singleComponentPanel(); loadScript(script); ret scp; } void setScript(G22LAScript script) { if (this.script != script) loadScript(script); } void loadScript(G22LAScript script) { this.script = script; if (scp == null) ret; if (script == null) scp.set(jcenteredlabel(noScriptSelectedMsg())); else { ide = g22utils.leftArrowIDE(); modifyIDE(ide); ide.lvScript(script.lvLatestText()); scp.set(ide); } } swappable void modifyIDE(JLeftArrowScriptIDE ide) { } }