Хоча з’єднання властивостей, описаного вище, часто достатньо, іноді гнучкішим і зручнішим способом керування логікою графічного інтерфейсу є використання скриптів 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> надає змогу вказати назву файла скрипту на додачу або як альтернативу до вбудовування скриптового коду до файла інтерфейсу. Втім, типово, продемонстроване вище вбудовування коду є зручнішим.