Описание событий в ApplicationXML

ApplicationXML поддерживает события, в число которых входят, в каждом объекте по своему (см документацию на объекты), события, типа, onClick, onAction, onConnected, onDisconnected, onMouseOver и т.д. Для каждого события appxml-программист может написать собственный код либо на Java, либо с использованием функций и выражений ApplicationXML. Код пишется либо внутри соответствующего атрибута, либо внутри вложенного тэга с аналогичным именем. Имена событийных атрибутов или тэгов всегда начинаются на префикс «on».

Пример:

Вариант а. 

<label text="Hello, world!" onClick="println(this.text)" />

Вариант б. 

<label text="Hello, world!">
    <onClick>
        println(this.text);
    </onClick>
</label> 

Если код пишется на Java, то он должен быть оформлен во внешнем файле, скомпилирован и подключен в соответствии с синтаксисом и правилами Java. Имя вызываемого метода указывается внутри соответствущего атрибута соответствущего объекта с использованием префикса «java:». Если метод подразумевает получение параметров, то они указываются обычным способом.

:!: Внимание! В Java-коде метод всегда принимает, как минимум, один параметр типа Object - ссылку на объект, внутри которого возникло событие. Т.о. если метод имеет прикладные параметры, то в реализации их должно быть всегда больше на один.

Пример:

<!-- ApplicationXML -->
<label text="Hello, world!" onClick="java:my_method" />	     <!-- Можно без скобок -->
<label text="Hello, world!" onClick="java:my_method()" />	<!-- Можно со скобками -->
<label text="Hello, world!" onClick="java:my_method(1, 'string', true)" />	<!-- Можно с параметрами: число, строка, буль -->

<!-- Java -->
// для первого и второго случаев выше
public void my_method(Object obj) { ...; return; }

// для третьего случая выше
public void my_method(Object obj, int p1, String p2, boolean p3) { ...; return; }

Если код пишется на ApplicationXML, то он должен записываться внутри соответствующего атрибута или тэга.

Пример:

<label text="Hello, world!">
    <onClick>
        println(this.text);
    </onClick>
</label>
 
intro/event_desc.txt · Последние изменения: 29/10/2020 16:32 (внешнее изменение)
 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS