Riferimenti:API delle app GeoGebra

Da GeoGebra Manual.

Questo documento descrive i metodi pubblici disponibili in geogebra.GeoGebraApplet e utilizzabili in una pagina HTML con JavaScript.

Esempi

Esempio 1: il seguente frammento di codice HTML aggiunge un pulsante "Ripristina" a una pagina HTML, in modo da consentire all'utente il ripristino della costruzione allo stato iniziale:

 <form>
   <input type="button" value="Ripristina" onclick="document.applets[0].reset();">
 </form>

Esempio 2: questo codice aggiunge i pulsanti "Nascondi A" e "Mostra A", per modificare lo stato di visibilità di un oggetto di nome "A" presente nella costruzione:

 <form>
   <input type="button" value="Nascondi A" onclick="document.applets[0].setVisible('A', false);">
   <input type="button" value="Mostra A" onclick="document.applets[0].setVisible('A', true);">
 </form>

Esempio 3: una funzione JavaScript "miaPiccolaCostruzione()" è utilizzata per chiamare alcuni metodi di GeoGebraApplet. Nota: la lingua è impostata in Italiano ("it"), utilizzando il parametro "language" nelle tag dell'applet, per fare in modo che sia riconosciuto il comando Retta nella versione italiana.

 <applet name="ggbApplet" code="geogebra.GeoGebraApplet"
   archive="geogebra.jar"
   codebase="http://jars.geogebra.org/webstart/4.0/unsigned/"
   width=200 height=40>
 <param name="filename" value="circonf.ggb">
 <param name="framePossible" value="false">
 <param name="language" value="it">
 Installare <a href="http://www.java.com"> Java 1.4.2 </a> (o successivi) per utilizzare questa pagina.
 </applet>
 <script type="text/javascript">
   function miaPiccolaCostruzione() {
     var applet = document.ggbApplet;
     applet.evalCommand("A = (1,1)"); 
     applet.evalCommand("B = (3,2)"); 
     applet.evalCommand("s = Retta[A, B]"); 
   }
 </script>
 <form>
   <input type="button" value="Esegui costruzione" onclick="miaPiccolaCostruzione();">
 </form>

Esempio 4: Date un'occhiata al codice sorgente del seguente foglio di lavoro, che utilizza JavaScript.

 http://www.geogebra.org/source/program/applet/geogebra_applet_javascript_test.htm

Esempio 5: Questo foglio di lavoro utilizza un add listener in modo da verificare se è già stata completata una precedente costruzione (nel cui caso appare la scritta "Well done").

 http://www.geogebra.org/en/examples/javascriptAutomaticCheckingExercise.html

Metodi disponibili

Segnatura del metodo Da Descrizione
boolean evalCommand(Stringa cmdString) 3.0 Valuta la stringa come se fosse digitata direttamente nella barra di inserimento di GeoGebra. Restituisce se la valutazione del comando ha avuto successo.
A partire da GeoGebra 3.2 è possibile passare più comandi contemporaneamente, separandoli con \n.
Nota: utilizzare il parametro language per fare in modo che siano applicati i comandi localizzati nella lingua corrente.
void setUndoPoint() 3.2 Imposta un punto di annullamento. Utile se si vuole fare in modo che l'utente possa annullare l'azione di evalCommand, ad esempio nel caso in cui sia stato creato un pulsante HTML che agisce da strumento personalizzato

Con questi metodi è possibile implementare la comunicazione da Applet a JavaScript. Utilizzando uno dei seguenti metodi, assicurarsi di avere inserito l'opzione MAYSCRIPT al termine della prima riga del tag dell'applet. Ad esempio:

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

L'opzione MAYSCRIPT è necessaria solo per le comunicazioni da GeoGebraApplet a JavaScript; non è invece richiesta affinché JavaScript possa accedere ai metodi di GeoGebraApplet.

Ad esempio, i seguenti metodi possono essere utilizzati per:

Impostare lo stato degli oggetti

Metodi generali

