Différences entre versions de « Référence:JavaScript »

De GeoGebra Manual
Aller à : navigation, rechercher
(il y a encore du boulot !!!)
Ligne 1 : Ligne 1 :
 
'''EN TRAVAUX !!!''' --[[Utilisateur:Noel Lambert|Noel Lambert]] 10 décembre 2011 à 19:35 (CET)
 
'''EN TRAVAUX !!!''' --[[Utilisateur:Noel Lambert|Noel Lambert]] 10 décembre 2011 à 19:35 (CET)
 +
 +
--[[Utilisateur:Noel Lambert|Noel Lambert]] 11 décembre 2011 à 10:39 (CET)
  
  
Ligne 6 : Ligne 8 :
  
 
= Exemples =
 
= Exemples =
Exemple 1 : le fragment de code HTML suivant ajoute un bouton "Réinitialiser" dans une page HTML, ce qui permet à l’utilisateur de ramener la  construction affichée par GeoGebra dans son état initial :
 
<form>
 
<input type="button" value="Réinitialiser" onclick="document.applets[0].reset();">
 
</form>
 
  
  
Exemple 2 : celui-ci ajoute deux boutons "Cacher A" et " Afficher A" pour changer l’état d’affichage de l’objet nommé “A" dans la construction
+
{{Example| 1 =  le fragment de code HTML suivant ajoute un bouton "Réinitialiser" dans une page HTML, ce qui permet à l’utilisateur de ramener la construction affichée par GeoGebra dans son état initial :<br/>
<form>
 
<input type="button" value="Cacher A" onclick="document.applets[0].setVisible('A', false);">
 
<input type="button" value="Afficher A" onclick="document.applets[0].setVisible('A', true);">
 
</form>
 
  
 +
<code> <form><br/><input type="button" value="Réinitialiser" onclick="document.applets[0].reset();"><br/></form></code>}}
  
Exemple 3: Une fonction JavaScript "maConstruction()" est utilisée pour appeler plusieurs méthodes de l’appliquette GeoGebra. Note : La langue est fixée à Français ("fr") avec le paramètre "language" dans la balise de l’appliquette afin de faire en sorte que la commande française "Droite" fonctionne.
 
<applet name="ggbApplet" code="geogebra.GeoGebraApplet"
 
        archive="geogebra.jar"
 
        width=200 height=40>
 
    <param name ="fileNom" value="circle.ggb">
 
    <param name ="framePossible" value="false">
 
    <param name ="language" value="fr">
 
    <a href="http://www.java.com"> Installez  Java 1.4.2</a> (ou supérieure) pour utiliser cette  page.
 
</applet>
 
<script type="text/javascript">
 
function maConstruction() {
 
var applet = document.ggbApplet;
 
applet.evalCommand("A = (1,1)"); 
 
applet.evalCommand("B = (3,2)"); 
 
applet.evalCommand("s = Droite[A, B]"); 
 
}
 
</script>
 
<form>
 
<input type="button" value="Faire la construction" onclick="maConstruction();">
 
</form>
 
  
 +
{{Example| 1 = celui-ci ajoute deux boutons "Cacher A" et " Afficher A" pour changer l’état d’affichage de l’objet nommé “A" dans la construction<br/>
 +
<code> <form><br/><input type="button" value="Cacher A" onclick="document.applets[0].setVisible('A', false);"><br/><input type="button" value="Afficher A" onclick="document.applets[0].setVisible('A', true);"><br/></form></code>}}
  
Exemple 4: Have a look at the source code of the following example worksheet that uses JavaScript.
 
  http://www.geogebra.org/source/program/applet/geogebra_applet_javascript_test.htm
 
  
Exemple 5: This is an example worksheet that uses an ''add listener'' to check when a particular construction has been completed (and then says "Well done").
+
{{Example| 1 =Une fonction JavaScript "maConstruction()" est utilisée pour appeler plusieurs méthodes de l’appliquette GeoGebra.
  http://www.geogebra.org/en/examples/javascriptAutomaticCheckingExercise.html
+
{{ Note| La langue est fixée à Français ("fr") avec le paramètre "language" dans la balise de l’appliquette afin de faire en sorte que la commande française "Droite" fonctionne.}}
 +
<code><applet name="ggbApplet" code="geogebra.GeoGebraApplet"  archive="geogebra.jar"    width=200 height=40><br/><param name ="fileName" value="circle.ggb"><br/><param name ="framePossible" value="false"><br/><param name ="language" value="fr"><br/><a href="http://www.java.com"> Installez  Java 1.4.2</a> (ou supérieure) pour utiliser cette  page.<br/>
 +
</applet><br/>
 +
 
 +
<script type="text/javascript"><br/>
 +
function maConstruction() {<br/>
 +
var applet = document.ggbApplet;<br/>
 +
applet.evalCommand("A = (1,1)");  <br/>
 +
applet.evalCommand("B = (3,2)");<br/>
 +
applet.evalCommand("s = Droite[A, B]");  <br/>
 +
}<br/>
 +
</script><br/>
 +
 
 +
<form><br/><input type="button" value="Faire la construction" onclick="maConstruction();"><br/></form></code>}}
 +
 
 +
 
 +
{{Example| 1 = Explorez le code source de l'exemple suivant qui utilise JavaScript.<br>
 +
http://www.geogebra.org/source/program/applet/geogebra_applet_javascript_test.htm
 +
}}
 +
 
 +
 
 +
{{Example | 1 = Ceci est un exemple de fichier qui utilise un  ''add listener'' pour savoir si une construction particulière a été complétée (et alors envoie le message  "Well done").<br>
 +
http://www.geogebra.org/en/examples/javascriptAutomaticCheckingExercise.html
 +
}}
 +
 
  
 
= Méthodes utilisables =
 
= Méthodes utilisables =
Ligne 74 : Ligne 73 :
 
= Définir l’état d’un objet =
 
= Définir l’état d’un objet =
  
==General methods==
+
==Méthodes générales==
 
<table style="width: 100%;" class="pretty">
 
<table style="width: 100%;" class="pretty">
 
     <tr>
 
     <tr>
