DOM nativo de propriedades XFA

A execução geral com EnableJavaScript inclui filhos de propriedades de containers de formulários na tree viva de eventos, incluindo nós de value, valor tipado, font, fill, color, ui, border e edge

Containers nomeados usam o nome deles em paths SOM; nós de propriedades usam o nome da classe deles e preservam o atributo name real deles, que normalmente está vazio

Valores tipados e atributos

const field = xfa.resolveNode("main.row[1].cell");
field.value.text.value = "25";
field.font.size = "18pt";
field.font.fill.color.value = "0,128,255";
field.ui.textEdit.multiLine = "1";
field.resolveNode("border.edge[1]").thickness = "3pt";
field.font.setAttribute("saved", "custom");
const saved = field.font.getAttribute("custom");

row[1].cell.value.text.value = 25
row[1].cell.font.size = "18pt"

Um filho tipado sob o nó value de um campo compartilha o rawValue vivo do campo; leituras e escritas através de value.text.value, field.rawValue e do dataNode vinculado observam umas às outras imediatamente

Para nós de propriedades com atributo value, como color, a propriedade value lê e escreve aquele atributo; para nós de conteúdo escalar, ela lê e escreve o conteúdo de texto

Atributos presentes no binding efetivo de propriedades são expostos como propriedades diretas, exceto membros reservados de nós e do engine; getAttribute(name) lê um atributo arbitrário, e setAttribute(value, name) escreve um e expõe imediatamente um nome novo seguro

O FormCalc resolve paths de propriedades e atribui atributos escalares pela mesma tree de eventos; irmãos de propriedades suportam índices de ocorrências e selectors de classes

Persistência e rendering nativos

Escritas bem-sucedidas criam ou atualizam nós de propriedades sob a ocorrência correspondente do container no packet nativo de formulários; o template e as demais ocorrências repetidas retêm seus defaults

O lookup de propriedades segue a classe e a ocorrência local sob o container nomeado, em vez de pular nós sem nome; mudar o atributo name de uma propriedade preserva sua identidade, e o XDP salvo recarrega os overrides efetivos

Handles retidos de propriedades seguem as identidades publicadas dos donos deles através de inserção e movimentação de instâncias; escrever num handle depois que sua instância foi removida aborta e restaura a transação

Typeface e tamanho da fonte participam da medição e do reflow por instância de texto growable; o flatten lê os atributos efetivos de fontes, cores, bordas, parágrafos e UI suportadas para cada ocorrência de campo

Draws de rich text consomem overrides efetivos de fontes, parágrafos, CSS inline e conteúdo escalar para cada ocorrência, incluindo a medição e o placement de runs deles

A criação de instâncias retém todos os defaults de irmãos de propriedades, incluindo múltiplos nós de edges, e usa os valores de atributos do template, em vez dos overrides de outra ocorrência

Overrides de UI criam escolhas suportadas de widgets e mudam o kind real por instância do runtime e as flags nativas de campos após um evento bem-sucedido

Orçamentos e bindings de nível mais baixo

O traversal de propriedades compartilha os orçamentos de nós, profundidade, operações e bytes do evento; escritas nativas de texto e atributos obedecem MaxValueChars, e escritas com falha restauram valores nativos de campos, overrides de propriedades, estado de scripts e ordem de instâncias

Chamadores diretos usam xebdProperty e fornecem Attributes e DefaultAttributes; os últimos inicializam nós recém-clonados

Uma action de atributo de propriedades contém o nome do atributo, um separador NUL e o valor em TXFAEventAction.Value; TXFAWidgetRuntime valida e aplica ao alvo nativo de propriedades

Cobertura

A tree de eventos inclui os nós declarados de propriedades e os atributos efetivos deles, com defaults de schema para classes suportadas de formatação e widgets; a criação de propriedades ausentes agora materializa paths suportados de formatação no packet nativo de formulários

Declarações de event, calculate e validate permanecem metadados de execução; scripts variables permanecem objetos de script, e a edição geral de propriedades não ativa scripts de metadados

Classes adicionais de propriedades de schema, remoção e reparenting genéricos, mutação de atributos qualificados por namespace, consumers adicionais de propriedades de layout e mais features de edição de rich text ou widgets continuam como alvos separados

APIs relacionadas

Resolução SOM viva, Data DOM nativo, HPDFXFAResolveFormInstanceProperty e Runtime XFA interativo