Segnatura del metodo Da Descrizione
void deleteObject(Stringa objName) 2.7 Elimina l'oggetto avente il nome indicato.
void setValue(Stringa objName, doppio valore) 3.2 Imposta il doppio valore dell'oggetto avente il nome indicato. Nota: se l'oggetto specificato è una variabile booleana, utilizzare il valore 1 per impostarlo come true e un qualsiasi altro valore per impostarlo come false. Per oggetti di tipo diverso, non si ha alcun effetto.
void setCoords(Stringa objName, doppio x, doppio y) 3.0 Imposta le coordinate dell'oggetto avente il nome indicato. Nota: se l'oggetto specificato non è un punto o un vettore, non si ha alcun effetto.
void setColor(Stringa objName, intero rosso, intero verde, intero blu) 2.7 Imposta il colore dell'oggetto avente il nome indicato.
void setVisible(Stringa objName, booleano visibilità) 2.7 Imposta o nasconde nella Vista Grafica l'oggetto avente il nome indicato.
void setLabelVisible(Stringa objName, booleano visibilità) 3.0 Imposta o nasconde nella Vista Grafica l'etichetta dell'oggetto avente il nome indicato.
void setLabelStyle(Stringa objName, booleano visibilità) 3.0 Imposta lo stile dell'etichettatura nella Vista Grafica dell'oggetto indicato. Gli stili di etichettatura disponibili sono NAME = 0, NAME_VALUE = 1, VALUE = 2 e (da GeoGebra 3.2) CAPTION = 3
void setFixed(Stringa objName, booleano flag) 3.0 Imposta l'oggetto indicato come fissato. Nota: gli oggetti fissati non possono essere modificati.
void setTrace(Stringa objName, booleano flag) 3.0 Attiva o disattiva la traccia dell'oggetto indicato.
boolean renameObject(Stringa oldObjName, Stringa newObjName) 3.2 Rinomina oldObjName in newObjName. Indica se l'operazione ha avuto successo
void setLayer(Stringa objName) 3.2 Imposta il livello dell'oggetto
void setLayerVisible(intero livello, booleano visibilità) 3.2 Mostra o nasconde tutti gli oggetti appartenenti al livello indicato
void setLineStyle(Stringa objName, intero stile) 3.2 Imposta lo stile della linea dell'oggetto indicato (da 0 a 4)
void setLineThickness(Stringa objName, intero spessore) 3.2 Imposta lo spessore dell'oggetto (da 1 a 13, -1 è l'impostazione predefinita)
void setPointStyle(Stringa objName, intero stile) 3.2 Imposta lo stile dei punti (-1 predefinito, 0 pallino pieno, 1 pallino vuoto, 2 croce, 3 più, 4 rombo pieno, 5 rombo vuoto, 6 triangolo (nord), 7 triangolo (sud), 8 triangolo (est), 9 triangolo (ovest))
void setPointSize(Stringa objName, intero dimensione) 3.2 Imposta le dimensioni di un punto (da 1 a 9)
void setFilling(Stringa objName, doppio riempimento) 3.2 Imposta il riempimento di un oggetto (da 0 a 1)

Animazione automatica

Segnatura del metodo Da Descrizione
void setAnimating(Stringa objName, booleano animazione) 3.2 Imposta la possibilità di animare un oggetto. Per avviare l'animazione utilizzare startAnimation().
void setAnimationSpeed(Stringa objName, doppio velocità) 3.2 Imposta la velocità di animazione di un oggetto.
void startAnimation() 3.2 Avvia l'animazione automatica di tutti gli oggetti con impostata una flag di animazione, vedere setAnimating()
void stopAnimation() 3.2 Interrompe l'animazione di tutti gli oggetti con impostata una flag di animazione, vedere setAnimating()
boolean isAnimationRunning() 3.2 Restituisce se un'animazione automatica è attiva o no.

Ottenere lo stato degli oggetti