Ligne 82 : Ligne 81 :
 
     <tr>
 
     <tr>
 
       <td> deleteObject(nom)</td>
 
       <td> deleteObject(nom)</td>
       <td>Efface l’objet cité.[ex : deleteObject('A')].</td>
+
       <td>Efface l’objet cité.{{Example|1= deleteObject('A')}}</td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
 
       <td>setValue(nom, valeur)</td>
 
       <td>setValue(nom, valeur)</td>
       <td>Affecte la valeur à l’objet cité [ex : setValue('n',36)].
+
       <td>Affecte la valeur à l’objet cité {{Example|1=setValue('n',36)}}
Note : Si cet objet n’est pas un nombre, rien ne se passe. Si l’objet est un booléen, utiliser la valeur 1 pour le mettre à ‘Vrai’, n’importe quelle valeur pour le mettre à ‘Faux’.</td>
+
{{Note |Si cet objet n’est pas un nombre, rien ne se passe. <br/>Si l’objet est un booléen, utiliser la valeur 1 pour le mettre à ‘Vrai’, n’importe quelle valeur pour le mettre à ‘Faux’.}}</td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
 
       <td>setCoords(nom, x, y)</td>
 
       <td>setCoords(nom, x, y)</td>
       <td>Affecte les coordonnées à l’objet [ex : setCoords('A',-1,3)].
+
       <td>Affecte les coordonnées à l’objet{{Example|1= setCoords('A',-1,3)}}
Note : Si cet objet n’est ni point ni vecteur, rien ne se passe.</td>
+
{{Note| Si cet objet n’est ni point ni vecteur, rien ne se passe.}}</td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
 
       <td>setColor(nom, rouge, vert, bleu)</td>
 
       <td>setColor(nom, rouge, vert, bleu)</td>
       <td>Affecte la couleur RVB à l’objet  [ setColor('A',200,100,100)].</td>
+
       <td>Affecte la couleur RVB à l’objet  {{Example|1=setColor('A',200,100,100)}}</td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
 
       <td>setVisible(nom, booléen) </td>
 
       <td>setVisible(nom, booléen) </td>
       <td>Affiche (true) ou Cache (false) l’objet cité dans la vue Graphique [ex : setVisible('A',true)].</td>
+
       <td>Affiche (true) ou Cache (false) l’objet cité dans la vue Graphique {{Example|1=setVisible('A',true)}}</td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
 
       <td>setLabelVisible(nom, booléen) </td>
 
       <td>setLabelVisible(nom, booléen) </td>
       <td>Affiche (true) ou Cache (false) l’étiquette de l’objet cité dans la vue Graphique [ex : setLabelVisible('A',false)].</td>
+
       <td>Affiche (true) ou Cache (false) l’étiquette de l’objet cité dans la vue Graphique {{Example|1=setLabelVisible('A',false)}}</td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
 
       <td>setLabelStyle(nom, booléen)</td>
 
       <td>setLabelStyle(nom, booléen)</td>
       <td>Définit le style de l’étiquette de l’objet cité dans  Graphique. Nom = 0, Nom & Valeur = 1, Valeur = 2 et  Légende=3. [ex : setLabelStyle('A',1)],
+
       <td>Définit le style de l’étiquette de l’objet cité dans  Graphique. Nom = 0, Nom & Valeur = 1, Valeur = 2 et  Légende=3. {{Example|1=setLabelStyle('A',1)}}
 
</td>
 
</td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
 
       <td>setFixed(nom, booléen)</td>
 
       <td>setFixed(nom, booléen)</td>
       <td>Définit la liberté de l’objet cité [ex : setFixed('A',true)].
+
       <td>Définit la liberté de l’objet cité {{Example|1=setFixed('A',true)}}
Note : Les objets fixes ne peuvent être modifiés.
+
{{Note | Les objets fixes ne peuvent être modifiés.}}
 
</td>
 
</td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
 
       <td>setTrace(nom, booléen)</td>
 
       <td>setTrace(nom, booléen)</td>
       <td>Active ou non la trace de l’objet cité [ex : setTrace('A',false)].</td>
+
       <td>Active ou non la trace de l’objet cité {{Example|1=setTrace('A',false)}}</td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
 
       <td>renameObject(ancien nom, nouveau nom)</td>
 
       <td>renameObject(ancien nom, nouveau nom)</td>
      <td style="text-align: center;">3.2</td>
 
 
       <td>Renomme l’objet ancien nom en l’objet nouveau nom</td>
 
       <td>Renomme l’objet ancien nom en l’objet nouveau nom</td>
 
     </tr>
 
     </tr>
Ligne 349 : Ligne 347 :
 
<table style="width: 100%;" class="pretty">
 
<table style="width: 100%;" class="pretty">
 
  <tr>
 
  <tr>
  <th>Method Signature</th>
+
  <th>Méthode</th>
<th style="text-align: center;">Since</th>
 
 
  <th style="font-weight: bold;">Description</th>
 
  <th style="font-weight: bold;">Description</th>
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
 
  <td>void registerAddListener(String JSFunctionName)</td>
 
  <td>void registerAddListener(String JSFunctionName)</td>
<td style="text-align: center;">3.0</td>
 
 
  <td>Registers a JavaScript function as an <span style="font-weight: bold;">add</span> listener for the applet's construction. Whenever a new object is created in the GeoGebraApplet's construction, the JavaScript function <span style="font-style: italic;">JSFunctionName</span> is called using the name of the newly created object as its single argument. <br>
 
  <td>Registers a JavaScript function as an <span style="font-weight: bold;">add</span> listener for the applet's construction. Whenever a new object is created in the GeoGebraApplet's construction, the JavaScript function <span style="font-style: italic;">JSFunctionName</span> is called using the name of the newly created object as its single argument. <br>
 
<span style="font-style: italic;">Example</span>: First, register a listening JavaScript function:<br>
 
<span style="font-style: italic;">Example</span>: First, register a listening JavaScript function:<br>
Ligne 366 : Ligne 362 :
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td>void unregisterAddListener(String objName)</td>
+
  <td>unregisterAddListener(nom)</td>
  <td style="text-align: center;">3.0</td>
