GUI-logica in scripts

Hoewel het verbinden van eigenschappen, zoals hierboven beschreven, vaak voldoende is, is het soms flexibeler of eenvoudiger, de GUI-logica in een script te beschrijven. Op die manier kan het bovenstaande voorbeeld worden herschreven naar:

[...]
        <code file="code.js"/>
'
        <logic>
                <script><![CDATA[
                        // ECMAScript-code in dit blok
                        // de top-level statement wordt maar een keer aangeroepen
                        gui.addChangeCommand ("mode.string", "modeChanged ()");

                        // deze functie wordt aangeroepen als "mode" wordt gewijzigd
                        modeChanged = function () {
                                var varmode = (gui.getString ("mode.string") == "variable");
                                gui.setValue ("y.enabled", varmode);
                                gui.setValue ("constante.enabled", !varmode);
                        }
                ]]></script>
        </logic>

        <dialog label="T-Test">
        [...]
        

In de eerste regel staat dat RKWard de functie modeChanged() (modusGewijzigd)moet aanroepen als de waarde van de radioknop id="mode" verandert. In deze functie definiëren we een hulpvariabele "varmode" die true is wanneer de modus "variabele" is, en false als die "constante" is. Daarna gebruiken we gui.setValue() om de eigenschappen op aan te zetten van "y" en "constant", op precies dezelfde manier als we dat eerder deden met de <connect> statements.

Het maken van scripts voor de GUI-logica is bijzonder nuttig wanneer u de beschikbare optie wilt aanpassen aan het type object dat door de gebruiker wordt geselecteerd. Zie welke functies er zijn in de naslag.

Merk op dat dit maken van scripts voor de GUI-logica kan samengaan met de statements <connect> en <convert> als u dat wilt.Ook maakt de <script>-tag het mogelijk de bestandsnaam van een script op te geven naast, of in plaats van, het Inlinen (invoegen) van de scriptcode. Het inlinen, zoals hierboven, is echter gewoonlijk het eenvoudigst.