Segnatura del metodo Da Descrizione
double getXcoord(Stringa objName) 2.7 Restituisce l'ascissa dell'oggetto avente il nome indicato. Nota: restituisce 0 se l'oggetto non è un punto o un vettore.
double getYcoord(Stringa objName) 2.7 Restituisce l'ordinata dell'oggetto avente il nome indicato. Nota: restituisce 0 se l'oggetto non è un punto o un vettore.
double getValue(Stringa objName) 3.2 Restituisce il doppio valore dell'oggetto indicato (ad es. la lunghezza di un segmento, l'area di un poligono). Nota: restituisce 1 se l'oggetto è una variabile booleana a valore true. In ogni altro caso restituisce 0.
String getColor(Stringa objName) 2.7 Restituisce il colore dell'oggetto indicato sotto forma di stringa esadecimale, ad es. "#FF0000" è il rosso. La stringa esadecimale inizia sempre con # e non contiene lettere minuscole.
boolean getVisible(Stringa objName) 3.2 Restituisce true o false a seconda che l'oggetto sia visibile o meno nella Vista Grafica. Restituisce false se l'oggetto non esiste.
String getValueString(Stringa objName) 2.7 Restituisce una stringa contenente il valore dell'oggetto indicato.
String getDefinitionString(Stringa objName) 2.7 Restituisce una stringa contenente la definizione dell'oggetto indicato.
String getCommandString(Stringa objName) 2.7 Restituisce una stringa contenente il comando dell'oggetto indicato.
String getObjectType(Stringa objName) 2.7 Restituisce una stringa contenente il tipo dell'oggetto indicato (come"punto", "retta", "circonferenza", ecc.).
boolean exists(Stringa objName) 2.7 Restituisce se un oggetto avente il nome indicato esiste o meno nella costruzione.
boolean isDefined(Stringa objName) 2.7 Restituisce se il valore dell'oggetto indicato è correntemente valido.
String [] getAllObjectNames()
Sconsigliato dalla v. 3.0
2.7 Restituisce una matrice contenente i nomi di tutti gli oggetti presenti nella costruzione. Nota: l'utilizzo di matrici in JavaScript crea problemi con alcuni browser. Utilizzare preferibilmente getObjectNumber() e getObjectName().
int getObjectNumber() 3.0 Restituisce il numero di oggetti nella costruzione.
String getObjectName(intero i) 3.0 Restituisce il nome dell'n-esimo oggetto della costruzione.
String getLayer(Stringa objName) 3.2 Restituisce il livello a cui appartiene l'oggetto.
int getLineStyle(Stringa objName) 3.2 Rileva lo stile della linea dell'oggetto indicato (da 0 a 4)
int getLineThickness(Stringa objName) 3.2 Rileva lo spessore della linea (da 1 a 13)
int getPointStyle(Stringa objName) 3.2 Rileva lo stile dei punti (-1 predefinito, 0 pallino pieno, 1 pallino vuoto, 2 croce, 3 più, 4 rombo pieno, 5 rombo vuoto, 6 triangolo (nord), 7 triangolo (sud), 8 triangolo (est), 9 triangolo (ovest))
int getPointSize(Stringa objName) 3.2 Rileva la dimensione di un punto (da 1 a 9)
double getFilling(Stringa objName) 3.2 Rileva il riempimento di un oggetto (da 0 a 1)

Costruzione / Interfaccia utente

