A camada de Apresentação

Relativamente à camada de apresentação, normalmente apenas é necessário desenvolver as classes que representam os menus da aplicação. As restantes entidades desta camada já estão concretizada na framework po-uilib. A interacção com o utilizador desta aplicação é feita através de dois menus, o menu principal e um submenu que oferece um conjunto de operações que permitem editar as entidades desta aplicação.

O menu principal da aplicação é o primeiro menu que aparece quando a aplicação começa a sua execução. Nesta aplicação, este menu vai ter 3 opções:

  1. apresentar os números inseridos - funcionalidade concretizada pela classe ListNumbers;
  2. apresentar a quantidade de números guardados - funcionalidade concretizada por ShowNumberOfIntegers;
  3. e apresentar o menu de edição - funcionalidade concretizada por ShowEditMenu.
De seguida apresenta-se a classe MainMenu que concretiza o menu principal:
import ex.core.IntegerManager;
import pt.tecnico.uilib.menus.Menu;

public class MainMenu extends Menu {

    //Constructor
    public MainMenu(IntegerManager ent) {
        super("MENU PRINCIPAL",
              new ListNumbers(ent), new ShowNumberOfIntegers(ent), new ShowEditMenu(ent)
              ); 
    }
}


O submenu da aplicação vai oferecer duas opções (suportadas pelas classes AddNumber e RemoveNumber) que permitem adicionar e remover números à série de números guardada pela aplicação. Este menu é concretizado pela classe EditMenu:


package ex.app.edit;

import ex.core.IntegerManager;
import pt.tecnico.uilib.menus.Menu;

public class EditMenu extends Menu {
  //Constructor
  public EditMenu(IntegerManager ent) {
    super("Mneu De Edição",
          new AddNumber(ent), new RemoveNumber(ent)
          ); 
  }
}

Por uma questão de simplificação da organização do código da aplicação cada menu é colocado no mesmo package dos serviços representados pelo menu. Por exemplo, o menu EditMenu pertence aos mesmo package que o serviço AddNumber.