+
  <td>Retire un mouchard d’ajouts déclaré auparavant, voir <span style="font-style: italic;">registerAddListener()</span></td>
<td>Removes a previously registered add listener, see <span style="font-style: italic;">registerAddListener()</span></td>
 
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td>void registerRemoveListener(String JSFunctionName)</td>
+
  <td>registerRemoveListener(fonctionJS)</td>
  <td style="text-align: center;">3.0</td>
+
  <td>Déclare une fonction JavaScript en tant que mouchard des <span style="font-weight: bold;">retraits</span> dans l’appliquette de construction.
<td>Registers a JavaScript function as a <span style="font-weight: bold;">remove</span> listener for the applet's construction. Whenever an object is deleted from the GeoGebraApplet's construction, the JavaScript function <span style="font-style: italic;">JSFunctionName</span> is called using the name of the deleted object as its single argument. Note: when a construction is cleared, remove is not called for every single object, see registerClearListener().<br>
+
Dès qu’un objet est supprimé, la fonction  <span style="font-style: italic;">fonctionJS</span>JS est appelée avec comme argument le nom de l’objet effacé.  
<span style="font-style: italic;">Example</span>: First, register a listening JavaScript function:<br>
+
Note : Quand une construction est mise à zéro, le mouchard n’est pas appelé pour chacun des objets élémentaires, voir registerClearListener().
<div style="margin-left: 40px;"><span style="font-family: monospace;">ggbApplet.registerRemoveListener("myRemoveListenerFunction");</span> </div>
+
<span style="font-style: italic;">Exemple</span> : Déclarez d’abord, une fonction JS d’écoute :<br>
When the object "A" is deleted, the GeoGebra Applet will call the Javascript function<br>
+
<div style="margin-left: 40px;"><span style="font-family: monospace;">ggbApplet.registerRemoveListener("suiviRetrait");</span> </div>
  <div style="margin-left: 40px;"><span style="font-family: monospace;">myRemoveListenerFunction</span><span style="font-family: monospace;">("</span><span style="font-family: monospace;">A");<br>
+
Dès qu’un objet "A" est effacé, l’appliquette GeoGebra appelle ;
 +
<br>la fonction <div style="margin-left: 40px;"><span style="font-family: monospace;">suiviRetrait</span><span style="font-family: monospace;">("</span><span style="font-family: monospace;">A");<br>
 
  </span></div>
 
  </span></div>
 
  </td>
 
  </td>
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td>void unregisterRemoveListener(String objName)</td>
+
  <td>unregisterRemoveListener(nom)</td>
  <td style="text-align: center;">3.0</td>
+
  <td>Retire un mouchard de retraits déclaré auparavant, voir <span style="font-style: italic;">registerRemoveListener()</span></td>
<td>Removes a previously registered remove listener, see <span style="font-style: italic;">registerRemoveListener()</span></td>
 
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td>void registerUpdateListener(String JSFunctionName)</td>
+
  <td>registerUpdateListener(fonctionJS)</td>
<td style="text-align: center;">3.0</td>
+
  <td>Déclare une fonction JavaScript en tant que mouchard des <span style="font-weight: bold;">modifications</span> dans l’appliquette de construction. Dès qu’un objet quelconque est modifié, la fonction <span style="font-style: italic;">fonctionJS</span>est appelée avec comme argument le nom de l’objet modifié.  
  <td>Registers a JavaScript function as a <span style="font-weight: bold;">update</span> listener for the applet's construction. Whenever any object is updated in the GeoGebraApplet's construction, the JavaScript function <span style="font-style: italic;">JSFunctionName</span>is called using the name of the updated object as its single argument. Note: when you only want to listen for the updates of a single object use registerObjectUpdateListener() instead.<br>
+
Note : si vous voulez suivre les modifications d’un seul objet utilisez plutôt registerObjectUpdateListener().
<span style="font-style: italic;">Example</span>: First, register a listening JavaScript function:<br>
+
<span style="font-style: italic;">Exemple</span> : Déclarez d’abord, une fonction JS d’écoute :<br>
<div style="margin-left: 40px;"><span style="font-family: monospace;">ggbApplet.registerUpdateListener("myUpdateListenerFunction");</span> </div>
+
<div style="margin-left: 40px;"><span style="font-family: monospace;">ggbApplet.registerUpdateListener("suiviModifs");</span> </div>
When the object "A" is updated, the GeoGebra Applet will call the Javascript function<br>
+
Dès que l’objet "A" est modifié, l’appliquette GeoGebra appelle la fonction <br>
  <div style="margin-left: 40px;"><span style="font-family: monospace;">myUpdateListenerFunction</span><span style="font-family: monospace;">("</span><span style="font-family: monospace;">A");<br>
+
  <div style="margin-left: 40px;"><span style="font-family: monospace;">suiviModifs</span><span style="font-family: monospace;">("</span><span style="font-family: monospace;">A");<br>
 
  </span></div>
 
  </span></div>
 
  </td>
 
  </td>
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td>void unregisterUpdateListener(String objName)</td>
+
  <td>unregisterUpdateListener(nom)</td>
  <td style="text-align: center;">3.0</td>
+
  <td>Retire un mouchard de modifications déclaré auparavant, voir <span style="font-style: italic;">registerUpdateListener()</span></td>
<td>Removes a previously registered update listener, see <span style="font-style: italic;">registerUpdateListener()</span></td>
 
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td>void registerObjectUpdateListener(String objName, String JSFunctionName)</td>
+
  <td>registerObjectUpdateListener(nom, fonctionJS)</td>
  <td style="text-align: center;">3.0</td>
+
  <td>Déclare une fonction JavaScript en tant que mouchard des <span style="font-weight: bold;">modifications </span> pour un simple objet dans l’appliquette de construction. Dès que l’objet suivi est modifié, la fonction <span style="font-style: italic;">fonctionJS</span> est appelée avec comme argument le nom de l’objet modifié. Si l’objet avait auparavant une valeur par la fonction JS, l’ancienne valeur est actualisée. Note: toutes les écoutes de modifications d’objets sont effacées quand l’objet associé est supprimé ou que la construction est remise à zéro, voir registerRemoveListener() et registerClearListener().<br>
  <td>Registers a JavaScript function as an <span style="font-weight: bold;">update</span> listener for a single object. Whenever the object with the given name is updated, the JavaScript function <span style="font-style: italic;">JSFunctionName</span>is called using the name of the updated object as its single argument. If objName previously had a mapping JavaScript function, the old value is replaced. Note: all object updated listeners are unregistered when their object is removed or the construction is cleared, see registerRemoveListener() and registerClearListener().<br>
