Module
Contents
Index 🔎︎

# HTML-filtrid ja vormid

Saad HTML-dokumentides kasutada kõiki juhtelemente ja vormisündmusi. Praeguseks on olnud mitu sündmust (nt fookuse sündmust), mida pole muudetud. Nende importi ja eksporti jätkatakse JavaScripti jaoks kujul ONFOCUS, ONBLUR jne ja LibreOffice BASIC-u jaoks kujul SDONFOCUS, SDONBLUR jne.

Kõigi muude sündmuste jaoks kasutatakse üldiseid nimesid, mis koosnevad kuulaja liidesest ja sündmuse meetodi nime: XListener::method kujul registreeritud sündmus eksporditakse vormingus:

SDEvent-XListener-method = "/* event-code */"

Arvesta, et XListener- ja selle sätte meetodikomponendid on tõstutundlikud.

Juhtelementide sündmuste käsitlemist teostatakse LibreOffice-i API abil. Kui määrad juhtelemendile sündmuse, registreerib objekt enda sisemiselt teatud juhtelemendi sündmuse jaoks "kuulajana". Selleks peab objekt kasutama teatud liidest (nt liidest XFocusListener), et objekt saaks reageerida fookuse sündmustele. Sündmuse esinemisel käivitab juhtelement liidese Kuulaja erimeetodi, kui juhtelement saab fookuse. Seejärel käivitab sisemiselt registreeritud objekt JavaScripti või LibreOffice-i BASIC-koodi, mis on sündmusele määratud.

HTML-filter kasutab nüüd täpselt neid kuulaja liideseid ja meetodinimesid, et filter saaks soovitud sündmusi importida ja eksportida. Fookuse sündmuse registreerimiseks:

<INPUT TYPE=text ONFOCUS="/* code */"

mitte kujul

<INPUT TYPE=text SDEvent-XFocusListener-focusGained="/* code */"

Seetõttu saab sündmusi soovitud viisil registreerida, kaasa arvatud neid, mis pole loendiboksides pakutud. Sündmuste skriptikeele määramiseks saad kirjutada dokumendipäisesse järgmise rea:

<META HTTP-EQUIV="content-script-type" CONTENT="...">

Väärtuse CONTENT jaoks saad näiteks kasutada LibreOffice BASIC-u korral stringi "text/x-StarBasic" või JavaScripti korral stringi "text/JavaScript". Kui kirjet ei lisata, eeldatakse JavaScripti kasutamist.

Eksportimisel määratakse skripti vaikekeel makrohalduses esimesena leitud mooduli alusel. Sündmuste jaoks saab dokumendi kohta kasutada vaid ühte keelt.