Dado que apenas é necessário ler um inteiro, o formulário apenas irá conter um pedido do tipo InputInteger, o qual tem que ser criado e adicionado ao formulário. Uma forma mais rápida de especificar o código para criar o pedido e associá-lo ao formulário é utilizar um dos vários métodos add disponíveis na classe Form. Existe um método add para cada tipo de dados a inserir pelo utilizador. Neste exemplo é utilizado o método addInputInteger, o qual recebe a mensagem a colocar no pedido e cria o pedido, associa o pedido criado ao formulário e devolve uma referência para o pedido criado. Utilizando esta abordagem, o método execute do comando apenas terá que invocar o método parse sobre o formulário do comando e depois aceder ao valor inserido para cada pedido invocando método value() sobre o pedido.
package ex.app.edit;
/**
* This command adds a new number to the list of numbers kept by the applcation.
**/
import ex.core.IntegerManager;
import pt.tecnico.po.ui.Command;
import pt.tecnico.po.ui.DialogException;
import pt.tecnico.po.ui.Input;
public class AddNumber extends Command<IntegerManager> {
/** Number to read. */
private Input<Integer> _number;
//Constructor
public AddNumber(IntegerManager ent) {
super("Adicionar Número", ent);
_number = _form.addIntegerInput("Introduza um número: ");
}
protected void execute() { // executed when this option is selected
_form.parse();
if (_receiver.addNumber(_number.value()))
_display.addLine("Número adicionado: " + _number.value());
else
_display.addLine("Número não adicionado");
_display.display();
}
}