Керування логікою графічного інтерфейсу за допомогою скриптів

Хоча з’єднання властивостей, описаного вище, часто достатньо, іноді гнучкішим і зручнішим способом керування логікою графічного інтерфейсу є використання скриптів JS. У цей спосіб наведений вище приклад може бути переписано так:

[...]
        <code file="code.js"/>
'
        <logic>
                <script><![CDATA[
                        // У цьому блоці використано код ECMAScript
                        // інструкція вищого рівня викликається лише один раз
                        gui.addChangeCommand ("mode.string", "modeChanged ()");

                        // ця функція викликається кожного разу, коли змінюється режим «mode»
                        modeChanged = function () {
                                var varmode = (gui.getString ("mode.string") == "variable");
                                gui.setValue ("y.enabled", varmode);
                                gui.setValue ("constant.enabled", !varmode);
                        }
                ]]></script>
        </logic>

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

Перший рядок коду повідомляє RKWard, що слід викликати modeChanged(), щоб визначити, чи змінилося значення пункту варіанта id="mode". Всередині цієї функції ми визначаємо допоміжну змінну "varmode", яка має значення true, якщо mode має значення "variable" як "constant". Далі, ми використовуємо gui.setValue() для встановлення властивостей «enabled» "y" і "constant" у той самий спосіб, як ми робили це з інструкціями <connect> раніше.

Керування логікою графічного інтерфейсу за допомогою скриптів корисне зокрема тоді, коли ви хочете змінити доступні параметри відповідно до типу об’єкта, який вибрано користувачем. Із списком доступних функцій можна ознайомитися у довідковому розділі.

Зауважте, що підхід до керування графічним інтерфейсом за допомогою скриптів може бути поєднано із інструкціями <connect> і <convert>, якщо це потрібно. Крім того, зауважте, що теґ <script> надає змогу вказати назву файла скрипту на додачу або як альтернативу до вбудовування скриптового коду до файла інтерфейсу. Втім, типово, продемонстроване вище вбудовування коду є зручнішим.