XFA Host Model
فعّل TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript لاستخدام نموذج xfa.host الحي عبر محرك QuickJS المرفق
هيّئ ميتاداتا التطبيق عبر TXFAWidgetRuntimeOptions.HostModel قبل إنشاء بيئة التشغيل، واقرأ الحالة الحالية عبر TXFAWidgetRuntime.HostModel
الخصائص
| الخاصية | السلوك |
|---|---|
name, version, appType, platform, variation, language | ميتاداتا تطبيق للقراءة فقط يزوّدها التطبيق المُدمج |
numPages | عدد صفحات التخطيط الفعلي للقراءة فقط، بما يشمل المحتوى الموجَّه وراء widgets الحقول |
currentPage | الصفحة الحالية بأساس صفري، تُفحص مقابل numPages؛ وتوجيه التركيز إلى حقل ينتقي صفحته |
title | عنوان runtime بـ Unicode، محدودًا بـ MaxValueChars ومنشورًا مع المعاملة |
calculationsEnabled | تتحكم في سكربتات الحساب التلقائية؛ والافتراضي true |
validationsEnabled | تتحكم في سكربتات التحقق للقيم المعدَّلة؛ والافتراضي true |
إصدار التطبيق يحدد التطبيق المُدمج؛ والمكتبة لا تستبدل رقم إصدارها
حالة الـ host تخص بيئة التشغيل؛ وتغييرات العنوان والصفحة لا تعدّل الرسم البياني لكائنات PDF الأصلي ولا تُرمَّز في بيانات XDP المحفوظة
التنقل والتركيز وإعادة تعيين البيانات
| الأسلوب | السلوك |
|---|---|
pageUp(), pageDown() | تنقل داخل حدود الصفحات وتتوقف عند الصفحة الأولى أو الأخيرة |
getFocus() | تعيد نسخة الحقل المركّز الحية أو null عندما يكون التركيز غائبًا أو منزوعًا أو مخفيًا |
setFocus(fieldOrSOM) | تطلب التركيز على نسخة حقل حية مرئية؛ وnull أو النص الفارغ يمسح التركيز |
resetData(paths="") | تستعيد قيم القالب الافتراضية للحقول المنتقاة بقائمة SOM مفصولة بفواصل، أو كل الحقول عندما تكون paths فارغة؛ وتُحفظ أعداد النسخ المتكررة والنسخ غير المرتبطة |
الحقول المستعادة تترك وضع التحرير وتستعيد حالة تفاعل صالحة، مانعين مخزن تحرير متقادمًا من الكتابة فوق القيمة المستعادة
إعادة التعيين وloadXML لـ Data DOM قد تعملان في الحدث نفسه؛ وتغييراتهما تتشارك معاملة الحدث، والسكربت الفاشل أو الميزانية المستنفدة تستعيد قيم البيانات و مخازن التحرير وحالة الـ host والحالة المعجمية لكائنات السكربت قبل إعادة المحاولة
هويات الحقول تتبع نسخة بياناتها عندما يعيد مدير نسخ ترتيب subforms متكررة، واستعادة snapshot تحفظ تلك الهويات المنطقية
دورة حياة التركيز والمعاملات
تغييرات التركيز في runtime تُرسل وتتحقق من تعديل مصدر معلّق وتنفّذ سكربتات خروج المصدر وتنتقي الحقل الجديد وتنفّذ سكربتات دخول الهدف قبل استقرار الحساب والتخطيط
طلبات التركيز من سكربتات الدخول أو الخروج يمكنها إعادة توجيه الهدف؛ وكل تفريغ تركيز يسمح 64 انتقالًا ويتشارك ميزانيتي عمليات السكربت والوقت المنقضي
السكربتات ترى النشاط عبر xfa.event.name؛ والحسابات والتحقق يتلقيان أسماء سياقهما المقابلة
FocusWidget العامة واستدعاءات DispatchEvent للدخول/الخروج تستخدمان دورة الحياة transactional نفسها؛ وClearFocus تُلغي مخزن التحرير الحالي قبل دورة الخروج محفظةً سلوك الإلغاء السابق لديها
OnFocusChanged تنشر callbacks مرتبة بعد الإرسال؛ وإعادة التوجيهات الوسيطة تبقى داخل المعاملة، والسكربتات أو التحقق أو الميزانيات الفاشلة تستعيد حالة الـ host والتركيز و مخازن التحرير وقيم المستند والحالة المعجمية للسكربت معًا
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;
آثار التطبيق والتغطية المتبقية
النوافذ الحوارية والطباعة والتنقل الخارجي والاستيراد/التصدير وآثار HTTP تستخدم نقل host التطبيق الصريح والاستجابات المسجَّلة؛ ونموذج الحالة نفسه لا يطلق أي عملية UI أو شبكة
واجهات host حوارية إضافية وكل خاصية host في Acrobat واستعلامات reflow تزامنية ديناميكية ومعاملات SOM كاملة تبقى أهداف تكامل منفصلة
واجهات مرتبطة: TXFAHostModelState, PXFAHostModelState, HPDFXFAHostModelJavaScript وبيئة تشغيل widgets XFA التفاعلية