XFA choice item scripting
Unidade: HPDFXFARuntime
Um campo com ui.choiceList expõe métodos de itens de escolhas durante a execução nativa de eventos JavaScript e FormCalc, incluindo instâncias repetidas de campos e aliases retidos por objetos de scripts
Métodos e propriedades
| Membro | Comportamento |
|---|---|
length | Número só de leitura de itens de exportação atuais |
selectedIndex | Primeiro índice selecionado com base zero, ou -1 quando nada está selecionado; atribuir qualquer inteiro negativo limpa a seleção, enquanto um valor não negativo fora do intervalo ou não inteiro lança uma exceção antes de a alterar |
getDisplayItem(index) | Texto de apresentação no índice, ou null quando o índice é inválido |
getSaveItem(index) | Texto de exportação no índice, ou null quando o índice é inválido |
boundItem(display) | Texto de exportação para o primeiro texto de apresentação exatamente correspondente, ou null quando nenhum texto de apresentação corresponde |
getItemState(index) | Se o item está selecionado; um índice inválido lança uma exceção |
setItemState(index, selected) | Atualiza a seleção do item; selecionar um item substitui a seleção anterior num campo de seleção única e preserva outros índices selecionados num campo de seleção múltipla |
addItem(display, bound) | Acrescenta um item sem alterar os itens selecionados existentes; omitir o segundo argumento usa uma string vazia de exportações |
deleteItem(index) | Elimina um item e desloca índices posteriores mantendo a identidade dos aliases de itens sobreviventes; devolve false para um índice inválido |
clearItems() | Remove itens atuais e limpa a seleção; uma lista de runtime explicitamente vazia permanece vazia após gravação e recarregamento |
setItems(text, columns) | Substitui os itens atuais a partir de colunas separadas por vírgulas e limpa a seleção; columns tem por defeito 1, uma linha de uma coluna fornece texto tanto de apresentação como de exportação, e uma linha mais comprida usa a primeira coluna dela como texto de apresentação e a última como texto de exportação; devolve false se a contagem de colunas é inválida ou não divide a contagem de campos de entrada |
Os índices são inteiros e nunca são coagidos a partir de strings; métodos de itens exigem as contagens documentadas de argumentos deles, com o segundo argumento opcional aceite por addItem e setItems
Valores de itens preservam Unicode, espaços iniciais e finais, exportações explicitamente vazias e quebras de linhas; carateres de controlo XML inválidos e surrogates UTF-16 emparelhados a incompleto são rejeitados antes da mutação de listas
Estado imediato e aliases
Itens novos são imediatamente visíveis através de métodos de itens e do Property DOM, e o alias de um item eliminado não pode redirecionar para um item sobrevivente que se mova para o índice eliminado
Substituir ou limpar a lista cria identidades de substituição distintas; aliases retidos de objetos de scripts para itens removidos falham em leituras e escritas posteriores, enquanto aliases sobreviventes continuam a endereçar o mesmo item através de execuções de eventos
Uma atribuição direta de rawValue, uma escrita vinculada ao Data DOM, um commit público de valores de widgets ou uma mutação escalar de exportações de itens invalida índices explícitos em cache, incluindo atribuições que preservem a mesma string bruta
Persistência e seleção exata
SaveToBytes escreve os itens reais de formulários por instância e os valores sincronizados deles; alterar uma instância repetida preserva outras instâncias e os âmbitos de dados delas
Exportações duplicadas e vazias podem ser selecionadas por índices exatos através da API de itens; o campo de formulários guardado regista os índices canónicos e o valor bruto correspondente em atributos opcionais no namespace urn:hotpdf:xfa:runtime
Itens standard XFA e nós de valores permanecem presentes independentemente destes atributos opcionais; escritas posteriores de valores invalidam os atributos, para que índices obsoletos não possam selecionar a exportação duplicada errada
O consumidor nativo de PDFs escreve pares correspondentes de /Opt de exportação/apresentação, índices exatos de /I e strings ou arrays de /V, e constrói aparências a partir das etiquetas de apresentação selecionadas
Transações e limites
Alterações de itens participam na transação existente de eventos e no journal de scripts; uma falha nativa de limites de valores, cancelamento de quem chama ou exceção de eventos não tratada restaura o XDP guardado, o estado lexical de scripts e os bindings antes de uma repetição posterior
Alocações de nós, colunas de entrada, valores UTF-8, payloads de operações XML, travessia nativa de propriedades e clonagem mantêm os orçamentos configurados de scripts e de runtimes e as verificações de cancelamento
Exemplo
var list = this.parent.choice;
list.clearItems();
list.addItem("Display A", "same");
list.addItem("Display B", "same");
list.selectedIndex = 1;
if (list.getDisplayItem(list.selectedIndex) !== "Display B")
throw new Error("Unexpected selected label");
Para variáveis FormCalc que retêm um campo em vez do valor escalar dele, use var list = Ref($.parent.choice) antes de chamar métodos de itens
O vocabulário de métodos e os argumentos de colunas seguem a Adobe Designer Scripting Reference; o runtime usa semântica de substituição para setItems, conforme descrito no suporte de scripting de formulários HTML5 da Adobe