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();
    }
}