+
<span style="font-style: italic;">Exemple</span> : Déclarez d’abord, une fonction JS d’écoute :<br>
<span style="font-style: italic;">Example</span>: First, register a listening JavaScript function:<br>
+
<div style="margin-left: 40px;"><span style="font-family: monospace;">ggbApplet.registerObjectUpdateListener("A", "</span><span style="font-family: monospace;">monsuiviA</span><span style="font-family: monospace;">");</span> <br>
<div style="margin-left: 40px;"><span style="font-family: monospace;">ggbApplet.registerObjectUpdateListener("A", "</span><span style="font-family: monospace;">myAupdateListenerFunction</span><span style="font-family: monospace;">");</span> <br>
 
 
  </div>
 
  </div>
Whenever the object A is updated, the GeoGebra Applet will call the Javascript function<br>
+
Dès que A est modifié, l’appliquette  appelle la fonction <br>
  <div style="margin-left: 40px;"><span style="font-family: monospace;"></span><span style="font-family: monospace;">myAupdateListenerFunction</span><span style="font-family: monospace;"></span><span style="font-family: monospace;">("A");<br>
+
  <div style="margin-left: 40px;"><span style="font-family: monospace;"></span><span style="font-family: monospace;">monsuiviA</span><span style="font-family: monospace;"></span><span style="font-family: monospace;">("A");<br>
 
  </span></div>
 
  </span></div>
Note: an object update listener will still work after an object is renamed.<span style="font-family: monospace;"></span>
+
Note : un mouchard de modifications d’un objet continue à fonctionner après que cet objet ait été renommé.<span style="font-family: monospace;"></span>
 
</td>
 
</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
  <td>void unregisterObjectUpdateListener(String objName)</td>
+
  <td>unregisterObjectUpdateListener(nom)</td>
  <td style="text-align: center;">3.0</td>
+
  <td>Retire le mouchard de modifications de l’objet cité, voir <span style="font-style: italic;">registerObjectUpdateListener()</span></td>
<td>Removes a previously registered object update listener of the object with the given name, see <span style="font-style: italic;">registerObjectUpdateListener()</span></td>
 
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td>void registerRenameListener(String JSFunctionName)</td>
+
  <td>registerRenameListener(fonctionJS)</td>
  <td style="text-align: center;">3.0</td>
+
  <td>Déclare une fonction JavaScript en tant que mouchard des <span style="font-weight: bold;">changements de nom </span> dans l’appliquette de construction. Dès qu’un objet est renommé, la fonction <span style="font-style: italic;">fonctionJS</span> est appelée avec comme argument l’ancien nom de l’objet et le nouveau. <br>
  <td>Registers a JavaScript function as a <span style="font-weight: bold;">rename</span> listener for the applet's construction. Whenever an object is renamed in the GeoGebraApplet's construction, the JavaScript function <span style="font-style: italic;">JSFunctionName</span> is called using the old name and the new name of the renamed object as its two arguments. <br>
+
<span style="font-style: italic;">Exemple</span> : Déclarez d’abord, une fonction JS d'écoute :<br>
<span style="font-style: italic;">Example</span>: First, register a listening JavaScript function:<br>
+
<div style="margin-left: 40px;"><span style="font-family: monospace;">ggbApplet.registerRenameListener("monsuiviRenommer");</span> </div>
<div style="margin-left: 40px;"><span style="font-family: monospace;">ggbApplet.registerRenameListener("myRenameListenerFunction");</span> </div>
+
Dès qu’un objet "A" est renommé en "B", l’appliquette appelle la fonction <br>
When an object "A" is renamed to "B", the GeoGebra Applet will call the Javascript function<br>
+
  <div style="margin-left: 40px;"><span style="font-family: monospace;">monsuiviRenommer</span><span style="font-family: monospace;">("</span><span style="font-family: monospace;">A", "B");<br>
  <div style="margin-left: 40px;"><span style="font-family: monospace;">myRenameListenerFunction</span><span style="font-family: monospace;">("</span><span style="font-family: monospace;">A", "B");<br>
 
 
  </span></div>
 
  </span></div>
 
  </td>
 
  </td>
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td>void unregisterRenameListener(String objName)</td>
+
  <td>unregisterRenameListener(nom)</td>
  <td style="text-align: center;">3.0</td>
+
  <td>Retire le mouchard de changements de nom déclaré auparavant, voir <span style="font-style: italic;">registerRenameListener()</span></td>
<td>Removes a previously registered rename listener, see <span style="font-style: italic;">registerRenameListener()</span></td>
 
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td>void registerClearListener(String JSFunctionName)</td>
+
  <td>registerClearListener(fonctionJS)</td>
  <td style="text-align: center;">3.0</td>
+
  <td>Déclare une fonction JavaScript en tant que mouchard des <span style="font-weight: bold;">remises à zéro </span> dans l’appliquette de construction. Dès que la construction est remise à zéro (i.e. tous les objets sont supprimés), la fonction <span style="font-style: italic;">fonctionJS</span> est appelée sans argument. Note: tous les mouchards de modifications ne sont plus déclarés quand une construction est remise à zéro. Voir registerUpdateListener() et registerRemoveListener().<br>
  <td>Registers a JavaScript function as a <span style="font-weight: bold;">clear</span> listener for the applet's construction. Whenever the construction in the GeoGebraApplet is cleared (i.e. all objects are removed), the JavaScript function JSFunctionName is called using no arguments. Note: all update listeners are unregistered when a construction is cleared. See registerUpdateListener() and registerRemoveListener().<br>
