Вбудовування або визначення незавершених додатків

Деякі додатки — фактично, додаток plot_options, використаний як приклад вище, є одним з них — не є самодостатніми. У них просто немає елементів графічного інтерфейсу для вибору деяких важливих значень. Їх призначено лише для вбудовування до інших додатків.

Наскільки незавершеним є додаток plot_options? Гаразд, для визначення своєї поведінки йому потрібні назви об’єктів або вирази для осей x і y (насправді, для його роботи достатньо одного з цих об’єктів чи виразів, але хоч один має бути задано, щоб додаток зміг працювати). Втім, у нього немає механізму для вибору цих об’єктів або введення їх у якийсь інший спосіб. То як же він дізнається про ці об’єкти?

У розділі логіки роботи додатка plot_options є ще два рядки, які ми ще не обговорили:

<logic>
                <external id="xvar" />
                <external id="yvar" />

                [...]
        </logic>
        

Це визначає дві додаткові властивості у додатку plot_options. Єдиною їхньою метою є з’єднування з певними (ще невідомими) властивостями додатка, до якого відбувається вбудовування. У додатку plot_options ці дві властивості просто використовуються як будь-які інші, наприклад, у шаблоні JS plot_options є виклики getString("xvar").

Далі, для незавершеного додатка не можна наперед дізнатися, до якого додатка відбуватиметься вбудовування і які параметри викликатиме основний додаток. Отже, нам доведеться додати два рядки у розділ logic додатка, до якого ми вбудовуємо інший додаток:

<logic>
                [...]

                <connect client="plotoptions.xvar" governor="xvarslot.available" />
                <connect client="plotoptions.yvar" governor="yvarslot.available" />
        </logic>
        

Нічого принципово нового, ми вже розбирали інструкції <connect> у розділі щодо логіки графічного інтерфейсу. Ми просто з’єднали значення у двох varlot-ах (які у нашому прикладі називаються "xvarslot" і "yvarslot") із зовнішніми властивостями вбудованого додатка. Ось і усе. Усі інші дії буде виконано автоматично.