4D v16.3

SVG SET ATTRIBUTE

Accueil

 
4D v16.3
SVG
SVG SET ATTRIBUTE

SVG SET ATTRIBUTE 


 

SVG SET ATTRIBUTE ( {* ;} objetImage ; id_Element ; nomAttribut ; valeurAttribut {; nomAttribut2 ; valeurAttribut2 ; ... ; nomAttributN ; valeurAttributN} {; *}) 
Paramètre Type   Description
Opérateur in Si spécifié, objetImage est un nom d'objet (chaîne) Si omis, objetImage est une variable ou un champ
objetImage  Image in Nom d’objet (si * spécifié) ou Variable ou champ (si * omis)
id_Element  Texte in ID de l'élément dont un ou plusieurs attribut(s) sont à définir
nomAttribut  Chaîne in Attribut à définir
valeurAttribut  Chaîne, Entier long in Nouvelle valeur d’attribut
Opérateur in Si passé = modifier l'arbre DOM interne de l'image SVG (variable uniquement)

La commande SVG SET ATTRIBUTE permet de modifier la valeur d’un attribut existant dans l’arbre de rendu SVG d’une image affichée ou dans l'arbre DOM interne d'une image.

Si vous passez le premier paramètre optionnel *, vous indiquez que le paramètre objetImage est un nom d’objet (une chaîne). Dans ce cas, la commande s’applique aux paramètres de l’image de rendu attachée à l’objet (à noter que les paramètres et donc l’image de rendu de l’objet ne sont créés que si la commande SVG SET ATTRIBUTE est appelée au moins une fois).
Si vous ne passez pas le premier paramètre *, vous indiquez que le paramètre objetImage est une variable ou un champ. Vous ne passez alors pas une chaîne mais une référence de variable (variable objet uniquement) ou de champ. Dans ce cas, la commande s’applique aux images de rendu de tous les objets qui utilisent la variable ou le champ.

Par défaut, les modifications effectuées par cette commande s’appliquent uniquement aux images de rendu, elle ne sont pas stockées dans la source de données (l'arbre DOM interne) et sont perdues lorsque l’image est effacée par programmation ou lorsque le formulaire est fermé. Il est toutefois possible de reporter ces modifications dans l'arbre DOM interne de l'image lorsque le paramètre objetImage référence une variable : il suffit pour cela de passer un second * en dernier paramètre. Ce principe permet de préserver des modifications effectuées à la volée. 

Notes :

  • Le report des modifications dans l'arbre DOM interne n'est pas possible lorsque le paramètre objetImage référence un objet.
  • Pour que le report des modifications soit possible, la variable SVG doit avoir été créée à partir d'un document DOM (avec DOM EXPORT TO VAR). Si la variable SVG a été créée à partir d'un fichier et si vous passez le second paramètre *, la commande ne fera rien et une erreur sera générée car dans ce cas la source de données ne contient pas de document DOM modifiable.
  • Pour modifier la source de données d'une image SVG, vous pouvez également utiliser les commandes XML DOM ou le composant MissingRef fourni par 4D.

Le paramètre id_Element permet de définir l'ID (attribut "id" ou "xml:id") de l’élément dont vous souhaitez modifier un ou plusieurs attribut(s).

Passez dans les paramètres nomAttribut et valeurAttribut respectivement l'attribut à écrire et sa valeur (sous forme de variables, champs ou valeurs littérales). Vous pouvez passer autant de couples attribut/valeur que vous voulez. 

La commande SVG SET ATTRIBUTE vous permet de modifier (mais pas d’ajouter ou de supprimer) la plupart des attributs SVG, comme par exemple 'fill', 'opacity', 'font-family', etc. Pour une définition complète des attributs SVG, reportez-vous aux documents de référence disponibles sur Internet, par exemple http://www.w3.org/TR/SVG11/attindex.html. La mise à jour de l’image de rendu est immédiate, les modifications sont reportées en cascade sur les éléments enfants pour les styles héritables. 

A noter que pour des raisons techniques, les attributs de certains éléments ainsi que certains attributs ne sont pas modifiables. Le tableau suivant liste les éléments modifiables, les éléments non modifiables ainsi que les attributs non modifiables :

Eléments dont les attributs sont modifiables 

svgRestrictions :
- "width" et "height" ne sont pas modifiables (1)
- "viewBox" n'est modifiable que si "width" et "height" sont définis dans le document d’origine
g
defs
use
filterRestriction : les éléments enfants fe_xxx ne sont pas modifiables
circle
ellipse
line
polyline
polygon
path
rect
text, tspan, textAreaL’attribut spécifique "4d-text" vous permet de modifier le texte d’un élément "text", "tspan" ou "textArea" (cf. exemple)
Image

Eléments dont les attributs ne sont pas modifiables 

linearGradient, radialGradient, Stop, solidColor, marker, symbol, clipPath, filter et les éléments commençant par fe, style, patternCet ensemble désigne tous les éléments référençables ou contenus dans un élément référençable. Cela signifie qu’il n’est pas possible par exemple de redéfinir les attributs d’un gradient (mais il est possible de changer le gradient utilisé). De même, pour changer un marqueur de couleur noire en marqueur rouge, il faudra définir deux marqueurs dans le document SVG (un noir et un rouge) et sélectionner l’un ou l’autre. Il n’est pas possible non plus par exemple de modifier la couleur d'un rectangle s’il a pour parent un élément symbol ou marker

Attributs non modifiables

id ou xml:id
lang ou xml:lang
class ou xml:class
width, heightConcerne les attributs de l’élément 'svg' uniquement (1)

(1) Ces attributs ne peuvent être modifiés car ils définissent et structurent l’image résultante. Les attributs width et height de l’élément svg servent à définir les dimensions initiales de l’image dans 4D et ces dimensions doivent rester constantes après la création de l’image (il est toutefois possible de modifier les dimensions de l’image résultante avec la commande TRANSFORM PICTURE de 4D).

Reportez-vous également à la description de la commande SVG GET ATTRIBUTE pour obtenir la liste des attributs 4D réservés et dédiés à l’animation.

Si vous tentez de modifier un attribut d’un élément non pris en charge ou l’un de ses enfants, la commande ne fait rien et aucune erreur n’est générée.

Si la commande est exécutée en-dehors du contexte d'un formulaire ou si un objetImage invalide est passé, la variable OK prend la valeur 0. Si la commande a été exécutée correctement, elle prend la valeur 1.

Exemple  

Modification du contenu d’un élément de type texte :

 SVG SET ATTRIBUTE(*;nom_objet_image;text_element_ID;"4d-text";"Ceci est un texte")

Note : Il n’y a pas de namespace pour que l’attribut puisse être utilisé dans une feuille de style CSS sans risque de conflit.



Voir aussi  

SVG GET ATTRIBUTE

 
PROPRIÉTÉS 

Produit : 4D
Thème : SVG
Numéro : 1055

Cette commande modifie la variable système OK

 
HISTORIQUE 

Créé : 4D v12
Modifié : 4D v12.3

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)