+
<span style="font-style: italic;">Exemple</span> : Déclarez d’abord, une fonction JS d’écoute :<br>
<span style="font-style: italic;">Example</span>: First, register a listening JavaScript function:<br>
+
<div style="margin-left: 40px;"><span style="font-family: monospace;">ggbApplet.registerClearListener("suiviRAZ");</span> </div>
<div style="margin-left: 40px;"><span style="font-family: monospace;">ggbApplet.registerClearListener("myClearListenerFunction");</span> </div>
+
Quand la construction est remise à zéro , l’appliquette appelle la fonction <br>
When the construction is cleared (i.e. after reseting a construction or opening a new construction file), the GeoGebra Applet will call the Javascript function<br>
+
  <div style="margin-left: 40px;"><span style="font-family: monospace;">suiviRAZ</span><span style="font-family: monospace;">(</span><span style="font-family: monospace;">);</span></div>
  <div style="margin-left: 40px;"><span style="font-family: monospace;">myClearListenerFunction</span><span style="font-family: monospace;">(</span><span style="font-family: monospace;">);</span></div>
 
 
  </td>
 
  </td>
 
  </tr>
 
  </tr>
 
  <tr>
 
  <tr>
  <td>void unregisterClearListener(String JSFunctionName)</td>
+
  <td>unregisterClearListener(fonctionJS)</td>
  <td style="text-align: center;">3.0</td>
+
  <td>Retire le mouchard de remises à zéro déclaré auparavant, voir <span style="font-style: italic;">registerClearListener()</span></td>
<td>Removes a previously registered clear listener, see <span style="font-style: italic;">registerClearListener()</span></td>
 
 
  </tr>
 
  </tr>
 
</table>
 
</table>
  
= GeoGebra's XML format =
+
= Format XML de GeoGebra =
  
With these methods you can set everything in a construction (see [[Reference:Xml|XML Reference]] ).
+
Avec ces méthodes vous pouvez définir tout objet dans une construction. (voir [[Référence:Xml|Références XML ]] ).
 
<table style="width: 100%;" class="pretty">
 
<table style="width: 100%;" class="pretty">
 
     <tr>
 
     <tr>
       <th>Method Signature</th>
+
       <th>Méthode</th>
      <th style="text-align: center;">Since</th>
 
 
       <th>Description</th>
 
       <th>Description</th>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
       <td>void evalXML(String xmlString) </td>
+
       <td>evalXML(chaînexml) </td>
      <td style="text-align: center;">2.7</td>
+
       <td>Évalue la chaîne fournie et modifie la construction actuelle. Note: la construction n’est pas effacée avant l’évaluation de la chaîne XML.
       <td>Evaluates the given XML string and changes the current construction. Note: the construction is NOT cleared before evaluating the XML string.
 
 
       </td>
 
       </td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
       <td>void setXML(String xmlString) </td>
+
       <td>setXML(chaînexml) </td>
      <td style="text-align: center;">2.7</td>
+
       <td>Évalue la chaîne fournie et modifie la construction actuelle. Note: la construction est effacée avant l’évaluation de la chaîne XML. Cette méthode peut être utilisée pour charger des constructions.
       <td>Evaluates the given XML string and changes the current construction. Note: the construction is cleared before evaluating the XML string. This method could be used to load constructions.
 
 
       </td>
 
       </td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
       <td>String getXML()<br>
+
       <td>getXML()<br>
 
       </td>
 
       </td>
       <td style="text-align: center;">2.7</td>
+
       <td>Retourne l’actuelle construction sous forme d’une chaîne dans le format XML de GeoGebra. Cette méthode peut être utilisée pour sauver des constructions.
      <td>Returns the current construction in GeoGebra's XML format. This method could be used to save constructions.<br>
+
 
 +
<span style="font-style: italic;">Exemple</span> :
 +
<form name="nonof"><input type="button" value="get"
 +
onclick="document.nonof.nonot.value=document.ggbApplet.getXML()";">
 +
<textarea name="nonot" rows=8 cols=60> </textarea>
 +
</form>
 +
<br>
 
       </td>
 
       </td>
 
     </tr>
 
     </tr>
 
   <tr>
 
   <tr>
       <td>String getXML(String objName)<br>
+
       <td>getXML(nom)<br>
 
       </td>
 
       </td>
       <td style="text-align: center;">3.2</td>
+
       <td>Retourne uniquement la chaîne de construction XML de l’objet cité., i.e. seulement le paragraphe  &lt;element&gt;.
      <td>Returns the GeoGebra XML string for the given object, i.e. only the &lt;element&gt; tag is returned.
 
 
       </td>
 
       </td>
 
     </tr>
 
     </tr>
 
<tr>
 
<tr>
       <td>String getAlgorithmXML(String objName)<br>
+
       <td>getAlgorithmXML(nom)<br>
 
       </td>
 
       </td>
       <td style="text-align: center;">3.2</td>
+
       <td>
      <td>For a dependent GeoElement objName the XML string of the parent algorithm and all its output objects is returned. For a free GeoElement objName "" is returned.
+
Retourne une chaîne vide pour un objet libre.
 +
Retourne la chaîne de construction XML de l’ascendant (et de tous ses descendants) de l’objet cité pour un objet dépendant
 +
 
 
       </td>
 
       </td>
 
     </tr>
 
     </tr>
 
</table>
 
</table>
  
= Miscellaneous =
+
= Divers =
 
 
  
 
<table style="width: 100%;" class="pretty">
 
<table style="width: 100%;" class="pretty">
 
     <tr>
 
     <tr>
       <th>Method Signature</th>
+
       <th>Méthode</th>
      <th>Since</th>
 
 
       <th>Description</th>
 
       <th>Description</th>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
       <td>String evalMathPiper(String string) </td>
+
       <td>evalMathPiper(chaîne) </td>
       <td style="text-align: center;">3.2</td>
+
       <td>Passe la chaîne à MathPiper et retourne le résultat sous forme de chaîne.
      <td>Passes the string to MathPiper and returns the result as a String.
 
 
       </td>
 
       </td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
       <td>String getIPAddress()</td>
+
       <td>getIPAddress()</td>
       <td style="text-align: center;">3.2</td>
