Classe de campo
Classe abstrata para um campo editável.
Signature:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Implementa: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Construtores
Construtor | Modificadores | Descrição |
---|---|---|
(construtor)(valor, validador, configuração) | Cria uma nova instância da classe Field |
Propriedades
Propriedade | Modificadores | Tipo | Descrição |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | nulo | O elemento de borda SVG do campo renderizado. |
clickTarget_ | protected |
Elemento | nulo | O elemento ao qual o gerenciador de cliques está vinculado. |
constants_ | protected |
ConstantProvider | nulo | Constantes associadas ao renderizador do bloco de origem. |
CURSOR | string | Estilo do cursor do mouse sobre o ponto de acesso que inicia o editor. | |
DEFAULT_VALUE | P | nulo | Para substituir o valor padrão definido em **Field**, atualize diretamente o protótipo. Exemplo: |
|
EDITÁVEL | booleano | Os campos editáveis geralmente mostram algum tipo de interface indicando que são editáveis. Eles também serão salvos pelo serializador. | |
enabled_ | protected |
booleano | O valor do campo pode ser alterado usando o editor em um bloco editável? |
fieldGroup_ | protected |
SVGGElement | nulo | O elemento do grupo SVG do campo renderizado. |
isDirty_ | protected |
booleano | Esse bloco precisa ser renderizado novamente? |
maxDisplayLength | number | Máximo de caracteres de texto a serem exibidos antes da adição de reticências. | |
nome? | string | Nome do campo (opcional). Exclusivo em cada bloco. Os rótulos estáticos geralmente não têm nome. | |
NBSP |
|
(não declarado) | Espaço sem quebra. |
SERIALIZÁVEL | booleano | Os campos serializáveis são salvos pelo serializador, e os não serializáveis não. Os campos editáveis também precisam ser serializáveis. Por padrão, esse não é o caso, então SERIALIZABLE é compatível com versões anteriores. | |
size_ | protected |
Tamanho | |
SKIP_SETUP |
|
símbolo exclusivo | Um valor usado para sinalizar quando o construtor de um campo *não* deve definir o valor do campo ou executar configure_ e deve permitir que uma subclasse faça isso. |
sourceBlock_ | protected |
Bloquear | nulo | O bloqueio deste campo está anexado. Inicia como nulo e é definido no init. |
textContent_ | protected |
Texto | nulo | O elemento de conteúdo de texto do campo renderizado. |
textElement_ | protected |
SVGTextElement | nulo | O elemento de texto SVG do campo renderizado. |
validator_ | protected |
FieldValidator<T> | nulo | Função de validação chamada quando o usuário edita um campo editável. |
value_ | protected |
P | nulo | |
visible_ | protected |
booleano | O campo está visível ou oculto porque o bloco está sendo recolhido? |
Métodos
Método | Modificadores | Descrição |
---|---|---|
applyColour() | Atualiza o campo para corresponder à cor/estilo do bloco. Subclasses não abstratas podem querer implementar isso se a cor do campo depender da cor do bloco. Ele será chamado automaticamente nos momentos relevantes, como quando o bloco ou renderizador pai mudar. Consulte a documentação do campo para mais informações ou o FieldDropdown para ver um exemplo. |
|
bindEvents_() | protected |
Vincular eventos ao campo. Podem ser substituídas por subclasses se elas precisarem fazer processamento de entradas personalizadas. |
configure_(config) | protected |
Processe o mapa de configuração transmitido para o campo. |
createBorderRect_() | protected |
Cria um elemento de campo retângulo de borda. Não ser substituído por subclasses. Em vez disso, modifique o resultado da função dentro de initView ou crie uma função separada para chamar. |
createTextElement_() | protected |
Crie um elemento de texto de campo. Não ser substituído por subclasses. Em vez disso, modifique o resultado da função dentro de initView ou crie uma função separada para chamar. |
doClassValidation_(newValue) | protected |
Valide as alterações no valor de um campo antes de serem definidas. Consulte **FieldDropdown** para ver um exemplo de implementação de subclasse. **OBSERVAÇÃO:** a validação retorna uma opção entre |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue, _fireChangeEvent) (link em inglês) | protected |
Usado para notificar o campo de que um valor inválido foi inserido. Pode ser substituído por subclasses, consulte FieldTextInput. Ambiente autônomo por padrão. |
doValueUpdate_(newValue) | protected |
Usado para atualizar o valor de um campo. Pode ser substituído por subclasses para fazer armazenamento personalizado de valores/atualização de itens externos. |
fromJson(_options) | static |
As subclasses devem reimplementar esse método para construir sua subclasse Field a partir de um objeto arg JSON. É um erro tentar registrar uma subclasse de campo no FieldRegistry se essa subclasse não substitui esse método. |
getAbsoluteXY_() | protected |
Retorna as coordenadas absolutas do canto superior esquerdo desse campo. A origem (0,0) é o canto superior esquerdo do corpo da página. |
getBorderRect() | protected |
Recebe o elemento do retângulo da borda. |
getClickTarget_() | protected |
O elemento ao qual o gerenciador de cliques será vinculado. Se não for definido explicitamente, o padrão será a raiz SVG do campo. Quando esse elemento é clicado em um campo editável, o editor é aberto. |
getConstants() | Recebe o provedor de constante do renderizador. | |
getDisplayText_() | protected |
Receba o texto desse campo a ser exibido no bloco. Pode ser diferente de getText devido às reticências e outras formatações. |
getFlipRtl() | Retorna se o campo deve ou não ser alternado em RTL. | |
getSize() | Retorna a altura e a largura do campo. Em geral, esse deve ser o único local de onde a renderização_ é chamada. |
|
getSourceBlock() | Acessa o bloco ao qual este campo está anexado. | |
getSvgRoot() | Extrai o elemento do grupo deste campo editável. Usado para medir o tamanho e para posicionamento. | |
getText_() | protected |
Um gancho do desenvolvedor para substituir o texto retornado desse campo. Modifique se a representação de texto do valor desse campo não for apenas uma string convertida do valor. Retorne nulo para recorrer a uma transmissão de string. |
getText() | Receba o texto desse campo. Substitua getText_ para fornecer um comportamento diferente de simplesmente transmitir o valor para uma string. | |
getTextContent() | protected |
Extrai o conteúdo do texto. |
getTextElement() | protected |
Recupera o elemento de texto. |
getTooltip() | Retorna o texto da dica para este campo. | |
getValidator() | Recebe a função de validação para campos editáveis ou retorna nulo se não estiver definido. | |
getValue() | Extrai o valor atual do campo. | |
initModel() | Inicializa o modelo do campo após ele ter sido instalado em um bloco. Ambiente autônomo por padrão. | |
initView() | protected |
Crie a interface de bloco para esse campo. |
isClickable() | Verifique se esse campo define a função showEditor_. | |
isClickableInFlyout(autoClosingFlyout) | Verifique se o campo deve ser clicável enquanto o bloco está em um menu suspenso. O padrão é que os campos sejam clicáveis em menus suspensos sempre abertos, como a caixa de ferramentas simples, mas não nos menus suspensos com fechamento automático, como na caixa de ferramentas de categoria. As subclasses podem substituir essa função para alterar esse comportamento. Observe que isClickable também precisa retornar "true" para que isso tenha efeito. |
|
isCurrentlyEditable() | Verifique se esse campo pode ser editado no momento. Alguns campos nunca são EDITÁVEIS (por exemplo, rótulos de texto). Outros campos podem ser EDITÁVEIS, mas podem existir em blocos não editáveis ou estar desativados no momento. | |
isEnabled() | Verifique se o valor desse campo pode ser alterado usando o editor quando o bloco de origem for editável. | |
isFullBlockField() | protected |
Define se este campo deve ocupar todo o bloco ou não. Tenha cuidado ao substituir essa função. Pode não funcionar como esperado / esperado, porque o comportamento foi invadido. Se você estiver pensando em substituir essa função, poste no fórum com o comportamento pretendido para ver se há outra abordagem. |
isSerializable() | Verifique se esse campo precisa ser serializado pelo renderizador XML. Lida com a lógica de compatibilidade com versões anteriores e estados incongruentes. | |
isTabNavigable() | Retorna indicando se o campo pode ou não ser navegável por guia. | |
isVisible() | Identifica se este campo editável está visível ou não. | |
loadLegacyState(callingClass, state) | Carrega o estado especificado usando os hooks XML antigos, se eles precisarem ser usados. Retorna "true" para indicar que o carregamento foi realizado. Caso contrário, retorna "false". | |
onLocationChange(_) | Notifica o campo sobre a mudança de local. | |
onMouseDown_(e) | protected |
Processa um evento de ponteirodown em um campo. |
onShortcut(_shortcut) | Processa o atalho de teclado fornecido. | |
positionBorderRect_() | protected |
Posicionar o retângulo de borda de um campo após uma mudança de tamanho. |
positionTextElement_(xoffset, contentWidth) (link em inglês) | protected |
Posicionar o elemento de texto de um campo após uma mudança de tamanho. Isso lida com o posicionamento LTR e RTL. |
render_() | protected |
Usado por getSize() para mover/redimensionar quaisquer elementos DOM e obter o novo tamanho. Toda renderização que tem efeito no tamanho/forma do bloco deve ser feita aqui e deve ser acionada por getSize(). |
repositionForWindowResize() | Um hook de desenvolvedor para reposicionar o WidgetDiv durante o redimensionamento de uma janela. Você precisa definir esse gancho se o campo tiver um WidgetDiv que precise se reposicionar quando a janela for redimensionada. Por exemplo, os campos de entrada de texto definem esse hook para que o WidgetDiv de entrada possa se reposicionar em um evento de redimensionamento de janela. Isso é especialmente importante quando entradas modais são desativadas, já que dispositivos Android disparam um evento de redimensionamento de janela quando o teclado de software é aberto. Se quiser que o WidgetDiv se oculte em vez de se reposicionar, retorne "false". Esse é o comportamento padrão. Os DropdownDivs já gerenciam a própria lógica de posicionamento, então você não precisa modificar essa função se o campo tiver apenas um DropdownDiv. |
|
saveLegacyState(callingClass) | protected |
Retorna uma versão em string do estado XML, se necessário. Caso contrário, retornará nulo para sinalizar que o campo precisa usar a própria serialização. |
setEnabled(enabled) | Defina se o valor desse campo pode ser alterado usando o editor quando o bloco de origem for editável. | |
setSourceBlock(block) | Anexe esse campo a um bloco. | |
setTooltip(newTip) | Define a dica para este campo. | |
setValidator(handler) | Define uma nova função de validação para campos editáveis ou limpa um validador definido anteriormente. A função de validação recebe o novo valor do campo e retorna um valor validado. O valor validado pode ser o valor de entrada, uma versão modificada dele ou nulo para cancelar a alteração. Se a função não retornar nada (ou retornar indefinido), o novo valor será aceito como válido. Isso permite campos que usam a função validada como uma notificação de evento de alteração no nível do campo. |
|
setValue(newValue, fireChangeEvent) | Usado para alterar o valor do campo. Lida com a validação e os eventos. As subclasses devem substituir doClassValidation_ e doValueUpdate_ em vez deste método. | |
showEditor_(_e) | protected |
Um hook de desenvolvedor para criar um editor para o campo. Por padrão, ele é um ambiente autônomo e precisa ser substituído para criar um editor. |
updateEditable() | Adicione ou remova a interface indicando se esse campo é editável ou não. | |
updateSize_(margin) | protected |
Atualiza o tamanho do campo com base no texto. |