XFA Host Model
Zapněte TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript, chcete-li používat stavový model xfa.host přes dodávaný engine QuickJS
Aplikační metadata nakonfigurujte přes TXFAWidgetRuntimeOptions.HostModel, dřív než vytvoříte runtime, a aktuální stav čtěte přes TXFAWidgetRuntime.HostModel
Vlastnosti
| Vlastnost | Chování |
|---|---|
name, version, appType, platform, variation, language | Read-only aplikační metadata dodaná vkládající aplikací |
numPages | Read-only skutečný počet layout stránek, tedy i pozicovaného obsahu mimo widgety polí |
currentPage | Zero-based aktuální stránka, kontrolovaná proti numPages; zaměření pole vybere jeho stránku |
title | Unicode runtime titulek, omezený MaxValueChars a publikovaný s transakcí |
calculationsEnabled | Řídí automatické výpočetní skripty; default je true |
validationsEnabled | Řídí validační skripty pro editované hodnoty; default je true |
Verze aplikace identifikuje vkládající aplikaci; knihovna nesubstituuje číslo vlastního releasu
Stav hostitele patří runtime; změny titulku i stránek nemění původní objektový graf PDF a do ukládaných XDP dat se nekódují
Navigace, fokus a reset dat
| Metoda | Chování |
|---|---|
pageUp(), pageDown() | Pohybují v mezích stránek a zastaví se na první či poslední stránce |
getFocus() | Vrací živý zaměřený výskyt pole, či null, když fokus chybí, byl odebrán či utajen |
setFocus(fieldOrSOM) | Vyžádá fokus na viditelném živém výskytu pole; null či prázdný text fokus vymaže |
resetData(paths="") | Obnoví šablonové defaultní hodnoty polí vybraných čárkou odděleným SOM seznamem, či všech polí, když je paths prázdné; počty opakovaných instancí i nesouvisející výskyty se zachovají |
Resetovaná pole opustí editační režim a získají zpět platný interakční stav, takže zastaralý editační buffer nepřepíše resetovanou hodnotu
Reset i Data DOM loadXML mohou běžet ve téže události; jejich změny sdílejí transakci události a neúspěšný skript či vyčerpaný rozpočet obnoví datové hodnoty, editační buffery, stav hostitele i lexický stav skriptových objektů, dřív než retry
Identity polí sledují svůj datový výskyt, když instance manager přeřadí opakované subformy, a obnovení snapshotu zachová ty logické identity
Životnost fokusu a transakce
Změny fokusu runtime zapíší a validují čekající editaci zdroje, provedou exit skripty zdroje, vyberou nové pole a provedou enter skripty cíle, dřív než se usadí výpočet i layout
Žádosti o fokus z enter či exit skriptů mohou cíl přesměrovat; každý odtok fokusu dovolí 64 přechodů a sdílí rozpočty skriptových operací i uplynulého času
Skripty aktivitu vidí přes xfa.event.name; výpočty i validace dostanou své odpovídající kontextové názvy
Veřejná volání FocusWidget i enter/exit DispatchEvent použijí tutéž transakční životnost; ClearFocus zruší svůj aktuální editační buffer, dřív než exit životnost, se zachováním svého předchozího chování zrušení
OnFocusChanged publikuje uspořádané callbacky po zapsání; mezilehlá přesměrování zůstávají uvnitř transakce a neúspěšné skripty, validace či rozpočty obnoví stav hostitele, fokus, editační buffery, hodnoty dokumentu i lexický stav skriptů společně
Options := TXFAWidgetRuntimeOptions.Default;
Options.ScriptOptions.EnableJavaScript := True;
Options.HostModel.Name := 'Application';
Options.HostModel.Version := '1.0';
Options.HostModel.Language := 'en-US';
Runtime := TXFAWidgetRuntime.Create(XDPBytes, 595, 842, Options);
xfa.host.title = "Order form";
xfa.host.setFocus("rows[1].quantity");
xfa.host.resetData("rows[1].quantity,rows[1].price");
xfa.host.calculationsEnabled = false;
Aplikační efekty a zbývající pokrytí
Dialogy, tisk, externí navigace, import/export i HTTP efekty používají explicitní aplikační host transport a zaznamenané odpovědi; samotný stavový model nespustí žádnou UI či síťovou operaci
Dodatečná dialogová API hostitele, každá vlastnost hostitele Acrobatu, dynamické synchronní reflow dotazy i kompletní SOM operátory zůstávají samostatnými integračními cíli
Související API: TXFAHostModelState, PXFAHostModelState, HPDFXFAHostModelJavaScript a Interactive XFA Widget Runtime