Classe campo
Classe astratta per un campo modificabile.
Firma:
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Implementa: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Costruttori
Costruttore | Modificatori | Descrizione |
---|---|---|
(costruttore)(valore, convalidatore, configurazione) | Crea una nuova istanza della classe Field |
Proprietà
Proprietà | Modificatori | Tipo | Descrizione |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | null | L'elemento bordo SVG del campo visualizzato. |
clickTarget_ | protected |
Elemento | null | L'elemento a cui è associato il gestore dei clic. |
constants_ | protected |
ConstantProvider | null | Costanti associate al renderer del blocco di origine. |
CURSORE | stringa | Stile del cursore del mouse quando si trova sopra l'hotspot che avvia l'editor. | |
DEFAULT_VALUE | T | null | Per sovrascrivere il valore predefinito impostato in **Campo**, aggiorna direttamente il prototipo. Esempio: |
|
MODIFICABILE | booleano | I campi modificabili di solito mostrano una qualche forma di interfaccia utente che indica che sono modificabili. Verranno salvati anche dal serializzatore. | |
enabled_ | protected |
booleano | Il valore del campo può essere modificato utilizzando l'editor in un blocco modificabile? |
fieldGroup_ | protected |
SVGGElement | null | L'elemento del gruppo SVG del campo visualizzato. |
isDirty_ | protected |
booleano | È necessario eseguire nuovamente il rendering di questo blocco? |
maxDisplayLength | numero | Numero massimo di caratteri di testo da visualizzare prima di aggiungere i puntini di sospensione. | |
nome? | stringa | (Facoltativo) Nome del campo. È univoco all'interno di ogni blocco. Le etichette statiche di solito sono senza nome. | |
NBSP |
|
(non dichiarato) | Spazio unificatore. |
SERIALIZZABILE | booleano | I campi serializzabili vengono salvati dal serializzatore, mentre quelli non serializzabili no. Anche i campi modificabili devono essere serializzabili. Questo non avviene per impostazione predefinita, perciò SERIALIZABLE è compatibile con le versioni precedenti. | |
size_ | protected |
Dimensioni | |
SKIP_SETUP |
|
simbolo univoco | Un valore utilizzato per segnalare quando il costruttore di un campo *non* deve impostare il valore del campo o eseguire configure_ e dovrebbe consentire a una sottoclasse di farlo. |
sourceBlock_ | protected |
Blocca | null | Blocca a cui è associato questo campo. Inizia come null, poi impostato in init. |
textContent_ | protected |
Testo | null | L'elemento di contenuto testuale del campo visualizzato. |
textElement_ | protected |
SVGTextElement | null | L'elemento di testo SVG del campo visualizzato. |
validator_ | protected |
FieldValidator<T> | null | Funzione di convalida chiamata quando un utente modifica un campo modificabile. |
value_ | protected |
T | null | |
visible_ | protected |
booleano | Il campo è visibile o nascosto a causa della compressione del blocco? |
Metodi
Metodo | Modificatori | Descrizione |
---|---|---|
applyColour() | Aggiorna il campo in modo che corrisponda al colore e allo stile del blocco. Le sottoclassi non astratte possono implementare questa funzione se il colore del campo dipende dal colore del blocco. Verrà richiamata automaticamente nei momenti pertinenti, ad esempio quando cambia il blocco principale o il renderer. Consulta la documentazione sul campo per ulteriori informazioni o FieldDropdown per un esempio. |
|
bindEvents_() | protected |
Associa gli eventi al campo. Possono essere sostituite dalle sottoclassi se devono eseguire una gestione personalizzata dell'input. |
configure_(config) | protected |
Elabora la mappa di configurazione passata al campo. |
createBorderRect_() | protected |
Crea un elemento rettangolo per il bordo del campo. Da non sostituire con le sottoclassi. Modifica il risultato della funzione all'interno di initView oppure crea una funzione separata da chiamare. |
createTextElement_() | protected |
Crea un elemento di testo del campo. Da non sostituire con le sottoclassi. Modifica il risultato della funzione all'interno di initView oppure crea una funzione separata da chiamare. |
doClassValidation_(newValue) | protected |
Convalida le modifiche apportate al valore di un campo prima di impostarle. Consulta **FieldDropdown** per un esempio di implementazione di una sottoclasse. **NOTA:** la convalida restituisce un'opzione tra |
doClassValidation_(newValue) | protected |
|
doValueinvalid_(_invalidValue, _fireChangeEvent) | protected |
Utilizzato per notificare al campo che è stato inserito un valore non valido. Può essere sostituito dalle sottoclassi, vedi FieldTextInput. No-op per impostazione predefinita. |
doValueUpdate_(newValue) | protected |
Utilizzato per aggiornare il valore di un campo. Può essere sostituito dalle sottoclassi per eseguire l'archiviazione personalizzata dei valori o l'aggiornamento di elementi esterni. |
fromJson(_options) | static |
Le sottoclassi devono implementare nuovamente questo metodo per creare la loro sottoclasse Field da un oggetto arg JSON. Tentare di registrare una sottoclasse di campo in FieldRegistry è un errore se tale sottoclasse non ha eseguito l'override di questo metodo. |
getAbsoluteXY_() | protected |
Restituisce le coordinate assolute dell'angolo in alto a sinistra di questo campo. L'origine (0,0) è l'angolo in alto a sinistra del corpo della pagina. |
getBorderRect() | protected |
Restituisce l'elemento rettangolo del bordo. |
getClickTarget_() | protected |
L'elemento a cui associare il gestore dei clic. Se non viene configurato in modo esplicito, il valore predefinito sarà la radice SVG del campo. Quando l'utente fa clic su questo elemento in un campo modificabile, si apre l'editor. |
getConstants() | Recupera il provider della costante di renderer. | |
getDisplayText_() | protected |
Fai in modo che il testo di questo campo venga visualizzato nel blocco. Può variare da getText a causa dei puntini di sospensione e di un'altra formattazione. |
getFlipRtl() | Restituisce se dobbiamo invertire il campo in RTL. | |
getSize() | Restituisce l'altezza e la larghezza del campo. *In generale* dovrebbe essere l'unica posizione da cui viene chiamato il rendering_. |
|
getSourceBlock() | Ottieni il blocco a cui è associato questo campo. | |
getSvgRoot() | Ottiene l'elemento del gruppo per questo campo modificabile. Utilizzato per misurare le dimensioni e per il posizionamento. | |
getText_() | protected |
Un hook sviluppatore per eseguire l'override del testo restituito di questo campo. Esegui l'override se la rappresentazione testuale del valore di questo campo non è solo una stringa del suo valore. Restituisce un valore nullo per ricorrere a una stringa di trasmissione. |
getText() | Recupera il testo da questo campo. Esegui l'override di getText_ per fornire un comportamento diverso rispetto alla semplice trasmissione del valore in una stringa. | |
getTextContent() | protected |
Recupera i contenuti testuali. |
getTextElement() | protected |
Ottiene l'elemento di testo. |
getTooltip() | Restituisce il testo della descrizione comando per questo campo. | |
getValidator() | Ottiene la funzione di convalida per i campi modificabili o null se non è impostata. | |
getValue() | Recupera il valore corrente del campo. | |
initModel() | Inizializza il modello del campo dopo che è stato installato in un blocco. No-op per impostazione predefinita. | |
initView() | protected |
Crea l'interfaccia utente di blocco per questo campo. |
isClickable() | Controlla se questo campo definisce la funzione showEditor_. | |
isClickableInFlyout(autoClosingFlyout) | Controlla se il campo deve essere selezionabile quando il blocco si trova in un riquadro a scomparsa. Per impostazione predefinita, è possibile fare clic sui campi nei riquadri a scomparsa sempre aperti, come la casella degli strumenti semplice, ma non in quelli con chiusura automatica come quelli delle categorie. Le sottoclassi possono sostituire questa funzione per modificare questo comportamento. Tieni presente che anche isClickable deve restituire true per avere effetto. |
|
isCurrentlyEditable() | Verifica se questo campo è attualmente modificabile. Alcuni campi non sono mai MODIFICABILI (ad es. le etichette di testo). Altri campi possono essere MODIFICABILI, ma potrebbero esistere in blocchi non modificabili o essere attualmente disabilitati. | |
isEnabled() | Verifica se il valore di questo campo può essere modificato utilizzando l'editor quando il blocco di origine è modificabile. | |
isFullBlockField() | protected |
Definisce se questo campo deve occupare o meno l'intero blocco. Fai attenzione quando esegui l'override di questa funzione. Potrebbe non funzionare come previsto / desiderato perché il comportamento è stato compromesso. Se stai pensando di eseguire l'override di questa funzione, pubblica un post sul forum indicando il comportamento previsto per vedere se esiste un altro approccio. |
isSerializable() | Controlla se questo campo deve essere serializzato dal renderer XML. Gestisce la logica per la compatibilità con le versioni precedenti e stati incongruenti. | |
isTabNavigable() | Indica se il campo è navigabile o meno tramite schede. | |
isVisible() | Riconosce se il campo modificabile è visibile o meno. | |
loadLegacyState(callingClass, state) | Carica lo stato specificato utilizzando i vecchi hook XML, se devono essere utilizzati. Restituisce true per indicare che il caricamento è stato gestito, false in caso contrario. | |
onLocationChange(_) | Informa il campo che ha cambiato le posizioni. | |
onMouseDown_(e) | protected |
Gestire un evento cursordown in un campo. |
onShortcut(_shortcut) | Consente di gestire la scorciatoia da tastiera specificata. | |
positionBorderRect_() | protected |
Posiziona il rettangolo del bordo di un campo dopo una modifica delle dimensioni. |
positionTextElement_(xOffset, contentwidth) | protected |
Posiziona l'elemento di testo di un campo dopo una modifica delle dimensioni. Consente di gestire il posizionamento sia LTR che RTL. |
render_() | protected |
Utilizzato da getSize() per spostare/ridimensionare eventuali elementi DOM e ottenere la nuova dimensione. Tutto il rendering che ha un effetto sulla dimensione o sulla forma del blocco deve essere eseguito qui e deve essere attivato da getSize(). |
repositionForWindowResize() | Un hook sviluppatore per riposizionare WidgetDiv durante il ridimensionamento di una finestra. Devi definire questo hook se il campo ha un WidgetDiv che deve riposizionarsi automaticamente quando la finestra viene ridimensionata. Ad esempio, i campi di input di testo definiscono questo hook in modo che il WidgetDiv di input possa riposizionarsi in un evento di ridimensionamento di una finestra. Questo è particolarmente importante se gli input modali sono stati disattivati, in quanto i dispositivi Android attivano un evento di ridimensionamento della finestra all'apertura della tastiera software. Se desideri che WidgetDiv nasconda se stesso invece di riposizionarlo, restituisce false. Questo è il comportamento predefinito. I DropdownDiv gestiscono già la propria logica di posizionamento, quindi non è necessario sostituire questa funzione se il campo ha solo un DropdownDiv. |
|
saveLegacyState(callingClass) | protected |
Restituisce una versione stringata dello stato XML, se deve essere utilizzata. In caso contrario, viene restituito un valore nullo per indicare che il campo deve utilizzare la propria serializzazione. |
setEnabled(enabled) | Imposta se il valore di questo campo può essere modificato utilizzando l'editor quando il blocco di origine è modificabile. | |
setSourceBlock(block) | Allega questo campo a un blocco. | |
setTooltip(newTip) | Imposta la descrizione comando per questo campo. | |
setValidator(handler) | Imposta una nuova funzione di convalida per i campi modificabili o cancella uno strumento di convalida impostato in precedenza. La funzione di convalida inserisce il nuovo valore del campo e restituisce un valore convalidato. Il valore convalidato potrebbe essere il valore di input, una versione modificata del valore di input o nullo per annullare la modifica. Se la funzione non restituisce nulla (o restituisce un valore indefinito), il nuovo valore viene accettato come valido. Ciò consente ai campi che utilizzano la funzione convalidata come notifica di un evento di modifica a livello di campo. |
|
setValue(newValue, fireChangeEvent) | Utilizzato per modificare il valore del campo. Gestisce la convalida e gli eventi. Le sottoclassi devono sostituire doClassValidation_ e doValueUpdate_ anziché questo metodo. | |
showEditor_(_e) | protected |
Un hook dello sviluppatore per creare un editor per il campo. Per impostazione predefinita, questa è una modalità autonoma e deve essere ignorata per creare un editor. |
updateEditable() | Aggiungi o rimuovi l'interfaccia utente che indica se il campo è modificabile o meno. | |
updateSize_(margin) | protected |
Consente di aggiornare la dimensione del campo in base al testo. |