+
       <td>Retourne l'addresse IP  de l'ordinateur  sous forme de chaîne, par ex. "192.168.0.4"
      <td>Returns the IP address of the local computer as a String eg "192.168.0.4"
 
 
       </td>
 
       </td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
       <td>String getHostname() </td>
+
       <td>getHostname() </td>
       <td style="text-align: center;">3.2</td>
+
       <td>Retourne le nom d'hôte de l'ordinateur  sous forme de chaîne.
      <td>Returns the hostname of the local computer as a String
 
 
       </td>
 
       </td>
 
     </tr>
 
     </tr>
 
     <tr>
 
     <tr>
       <td>void debug(String string) </td>
+
       <td>debug(chaîne) </td>
       <td style="text-align: center;">3.2</td>
+
       <td>Écrit la chaîne dans la  Console Java  
      <td>Prints the string to the Java Console
 
 
       </td>
 
       </td>
 
     </tr>
 
     </tr>
  
 
</table>
 
</table>

Version du 11 décembre 2011 à 11:39

EN TRAVAUX !!! --Noel Lambert 10 décembre 2011 à 19:35 (CET)

--Noel Lambert 11 décembre 2011 à 10:39 (CET)


Description des méthodes publiques utilisables dans geogebra.GeoGebraApplet à l’aide de JavaScript par l’intermédiaire d’une page HTML.


Exemples

Exemple: le fragment de code HTML suivant ajoute un bouton "Réinitialiser" dans une page HTML, ce qui permet à l’utilisateur de ramener la construction affichée par GeoGebra dans son état initial :
<form>
<input type="button" value="Réinitialiser" onclick="document.applets[0].reset();">
</form>


Exemple: celui-ci ajoute deux boutons "Cacher A" et " Afficher A" pour changer l’état d’affichage de l’objet nommé “A" dans la construction
<form>
<input type="button" value="Cacher A" onclick="document.applets[0].setVisible('A', false);">
<input type="button" value="Afficher A" onclick="document.applets[0].setVisible('A', true);">
</form>


Exemple: Une fonction JavaScript "maConstruction()" est utilisée pour appeler plusieurs méthodes de l’appliquette GeoGebra.
Note : La langue est fixée à Français ("fr") avec le paramètre "language" dans la balise de l’appliquette afin de faire en sorte que la commande française "Droite" fonctionne.

<applet name="ggbApplet" code="geogebra.GeoGebraApplet" archive="geogebra.jar" width=200 height=40>
<param name ="fileName" value="circle.ggb">
<param name ="framePossible" value="false">
<param name ="language" value="fr">
<a href="http://www.java.com"> Installez Java 1.4.2</a> (ou supérieure) pour utiliser cette page.
</applet>

<script type="text/javascript">
function maConstruction() {
var applet = document.ggbApplet;
applet.evalCommand("A = (1,1)");
applet.evalCommand("B = (3,2)");
applet.evalCommand("s = Droite[A, B]");
}
</script>

<form>
<input type="button" value="Faire la construction" onclick="maConstruction();">
</form>


Exemple: Explorez le code source de l'exemple suivant qui utilise JavaScript.
http://www.geogebra.org/source/program/applet/geogebra_applet_javascript_test.htm


Exemple: Ceci est un exemple de fichier qui utilise un add listener pour savoir si une construction particulière a été complétée (et alors envoie le message "Well done").
http://www.geogebra.org/en/examples/javascriptAutomaticCheckingExercise.html


Méthodes utilisables

Méthode Description
evalCommand(commande) Évalue la chaîne comme si vous l’aviez entrée dans le champ de saisie [ex : evalCommand('s = Droite[A, B]')].
Vous pouvez utiliser plusieurs commandes en les séparant par "\n"
Note : Utilisez le paramètre “language” language parameter pour vous assurez que la commande de votre langue est reconnue.
void setUndoPoint() Sets an undo point. Useful if you want the user to be able to undo that action of evalCommand eg if you have made an HTML button to act as a custom tool

With these methods you can implement Applet to JavaScript communication. When you use any of the following methods, you should make sure to insert the MAYSCRIPT option add the end of the first line of your applet tag. For example:

 <applet name="ggbApplet" code="geogebra.GeoGebraApplet" codebase="." archive="geogebra.jar" width="500" height="250" MAYSCRIPT>

The MAYSCRIPT option is only needed for GeoGebraApplet to JavaScript communication; it is not needed for JavaScript to access the GeoGebraApplet methods.

For example, these methods can be used to

Définir l’état d’un objet

Méthodes générales

Méthode Description
deleteObject(nom) Efface l’objet cité.
Exemple: deleteObject('A')
setValue(nom, valeur) Affecte la valeur à l’objet cité
Exemple: setValue('n',36)
Note : Si cet objet n’est pas un nombre, rien ne se passe.
Si l’objet est un booléen, utiliser la valeur 1 pour le mettre à ‘Vrai’, n’importe quelle valeur pour le mettre à ‘Faux’.
setCoords(nom, x, y) Affecte les coordonnées à l’objet
Exemple: setCoords('A',-1,3)
Note : Si cet objet n’est ni point ni vecteur, rien ne se passe.
setColor(nom, rouge, vert, bleu) Affecte la couleur RVB à l’objet
Exemple: setColor('A',200,100,100)
setVisible(nom, booléen) Affiche (true) ou Cache (false) l’objet cité dans la vue Graphique
Exemple: setVisible('A',true)
setLabelVisible(nom, booléen) Affiche (true) ou Cache (false) l’étiquette de l’objet cité dans la vue Graphique
Exemple: setLabelVisible('A',false)
setLabelStyle(nom, booléen) Définit le style de l’étiquette de l’objet cité dans Graphique. Nom = 0, Nom & Valeur = 1, Valeur = 2 et Légende=3.
Exemple: setLabelStyle('A',1)
setFixed(nom, booléen) Définit la liberté de l’objet cité
Exemple: setFixed('A',true)
Note : Les objets fixes ne peuvent être modifiés.
setTrace(nom, booléen) Active ou non la trace de l’objet cité
Exemple: setTrace('A',false)
renameObject(ancien nom, nouveau nom) Renomme l’objet ancien nom en l’objet nouveau nom
setLayer(nom) Définit le calque de l’objet cité.
setLayerVisible(n°, booléen) Affiche ou cache tous les objets du calque n°
setLineStyle(nom,entier) Définit le style du trait (de 0 à 4)
setLineThickness(nom,entier) Définit l’épaisseur de l’objet (de 1 à 13) (1 par défaut)
setPointStyle(nom,entier) Définit le style du point (-1 par défaut, 0 disque, 1 cercle, 2 croix,3 plus, 4 diamant plein, 5 diamant vide, 6 triangle (nord), 7 triangle (sud), 8 triangle (est), 9 triangle (ouest))
setPointSize(nom,entier) Définit la taille du point (de 1 à 9)
setFilling(nom,nombre) Définit le remplissage de l’objet (de 0 à 1)

