Classe de terrain
Classe abstraite pour un champ modifiable.
Signature :
export declare abstract class Field<T = any> implements IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Implémentation: IASTNodeLocationSvg, IASTNodeLocationWithBlock, IKeyboardAccessible, IRegistrable, ISerializable
Constructeurs
Constructeur | Les modificateurs | Description |
---|---|---|
(constructeur)(valeur, validateur, configuration) | Construit une instance de la classe Field . |
Propriétés
Propriété | Les modificateurs | Type | Description |
---|---|---|---|
borderRect_ | protected |
SVGRectElement | null | Élément de bordure SVG du champ de rendu. |
clickTarget_ | protected |
Élément | null | Élément auquel le gestionnaire de clics est lié. |
constants_ | protected |
ConstantProvider | null | Constantes associées au moteur de rendu du bloc source |
CURSEUR | chaîne | Style du curseur de la souris lorsqu'il passe sur la zone cliquable qui lance l'éditeur | |
DEFAULT_VALUE | T | null | Pour remplacer la valeur par défaut définie dans **Champ**, mettez directement à jour le prototype. Exemple : |
|
MODIFICABLE | boolean | 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 |
boolean | La valeur du champ peut-elle être modifiée à l'aide de l'éditeur sur un bloc modifiable ? |
fieldGroup_ | protected |
SVGGElement | null | Élément de groupe SVG du champ de rendu. |
isDirty_ | protected |
boolean | Ce bloc doit-il être à nouveau affiché ? |
maxDisplayLength | number | Nombre maximal de caractères du texte à afficher avant d'ajouter des points de suspension. | |
nom ? | chaîne | (Facultatif) Nom du champ. Unique dans chaque bloc. Les libellés statiques ne portent généralement pas de nom. | |
NBSP |
|
(non déclaré) | Espace insécable. |
Sérialisables | boolean | 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, de sorte que SERIALIZABLE est 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 configure_, mais doit permettre à une sous-classe de le faire. |
sourceBlock_ | protected |
Bloquer | null | Le bloc auquel ce champ est associé. Elle commence par "null", puis est définie dans "init". |
textContent_ | protected |
Texte | null | Élément de contenu textuel du champ affiché. |
textElement_ | protected |
SVGTextElement | null | Élément de texte SVG du champ rendu. |
validator_ | protected |
FieldValidator<T> | null | Fonction de validation appelée lorsque l'utilisateur modifie un champ modifiable. |
value_ | protected |
T | null | |
visible_ | protected |
boolean | Le champ est-il visible ou masqué en raison de la réduction du bloc ? |
Méthodes
Méthode | Les modificateurs | Description |
---|---|---|
applyColour() | Met à jour le champ pour qu'il corresponde à la couleur/au style du bloc. Il peut être utile d'implémenter des sous-classes non abstraites si la couleur du champ dépend de la couleur du bloc. Il sera automatiquement appelé aux moments opportuns, 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 les événements au champ. Peut être ignoré par les sous-classes si elles doivent effectuer une gestion personnalisée des entrées. |
configure_(config) | protected |
Traitez le mappage de configuration transmis au champ. |
createBorderRect_() | protected |
Créez un élément rectiligne de bordure de champ. Ne pas être remplacés par les sous-classes. À la place, modifiez 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 être remplacés par les sous-classes. À la place, modifiez 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 de les définir. Consultez **FieldDropdown** pour obtenir un exemple d'implémentation de sous-classe. **REMARQUE:** La validation renvoie une option entre |
doClassValidation_(newValue) | protected |
|
doValueInvalid_(_invalidValue) | protected |
Permet d'informer le champ qu'une valeur non valide a été saisie. Peut être remplacé par les sous-classes, voir FieldTextInput. No-op par défaut. |
doValueUpdate_(newValue) | protected |
Permet de mettre à jour la valeur d'un champ. Peut être ignoré par les sous-classes pour le stockage personnalisé de valeurs/la mise à jour d'éléments externes. |
getAbsoluteXY_() | protected |
Renvoie les coordonnées absolues de l'angle supérieur gauche de ce champ. L'origine (0,0) correspond à 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 le gestionnaire de clics doit être lié. Si ce champ n'est pas défini explicitement, la valeur par défaut est définie sur la racine SVG du champ. Lorsque vous cliquez sur cet élément dans un champ modifiable, l'éditeur s'ouvre. |
getConstants() | Obtenir le fournisseur de constantes du moteur de rendu | |
getDisplayText_() | protected |
Obtenez le texte de ce champ à afficher dans le bloc. Peut différer de getText en raison de points de suspension et d'autres facteurs de mise en forme. |
getFlipRtl(). | Indique si le champ doit être inversé dans le sens de lecture de droite à gauche. | |
getSize() | Renvoie la hauteur et la largeur du champ. Il doit *en général* être le seul endroit à partir duquel le rendu est appelé. |
|
getSourceBlock() | Récupérez 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 pour le positionnement. | |
getText_() | protected |
Un hook de développeur pour remplacer le texte renvoyé de ce champ. Valeur à remplacer si la représentation textuelle de la valeur de ce champ n'est pas simplement une conversion de type chaîne de sa valeur. Renvoie la valeur "null" pour recourir à une chaîne castée. |
getText() | Récupérez le texte de ce champ. Ignorez getText_ pour fournir un comportement différent du fait de simplement caster la valeur en chaîne. | |
getTextContent() | protected |
Récupère le contenu textuel. |
getTextElement() | protected |
Récupère l'élément textuel. |
getTooltip() | Renvoie 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() | Récupère 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 du bloc 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 volume se trouve dans un menu déroulant. Par défaut, les champs sont cliquables dans les volets toujours ouverts tels que "boîte à outils simple", mais pas dans ceux à fermeture automatique, comme celui de la catégorie "Boîte à outils". 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 sont jamais MODIFIABLES (les libellés de texte, par exemple). Il est possible que d'autres champs soient modifiables, mais qu'ils se trouvent sur des blocs non modifiables ou qu'ils soient 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 la totalité du bloc ou non. Soyez prudent lorsque vous remplacez cette fonction. Il est possible qu'il ne fonctionne pas comme prévu, car il 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 liée à la rétrocompatibilité et aux états incongrus. | |
isTabNavigable() | Indique si le champ peut être parcouru par des tabulations ou non. | |
isVisible() | Détermine si ce champ modifiable est visible ou non. | |
loadLegacyState(callingClass, state) | Charge l'état donné à l'aide des anciens hooks XML, s'ils doivent être utilisés. Renvoie la valeur "true" pour indiquer que le chargement a été effectué. Sinon, la valeur "false" est renvoyée. | |
onLocationChange(_) | Notifie le champ qu'il a changé d'emplacement. | |
onMouseDown_(e) | protected |
Gérer un événement pointer vers le bas sur un champ |
onShortcut(_shortcut) | Gère le raccourci clavier donné. | |
positionBorderRect_() | protected |
Permet de positionner le rectangle de bordure d'un champ après un changement de taille. |
positionTextElement_(xOffset, contentWidth) | protected |
Permet de positionner l'élément de texte d'un champ après un changement de taille. Cette option permet de positionner à la fois de gauche à droite et de droite à gauche. |
render_() | protected |
Utilisé par la méthode 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() | Un hook de développeur pour repositionner le WidgetDiv lors du redimensionnement d'une fenêtre. Vous devez définir ce hook si votre champ comporte un WidgetDiv qui doit se repositionner lorsque la fenêtre est redimensionnée. Par exemple, les champs de saisie de texte définissent ce hook afin que l'entrée WidgetDiv puisse se repositionner en cas d'événement de redimensionnement de fenêtre. Cela est particulièrement important lorsque les entrées modales ont été désactivées, car les appareils Android déclenchent un événement de redimensionnement de fenêtre à l'ouverture du clavier virtuel. Si vous voulez que la classe WidgetDiv se masque au lieu d'être repositionnée, renvoyez la valeur "false". Il s'agit du comportement par défaut. DropdownDivs gère déjà sa propre logique de positionnement. Vous n'avez donc pas besoin de remplacer cette fonction si votre champ ne contient qu'un DropdownDiv. |
|
saveLegacyState(callingClass) | protected |
Renvoie une version concaténée de l'état XML, le cas échéant. Sinon, renvoie une valeur nulle. Pour signaler que le champ doit utiliser sa propre sérialisation. |
setEnabled(enabled) | Indiquez si la valeur de ce champ peut être modifiée à l'aide de l'éditeur lorsque le bloc source est modifiable. | |
setSourceBlock(block) | Associez ce champ à un volume. | |
setTooltip(newTip) | Définit l'info-bulle de ce champ. | |
setValidator(handler) | Définit une nouvelle fonction de validation pour les champs modifiables ou efface un validateur défini précédemment. 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 "non défini"), la nouvelle valeur est acceptée comme valide. Cela permet de définir des 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. Il 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 |
Un hook du développeur pour 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() | Ajoute ou supprime l'interface utilisateur indiquant si ce champ est modifiable ou non. | |
updateSize_(margin) | protected |
Met à jour la taille du champ en fonction du texte. |