Classe Field
Classe abstraite pour un champ modifiable.
Signature :
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Implémentations:IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Constructeurs
Constructeur | Modificateurs | Description |
---|---|---|
(constructor)(valeur, validateur, configuration) | Construit une nouvelle instance de la classe Field . |
Propriétés
Propriété | Modificateurs | Type | Description |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | nul | Élément de bordure SVG du champ affiché. |
clickTarget_ | protected |
Élément | nul | Élément auquel le gestionnaire de clics est lié. |
constants_ | protected |
ConstantProvider | nul | Constantes associées au moteur de rendu du bloc source. |
CURSEUR | chaîne | Style du curseur de la souris lorsqu'il est placé sur la zone cliquable qui lance l'éditeur | |
DEFAULT_VALUE | J | nul | Pour écraser la valeur par défaut qui est définie dans **Champ**, mettez directement à jour le prototype. Exemple : |
|
MODIFIABLE | booléen | Les champs modifiables affichent généralement une sorte d'interface utilisateur indiquant qu'ils sont modifiables. Elles seront également enregistrées par le sérialiseur. | |
enabled_ | protected |
booléen | La valeur du champ peut-elle être modifiée à l'aide de l'éditeur sur un bloc modifiable ? |
fieldGroup_ | protected |
SVGGElement | nul | Élément de groupe SVG du champ affiché. |
isDirty_ | protected |
booléen | Ce bloc doit-il être affiché de nouveau ? |
maxDisplayLength | Nombre | Nombre maximal de caractères de texte à afficher avant d'ajouter des points de suspension. | |
du produit ? | chaîne | (Facultatif) Nom du champ. Unique dans chaque bloc. Les étiquettes statiques n'ont généralement pas de nom. | |
NBSP |
|
(non déclaré) | Espace insécable. |
SÉRIALISABLE | booléen | Les champs sérialisables sont enregistrés par le sérialiseur, contrairement aux champs non sérialisables. Les champs modifiables doivent également être sérialisables. Ce n'est pas le cas par défaut. SERIALIZABLE est donc rétrocompatible. | |
size_ | protected |
Taille | |
SKIP_SETUP |
|
symbole unique | Valeur utilisée pour indiquer quand le constructeur d'un champ ne doit *pas* définir la valeur du champ ni exécuter "config_", et doit permettre à une sous-classe de le faire. |
sourceBlock_ | protected |
Bloquer | nul | Bloquer auquel ce champ est associé. Commence en tant que valeur null, puis le définit dans "init". |
textContent_ | protected |
Texte | nul | Élément de contenu textuel du champ affiché. |
textElement_ | protected |
SVGTextElement | nul | Élément de texte SVG du champ affiché. |
validator_ | protected |
FieldValidator<T> | nul | Fonction de validation appelée lorsque l'utilisateur modifie un champ modifiable. |
value_ | protected |
J | nul | |
visible_ | protected |
booléen | Le champ est-il visible ou masqué en raison de la réduction du bloc ? |
Méthodes
Méthode | Modificateurs | Description |
---|---|---|
applyColour() | Met à jour le champ pour qu'il corresponde à la couleur/au style du bloc. Des sous-classes non abstraites peuvent utiliser cette méthode si la couleur du champ dépend de la couleur du bloc. Il sera automatiquement appelé aux moments pertinents, par exemple lorsque le bloc parent ou le moteur de rendu change. Consultez la documentation sur les champs pour en savoir plus, ou "FieldDropdown" pour un exemple. |
|
bindEvents_() | protected |
Liez des événements au champ. Peut être ignoré par les sous-classes si elles doivent gérer les entrées personnalisées. |
configure_(config) | protected |
Traitez le mappage de configuration transmis au champ. |
createBorderRect_() | protected |
Créez un élément rectangulaire de bordure de champ. À ne pas remplacer par les sous-classes. Modifiez plutôt le résultat de la fonction dans initView ou créez une fonction distincte à appeler. |
createTextElement_() | protected |
Créez un élément de texte de champ. À ne pas remplacer par les sous-classes. Modifiez plutôt le résultat de la fonction dans initView ou créez une fonction distincte à appeler. |
doClassValidation_(newValue) | protected |
Validez les modifications apportées à la valeur d'un champ avant qu'elles ne soient définies. Pour obtenir un exemple d'implémentation d'une sous-classe, consultez **FieldDropdown**. **REMARQUE:** La validation renvoie une option comprise entre |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue, _fireChangeEvent) | protected |
Utilisé pour indiquer au champ qu'une valeur non valide a été saisie. Peut être remplacé par des sous-classes (voir FieldTextInput). "No-op" par défaut. |
doValueUpdate_(newValue) | protected |
Utilisé pour mettre à jour la valeur d'un champ. Peut être remplacé par des sous-classes pour un stockage personnalisé des valeurs ou une mise à jour d'éléments externes. |
fromJson(_options) | static |
Les sous-classes doivent réimplémenter cette méthode pour construire leur sous-classe Field à partir d'un objet d'argument JSON. Si vous essayez d'enregistrer une sous-classe de champ dans FieldRegistry, une erreur est renvoyée si cette sous-classe n'a pas ignoré cette méthode. |
getAbsoluteXY_() | protected |
Renvoie les coordonnées absolues de l'angle supérieur gauche de ce champ. L'origine (0,0) se trouve dans l'angle supérieur gauche du corps de la page. |
getBorderRect() | protected |
Récupère l'élément de bordure rectangulaire. |
getClickTarget_() | protected |
Élément auquel lier le gestionnaire de clics. Si ce champ n'est pas défini explicitement, la valeur par défaut est la racine SVG du champ. Lorsque l'utilisateur clique sur cet élément dans un champ modifiable, l'éditeur s'ouvre. |
getConstants() | Permet d'obtenir le fournisseur de constantes du moteur de rendu. | |
getDisplayText_() | protected |
Récupérez le texte de ce champ afin de l'afficher dans le bloc. Peut différer de getText en raison des points de suspension et d'autres facteurs de mise en forme. |
getFlipRtl() | Indique si le champ doit être inversé ou non en lecture de droite à gauche. | |
getSize() | Renvoie la hauteur et la largeur du champ. En général, il doit s'agir du seul endroit à partir duquel le champ "render_" est appelé. |
|
getSourceBlock() | Permet d'obtenir le bloc auquel ce champ est associé. | |
getSvgRoot() | Récupère l'élément de groupe pour ce champ modifiable. Utilisé pour mesurer la taille et le positionnement. | |
getText_() | protected |
Un hook de développeur pour remplacer le texte renvoyé par ce champ. À ignorer si la représentation textuelle de la valeur de ce champ n'est pas seulement une conversion sous forme de chaîne de sa valeur. Renvoie la valeur "null" pour obtenir une conversion de chaîne. |
getText() | Récupérez le texte de ce champ. Ignorez getText_ pour fournir un comportement différent de celui consistant à caster la valeur en chaîne. | |
getTextContent() | protected |
Récupère le contenu textuel. |
getTextElement() | protected |
Récupère l'élément textuel. |
getTooltip() | Affiche le texte de l'info-bulle pour ce champ. | |
getValidator() | Récupère la fonction de validation pour les champs modifiables, ou la valeur null si ce champ n'est pas défini. | |
getValue() | Obtenez la valeur actuelle du champ. | |
initModel() | Initialise le modèle du champ après son installation sur un bloc. "No-op" par défaut. | |
initView() | protected |
Créez l'interface utilisateur de blocage pour ce champ. |
isClickable() | Vérifiez si ce champ définit la fonction showEditor_. | |
isClickableInFlyout(autoClosingFlyout) | Vérifiez si le champ doit être cliquable lorsque le bloc se trouve dans un menu déroulant. Par défaut, les champs sont cliquables dans les menus déroulants toujours ouverts tels que "Simple Toolbox", mais pas dans ceux de fermeture automatique comme "category Toolbox". Les sous-classes peuvent remplacer cette fonction pour modifier ce comportement. Notez que isClickable doit également renvoyer la valeur "true" pour que cela ait un effet. |
|
isCurrentlyEditable() | Vérifiez si ce champ est actuellement modifiable. Certains champs ne peuvent jamais être modifiés (par exemple, les libellés de texte). D'autres champs peuvent être MODIFIER, mais ils peuvent exister sur des blocs non modifiables ou être actuellement désactivés. | |
isEnabled() | Vérifiez si la valeur de ce champ peut être modifiée à l'aide de l'éditeur lorsque le bloc source est modifiable. | |
isFullBlockField() | protected |
Définit si ce champ doit occuper l'intégralité du bloc ou non. Soyez prudent lorsque vous remplacez cette fonction. Cela risque de ne pas fonctionner comme prévu, car le comportement a été en quelque sorte piraté. Si vous envisagez de remplacer cette fonction, publiez un message sur le forum en indiquant le comportement souhaité pour voir s'il existe une autre approche. |
isSerializable() | Vérifiez si ce champ doit être sérialisé par le moteur de rendu XML. Gère la logique de rétrocompatibilité et d'états incongrus. | |
isTabNavigable() | Indique si le champ est navigable via la touche de tabulation. | |
isVisible() | Détermine si ce champ modifiable est visible ou non. | |
loadLegacyState(callingClass, state) | Charge l'état donné à l'aide des anciens hooks XML, le cas échéant. Renvoie la valeur "true" pour indiquer que le chargement a été géré, ou la valeur "false" dans le cas contraire. | |
onLocationChange(_) | Notifie le champ que les emplacements ont été modifiés. | |
onMouseDown_(e) | protected |
Gérer un événement de pointeur sur un champ. |
onShortcut(_shortcut) | Gère le raccourci clavier donné. | |
positionBorderRect_() | protected |
Positionne le rectangle de la bordure d'un champ après un changement de taille. |
positionTextElement_(xOffset, contentWidth) | protected |
Permet de positionner l'élément textuel d'un champ après un changement de taille. Cela permet de les positionner de gauche à droite et de droite à gauche. |
render_() | protected |
Utilisé par getSize() pour déplacer/redimensionner tous les éléments DOM et obtenir la nouvelle taille. Tout rendu ayant un effet sur la taille/la forme du bloc doit être effectué ici et doit être déclenché par getSize(). |
repositionForWindowResize() | Accroche développeur permettant de repositionner le WidgetDiv lors du redimensionnement d'une fenêtre. Vous devez définir ce hook si votre champ comporte un objet WidgetDiv qui doit se repositionner lorsque la fenêtre est redimensionnée. Par exemple, les champs de saisie de texte définissent ce hook de sorte que l'entrée WidgetDiv puisse se repositionner sur un événement de redimensionnement de fenêtre. Cela est particulièrement important lorsque les entrées modales sont désactivées, car les appareils Android déclenchent un événement de redimensionnement de fenêtre à l'ouverture du clavier virtuel. Si vous souhaitez que le WidgetDiv se masque au lieu d'être repositionné, renvoyez la valeur false. Il s'agit du comportement par défaut. Les objets DropdownDiv gèrent déjà leur propre logique de positionnement. Vous n'avez donc pas besoin d'ignorer cette fonction si votre champ ne contient qu'un objet DropdownDiv. |
|
saveLegacyState(callingClass) | protected |
Renvoie une version concaténée de l'état XML, si elle doit être utilisée. Sinon, elle renvoie une valeur nulle pour indiquer que le champ doit utiliser sa propre sérialisation. |
setEnabled(enabled) | Indiquez si la valeur de ce champ peut être modifiée dans l'éditeur lorsque le bloc source est modifiable. | |
setSourceBlock(block) | Associez ce champ à un bloc. | |
setTooltip(newTip) | Définit l'info-bulle pour ce champ. | |
setValidator(handler) | Définit une nouvelle fonction de validation pour les champs modifiables ou efface un programme de validation précédemment défini. La fonction de validation prend en compte la nouvelle valeur du champ et renvoie une valeur validée. La valeur validée peut être la valeur d'entrée, une version modifiée de la valeur d'entrée ou la valeur "null" pour annuler la modification. Si la fonction ne renvoie rien (ou renvoie une valeur non définie), la nouvelle valeur est acceptée comme valide. Cela permet de permettre aux champs utilisant la fonction validée comme notification d'événement de modification au niveau du champ. |
|
setValue(newValue, fireChangeEvent) | Permet de modifier la valeur du champ. Gère la validation et les événements. Les sous-classes doivent remplacer doClassValidation_ et doValueUpdate_ plutôt que cette méthode. | |
showEditor_(_e) | protected |
Accroche développeur permettant de créer un éditeur pour le champ. Il s'agit d'une opération no-op par défaut. Vous devez la remplacer pour créer un éditeur. |
updateEditable() | Ajoutez ou supprimez l'interface utilisateur qui indique si ce champ est modifiable ou non. | |
updateSize_(margin) | protected |
Met à jour la taille du champ en fonction du texte. |