Animation automatique

Méthode Description
setAnimating(nom, booléen) Définit si l’objet cité peut être animé. Cela ne lance pas l'animation, utilisez startAnimation() pour le faire.
setAnimationSpeed(nom, nombre) Définit la vitesse d’animation de l’objet cité.
startAnimation() Lance l’animation pour les objets pouvant être animés.
stopAnimation() Arrête l’animation en cours.
isAnimationRunning() Retourne un booléen précisant si une animation est en cours ou non.

Connaître l’état d’un objet

Méthode Description
getXcoord(nom) Retourne l’abscisse de l’objet cité [ex : getXcoord('A')]. Note : Retourne 0 si l’objet n’est ni un point ni un vecteur.
getYcoord(nom) Retourne l’ordonnée de l’objet cité [ex : getYcoord('u')]. Note : Retourne 0 si l’objet n’est ni un point ni un vecteur.
getValue(nom) Retourne la valeur de l’objet cité ( longueur pour un segment, aire pour un polygone, etc.) [ex : getValue('poly1')]. Note : Retourne 0 s’il l’objet n’a pas de valeur associée. Si l’objet est un booléen, retourne 1 pour ‘Vrai’, 0 pour ‘Faux’.
getColor(nom) Retourne la couleur de l’objet cité sous forme d’une chaîne hexadécimale, par ex. : "#FF0000" pour rouge. Note la chaîne hexadécimale commence toujours par # et ne contient pas de lettres minuscules.
getVisible(nom) Retourne ‘true’ ou ‘false’ suivant que l’objet cité est affiché ou non dans la vue Graphique. Retourne ‘false’ si l'objet n'existe pas.
getValueString(nom) Retourne la valeur de l’objet cité sous forme de chaîne.
getDefinitionString(nom) Retourne la définition (l’info bulle) de l’objet cité.
getCommandString(nom) Retourne la commande à saisir pour créer l’objet cité.
getObjectType(nom) Retourne le type de l’objet cité sous forme de chaîne (comme "point", "line", "circle", etc. en Anglais !).
exists(nom) Retourne un booléen attestant l’existence ou non de l’objet cité dans la construction.
isDefined(nom) Retourne un booléen attestant la validité actuelle ou non de l’objet .
getObjectNumber() Retourne le nombre d’objets dans la construction.
getObjectName(n) Retourne le nom du n-ème objet de la construction (attention, le compteur commence à 0).
getLayer(nom) Retourne le numéro du calque de l’objet cité.
getLineStyle(nom) Retourne le style du trait (de 0 à 4)
getLineThickness(nom) Retourne l’épaisseur de l’objet (de 1 à 13) (1 par défaut)
getPointStyle(nom) Retourne le style du point (-1 par défaut, 0 disque, 1 cercle, 2 croix,3 plus, 4 diamant plein, 5 diamant vide, 6 triangle (nord), 7 triangle (sud), 8 triangle (est), 9 triangle (ouest))
getPointSize(nom) Retourne la taille du point (de 1 à 9)
getFilling(nom) Retourne le remplissage de l’objet (de 0 à 1)

Construction / Interface Utilisateur

Méthode Description
setMode(code du mode) Définit le mode au code fourni

[ex : setMode(0), pour mode Déplacer].

(voir toolbar reference et applet parameters "showToolBar" and  "customToolBar" )
openFile(URL) Ouvre le fichier dont l’URL est donnée sous forme absolue ou relative)[ex : openFile('fichier.ggb')].
reset() Réinitialise la construction.
refreshViews() Rafraîchit l’affichage. Note : cela efface toutes les traces dans la vue Graphique.
setOnTheFlyPointCreationActive(booléen)
Autorise (true) ou non (false) la création de points "à la volée". Note: A utiliser si vous ne désirez pas que les outils créent des points.
hideCursorWhenDragging(booléen)
Affiche(true) ou non (false) le curseur de la souris quand on déplace un object.
setRepaintingActive(booléen)
Active (true) ou non (false) le recalcul de la figure). Note : cette méthode est surtout à utiliser quand vous utilisez plusieurs méthodes.
setErrorDialogsActive(boolean flag) Bascule pour l’affichage ou non du dialogue d’erreur. Note: c'est très utile avec l'utilisation de evalCommand().
setCoordSystem(xmin, xmax,ymin,ymax) Définit la fenêtre graphique

[ex : setCoordSystem(-5,10,-1,20)].

setAxesVisible(booléen, booléen) Affiche (true) ou Cache (true) indépendamment chacun des axes [ex : setAxesVisible(true, false)].
setGridVisible(booléen) Affiche (true) ou Cache (true) la grille.

Communication de GeoGebraApplet à JavaScript

Avec ces méthodes vous pouvez implémenter une communication de l’appliquette au JavaScript. Quand vous utilisez une des méthodes suivantes, vous devez vous assurer que vous avez inséré l’option MAYSCRIPT à la fin de la ligne d’appel de l’appliquette.

Par exemple :

<applet name="ggbApplet" code="geogebra.GeoGebraApplet" codebase="." archive="geogebra.jar" width="500" height="250" MAYSCRIPT>. L'option MAYSCRIPT n'est seulement nécessaire que pour la communication de GeoGebraAppletavec JavaScript ; ellen'est pas nécessaire à JavaScript pour accéder au méhtodes de GeoGebraApplet. Par exemple, ces méthodes peuvent être utilisées pour :