Segnatura del metodo Da Descrizione
void setMode(int mode) 2.7 Imposta la modalità mouse (cioè come strumento) nella Vista Grafica (vedere Riferimenti: barra degli strumenti e i parametri dell'applet "showToolBar" and  "customToolBar" )
void openFile(Stringa strURL) 2.7 Apre una costruzione presente in un file (indicato da una stringa con URL assoluto o relativo)
void reset() 2.7 Ricarica la costruzione iniziale (indicata nel parametro filename) dell'applet corrente.
void refreshViews() 2.7 Aggiorna tutte le Viste. Nota: tutte le tracce presenti nella Vista Grafica saranno eliminate.
void setOnTheFlyPointCreationActive(booleano flag)
3.2 Attiva (true) o disattiva (false) la creazione immediata di punti nella Vista Grafica. Nota: è utile quando si vuole evitare la creazione di punti come "effetto collaterale" di uno strumento. Ad esempio, quando questa flag è false, lo strumento "Retta - per due punti" non crea punti quando si fa clic nella Vista Grafica.
void hideCursorWhenDragging(booleano flag)
3.2 Nasconde (true) o mostra (false) il cursore del mouse (puntatore) quando si trascina un oggetto per modificare la costruzione.
void setRepaintingActive(booleano flag)
2.7 Attiva (true) o disattiva (false) il repaint dell'applet. Nota: questo metodo è efficiente specialmente quando vengono invocati più metodi.
void setErrorDialogsActive(booleano flag) 3.0 Attiva (true) o disattiva (false) la visualizzazione di finestre di dialogo relative agli errori. Nota: molto utile se utilizzato assieme a evalCommand().
void setCoordSystem(doppio xmin, doppio xmax, doppio ymin, doppio ymax) 3.0 Imposta il sistema di coordinate cartesiane della Vista Grafica.
void setAxesVisible(booleano asseX, booleano asseY) 3.0 Mostra o nasconde gli assi x e y del sistema di coordinate della Vista Grafica.
void setGridVisible(booleano flag) 3.0 Mostra o nasconde la griglia della Vista Grafica.

Comunicazione tra GeoGebraApplet e JavaScript

I seguenti metodi consentono l'implementazione della comunicazione tra Applet e JavaScript. Assicurarsi di avere inserito l'opzione MAYSCRIPT al termine della prima riga di tag dell'applet ogni volta che si utilizzano i metodi indicati di seguito. Ad esempio:

<applet name="ggbApplet" code="geogebra.GeoGebraApplet" codebase="." archive="geogebra.jar" width="500" height="250" MAYSCRIPT>. L'opzione MAYSCRIPT è necessaria solo per la comunicazione da GeoGebraApplet a JavaScript; non è necessaria a JavaScript per accedere ai metodi di GeoGebraApplet. Ad esempio, questi metodi possono essere utilizzati per:

Segnatura del metodo Da Descrizione
void registerAddListener(Stringa JSFunctionName) 3.0 Registra una funzione JavaScript come add listener per la costruzione dell'applet. Ogniqualvolta viene creato un nuovo oggetto nella costruzione della GeoGebraApplet, viene chiamata la funzione JavaScript JSFunctionName, avente come singolo argomento il nome dell'oggetto appena creato.

Esempio: Registrare innanzitutto una funzione listener JavaScript:

ggbApplet.registerAddListener("myAddListenerFunction");

Quando viene creato un oggetto "A", l'applet di GeoGebra chiama la funzione Javascript

myAddListenerFunction("A");
void unregisterAddListener(Stringa objName) 3.0 Rimuove un add listener precedentemente registrato, vedere registerAddListener()
void registerRemoveListener(String JSFunctionName) 3.0 Registra una funzione JavaScript come remove listener per la costruzione dell'applet. Ogniqualvolta un oggetto viene eliminato dalla costruzione presente in GeoGebraApplet, viene chiamata la funzione JavaScript JSFunctionName utilizzando come singolo argomento il nome dell'oggetto eliminato. Nota: quando si cancella tutta la costruzione, remove non viene chiamato per ogni singolo oggetto: vedere registerClearListener().

Esempio: Registrare innanzitutto una funzione listener JavaScript:

ggbApplet.registerRemoveListener("myRemoveListenerFunction");

Quando viene eliminato un oggetto "A", l'applet di GeoGebra chiama la funzione Javascript

myRemoveListenerFunction("A");
void unregisterRemoveListener(Stringa objName) 3.0 Rimuove un remove listener precedentemente registrato, vedere registerRemoveListener()
void registerUpdateListener(Stringa JSFunctionName) 3.0 Registra una funzione JavaScript come update listener per la costruzione dell'applet. Ogniqualvolta un oggetto viene aggiornato nella costruzione presente in GeoGebraApplet, viene chiamata la funzione JavaScript JSFunctionName utilizzando come singolo argomento il nome dell'oggetto aggiornato. Nota: se si desidera un listen relativo esclusivamente all'aggiornamento di un determinato oggetto, è meglio utilizzare registerObjectUpdateListener() .

Esempio: Registrare innanzitutto una funzione listener JavaScript:

ggbApplet.registerUpdateListener("myUpdateListenerFunction");

Quando viene aggiornato un oggetto "A", l'applet di GeoGebra chiama la funzione Javascript

myUpdateListenerFunction("A");
void unregisterUpdateListener(Stringa objName) 3.0 Rimuove un update listener precedentemente registrato, vedere registerUpdateListener()
void registerObjectUpdateListener(Stringa objName, Stringa JSFunctionName) 3.0 Registra una funzione JavaScript come update listener per un singolo oggetto. Ogniqualvolta l'oggetto avente il nome indicato viene aggiornato, viene chiamata la funzione JavaScript JSFunctionName utilizzando come singolo argomento il nome dell'oggetto aggiornato. Se objName è stato precedentemente associato a una funzione mapping JavaScript, verrà sostituito il valore precedente. Nota: quando la costruzione viene cancellata, o un oggetto viene eliminato, i listener aggiornati relativi alla costruzione o all'oggetto vengono rimossi dalla registrazione: vedere registerRemoveListener() and registerClearListener().

Esempio: Registrare innanzitutto una funzione listener JavaScript:

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

Quando viene aggiornato un oggetto "A", l'applet di GeoGebra chiama la funzione Javascript

myAupdateListenerFunction("A");

Nota: un update listener di un oggetto continua a funzionare anche dopo che l'oggetto viene rinominato.

void unregisterObjectUpdateListener(Stringa objName) 3.0 Rimuove un update listener precedentemente registrato relativo all'oggetto avente il nome indicato, vedere registerObjectUpdateListener()
void registerRenameListener(Stringa JSFunctionName) 3.0 Registra una funzione JavaScript come rename listener per la costruzione dell'applet. Ogniqualvolta un oggetto viene rinominato nella costruzione, viene chiamata la funzione JavaScript JSFunctionName avente per argomenti il vecchio nome e il nuovo nome dell'oggetto.

Esempio: Registrare innanzitutto una funzione listener JavaScript:

ggbApplet.registerRenameListener("myRenameListenerFunction");

Quando un oggetto "A" viene rinominato come "B", l'applet di GeoGebra chiama la funzione Javascript

myRenameListenerFunction("A", "B");
void unregisterRenameListener(Stringa objName) 3.0 Rimuove un rename listener precedentemente registrato, vedere registerRenameListener()
void registerClearListener(String JSFunctionName) 3.0 Registra una funzione JavaScript come clear listener per la costruzione dell'applet. Ogniqualvolta la costruzione in GeoGebraApplet viene svuotata (cioè vengono rimossi tutti gli oggetti), viene chiamata la funzione JavaScript JSFunctionName, senza argomenti. Nota: quando una costruzione viene svuotata tutte le registrazioni relative agli update listener vengono rimosse. Vedere registerUpdateListener() e registerRemoveListener().

Esempio: Registrare innanzitutto una funzione listener JavaScript:

ggbApplet.registerClearListener("myClearListenerFunction");

Quando la costruzione viene svuotata (cioè all'apertura di un nuovo file o dopo un ripristino della costruzione), l'applet di GeoGebra chiama la funzione Javascript

myClearListenerFunction();
void unregisterClearListener(Stringa JSFunctionName) 3.0 Rimuove un clear listener precedentemente registrato, vedere registerClearListener()

Il formato XML di GeoGebra

Con questi metodi è possibile impostare la costruzione (vedere Riferimenti XML ).

Segnatura del metodo Da Descrizione
void evalXML(Stringa xmlString) 2.7 Valuta la stringa XML e modifica di conseguenza la costruzione corrente. Nota: la costruzione NON viene svuotata dai relativi elementi prima della valutazione della stringa XML.
void setXML(Stringa xmlString) 2.7 Valuta la stringa XML e modifica di conseguenza la costruzione corrente. Nota: la costruzione viene svuotata dai relativi elementi prima della valutazione della stringa XML. Questo metodo può essere utilizzato per caricare le costruzioni.
String getXML()
2.7 Restituisce la costruzione corrente in formato XML di GeoGebra. Questo metodo può essere utilizzato per salvare le costruzioni.
String getXML(Stringa objName)
3.2 Restituisce la stringa XML di GeoGebra relativa all'oggetto indicato, cioè viene restituito solo il tag dell'<elemento>.
String getAlgorithmXML(Stringa objName)
3.2 Viene restituita la stringa XML dell'algoritmo ascendente e di tutti gli oggetti generati dall'elemento objName di GeoGebra. Se objName è libero viene restituito "" .

Varie

Segnatura del metodo Da Descrizione
String evalMathPiper(stringa Stringa) 3.2 Passa la stringa a MathPiper e restituisce il risultato come Stringa.

Rimosso in GeoGebra 4.0 - sarà sostituito in GeoGebra 4.2 da evalGeoGebraCAS()

String getIPAddress() 3.2 Restituisce l'indirizzo IP del computer locale come Stringa - ad es.v"192.168.0.4"
String getHostname() 3.2 Restituisce il nome host del computer locale come Stringa
void debug(stringa Stringa) 3.2 Stampa la Stringa nella Java Console

en:Reference:JavaScript es:Referencia:JavaScript fr:Référence:JavaScript

© 2024 International GeoGebra Institute