Interazione con l'utente

Questo esempio illustra come utilizzare i metodi API forniti per richiedere input o fornire informazioni all'utente tramite un messaggio.

var macro = createMacro(function*(){
	'use strict';
	
	// L'oggetto "ui" fornisce funzioni per richiedere informazioni all'utente e visualizzare informazioni
	
	// Dichiarare variabili da utilizzare successivamente
	var username;
	var password;
	var flavor;
	var scoops;
	
	//Begin Generated Macro
	var ps = session.getPresentationSpace();
	
	try {
		// Richiedere all'utente di immettere il proprio nome e memorizzarlo in una variabile.
		// Notare che la parola chiave 'yield' è necessaria per bloccare l'esecuzione in attesa dell'input dell'utente.
		username = yield ui.prompt('Please enter your username');
		
		// Richiedere all'utente di immettere un valore, proponendo una risposta predefinita.
		flavor = yield ui.prompt('What is your favorite flavor of ice cream?', 'Chocolate');
		
		// Richiedere all'utente di immettere informazioni riservate utilizzando l'opzione 'mask'. Durante l'immissione il testo sarà nascosto.
		// Se un parametro non viene utilizzato, è possibile usare 'null' per specificare che non deve essere usato.
		// Qui lo illustriamo specificando che non è necessario mostrare un valore predefinito.
		password = yield ui.prompt('Please enter your password', null, true);
		
		// La funzione prompt restituisce null se l'utente fa clic sul pulsante 'Cancel' anziché sul pulsante 'OK'.
		// Un modo per gestire questo caso consiste nell'eseguire il wrapping della chiamata in un blocco try/catch.
		scoops = yield ui.prompt('How many scoops would you like?');
		if (scoops === null) {
			// Termina la macro.
			return;
			// In alternativa potrebbe generare un Error che potrebbe essere catturato nel "catch" sotto
		}
	// Utilizzare i valori raccolti per ordinare il gelato
		ps.sendKeys(username + ControlKey.TAB + password + ControlKey.ENTER);
		yield wait.forCursor(new Position(5, 1));
		ps.sendKeys(flavor + ControlKey.TAB + scoops + ControlKey.ENTER);
		
		// Visualizzare un messaggio all'utente. Utilizzando la parola chiave 'yield' davanti alla chiamata,
		// l'esecuzione della macro verrà bloccata fino a quando l'utente sceglie il pulsante 'OK'.
		yield ui.message('Order successful. Enjoy your ' + scoops + ' scoops of ' + flavor + ' ice cream ' + username + '!');
	} catch (error) {
		// Qui abbiamo usato l'oggetto ui per visualizzare un messaggio che informa che si è verificato un errore
		yield ui.message(error.message);
	}
	//Fine della macro generata
	
});

return macro();