Méthode Description
void registerAddListener(String JSFunctionName) Registers a JavaScript function as an add listener for the applet's construction. Whenever a new object is created in the GeoGebraApplet's construction, the JavaScript function JSFunctionName is called using the name of the newly created object as its single argument.

Example: First, register a listening JavaScript function:

ggbApplet.registerAddListener("myAddListenerFunction");

When an object "A" is created, the GeoGebra Applet will call the Javascript function

myAddListenerFunction("A");
unregisterAddListener(nom) Retire un mouchard d’ajouts déclaré auparavant, voir registerAddListener()
registerRemoveListener(fonctionJS) Déclare une fonction JavaScript en tant que mouchard des retraits dans l’appliquette de construction.

Dès qu’un objet est supprimé, la fonction fonctionJSJS est appelée avec comme argument le nom de l’objet effacé. Note : Quand une construction est mise à zéro, le mouchard n’est pas appelé pour chacun des objets élémentaires, voir registerClearListener(). Exemple : Déclarez d’abord, une fonction JS d’écoute :

ggbApplet.registerRemoveListener("suiviRetrait");

Dès qu’un objet "A" est effacé, l’appliquette GeoGebra appelle ;


la fonction
suiviRetrait("A");
unregisterRemoveListener(nom) Retire un mouchard de retraits déclaré auparavant, voir registerRemoveListener()
registerUpdateListener(fonctionJS) Déclare une fonction JavaScript en tant que mouchard des modifications dans l’appliquette de construction. Dès qu’un objet quelconque est modifié, la fonction fonctionJSest appelée avec comme argument le nom de l’objet modifié.

Note : si vous voulez suivre les modifications d’un seul objet utilisez plutôt registerObjectUpdateListener(). Exemple : Déclarez d’abord, une fonction JS d’écoute :

ggbApplet.registerUpdateListener("suiviModifs");

Dès que l’objet "A" est modifié, l’appliquette GeoGebra appelle la fonction

suiviModifs("A");
unregisterUpdateListener(nom) Retire un mouchard de modifications déclaré auparavant, voir registerUpdateListener()
registerObjectUpdateListener(nom, fonctionJS) Déclare une fonction JavaScript en tant que mouchard des modifications pour un simple objet dans l’appliquette de construction. Dès que l’objet suivi est modifié, la fonction fonctionJS est appelée avec comme argument le nom de l’objet modifié. Si l’objet avait auparavant une valeur par la fonction JS, l’ancienne valeur est actualisée. Note: toutes les écoutes de modifications d’objets sont effacées quand l’objet associé est supprimé ou que la construction est remise à zéro, voir registerRemoveListener() et registerClearListener().

Exemple : Déclarez d’abord, une fonction JS d’écoute :

ggbApplet.registerObjectUpdateListener("A", "monsuiviA");

Dès que A est modifié, l’appliquette appelle la fonction

monsuiviA("A");

Note : un mouchard de modifications d’un objet continue à fonctionner après que cet objet ait été renommé.

unregisterObjectUpdateListener(nom) Retire le mouchard de modifications de l’objet cité, voir registerObjectUpdateListener()
registerRenameListener(fonctionJS) Déclare une fonction JavaScript en tant que mouchard des changements de nom dans l’appliquette de construction. Dès qu’un objet est renommé, la fonction fonctionJS est appelée avec comme argument l’ancien nom de l’objet et le nouveau.

Exemple : Déclarez d’abord, une fonction JS d'écoute :

ggbApplet.registerRenameListener("monsuiviRenommer");

Dès qu’un objet "A" est renommé en "B", l’appliquette appelle la fonction

monsuiviRenommer("A", "B");
unregisterRenameListener(nom) Retire le mouchard de changements de nom déclaré auparavant, voir registerRenameListener()
registerClearListener(fonctionJS) Déclare une fonction JavaScript en tant que mouchard des remises à zéro dans l’appliquette de construction. Dès que la construction est remise à zéro (i.e. tous les objets sont supprimés), la fonction fonctionJS est appelée sans argument. Note: tous les mouchards de modifications ne sont plus déclarés quand une construction est remise à zéro. Voir registerUpdateListener() et registerRemoveListener().

Exemple : Déclarez d’abord, une fonction JS d’écoute :

ggbApplet.registerClearListener("suiviRAZ");

Quand la construction est remise à zéro , l’appliquette appelle la fonction

suiviRAZ();
unregisterClearListener(fonctionJS) Retire le mouchard de remises à zéro déclaré auparavant, voir registerClearListener()

Format XML de GeoGebra

Avec ces méthodes vous pouvez définir tout objet dans une construction. (voir Références XML ).

Méthode Description
evalXML(chaînexml) Évalue la chaîne fournie et modifie la construction actuelle. Note: la construction n’est pas effacée avant l’évaluation de la chaîne XML.
setXML(chaînexml) Évalue la chaîne fournie et modifie la construction actuelle. Note: la construction est effacée avant l’évaluation de la chaîne XML. Cette méthode peut être utilisée pour charger des constructions.
getXML()
Retourne l’actuelle construction sous forme d’une chaîne dans le format XML de GeoGebra. Cette méthode peut être utilisée pour sauver des constructions.

Exemple :

<form name="nonof"><input type="button" value="get" 
onclick="document.nonof.nonot.value=document.ggbApplet.getXML()";">
<textarea name="nonot" rows=8 cols=60> </textarea>
</form>


getXML(nom)
Retourne uniquement la chaîne de construction XML de l’objet cité., i.e. seulement le paragraphe <element>.
getAlgorithmXML(nom)

Retourne une chaîne vide pour un objet libre. Retourne la chaîne de construction XML de l’ascendant (et de tous ses descendants) de l’objet cité pour un objet dépendant

Divers

Méthode Description
evalMathPiper(chaîne) Passe la chaîne à MathPiper et retourne le résultat sous forme de chaîne.
getIPAddress() Retourne l'addresse IP de l'ordinateur sous forme de chaîne, par ex. "192.168.0.4"
getHostname() Retourne le nom d'hôte de l'ordinateur sous forme de chaîne.
debug(chaîne) Écrit la chaîne dans la Console Java
© 2024 International GeoGebra Institute