Ponto de entrada da aplicação


De um modo geral, o ponto de entrada da aplicação é responsável pela criação do menu principal da aplicação e por  abrir este menu. No processo de criação do menu pode ser necessário indicar uma ou mais entidades do domínio da aplicação. Na aplicação exemplo, a classe App representa o ponto de entrada da aplicação. Esta classe é responsável por criar a instância da camada de domínio que que vai manter a série de inteiros inseridos pelo utilizador (IntegerManager) e o menu principal. De seguida deve abrir o menu. A classe App terá então a seguinte concretização:

package ex.app;

import static pt.tecnico.uilib.Dialog.UI;

import ex.core.IntegerManager;
import ex.app.main.MainMenu;

public class App {

  public static void main (String[] args) {
    try (var ui = UI) {
      IntegerManager myObject = new IntegerManager();  // Create main Entity
      MainMenu mainMenu = new MainMenu(myObject); // Create menu with Entity

      mainMenu.open(); // Open the menu
    }
  }
}


Antes de terminar a aplicação é necessário invocar o método close sobre a referência guardada no atributo estático UI de Dialog por forma a indicar que a interacção com o utilizador a realizar pela aplicação através da framework po-uilib terminou e portanto todos os recursos utilizados pela framework para suportar a interacção podem ser libertados e a aplicação pode realmente terminar (quando o quiser fazer). A não invocação deste método no fim da aplicação pode significar que a aplicação não termine (depende do tipo de interface gráfica fornecida pela framework que tenha sido escolhido na execução da aplicação). No exemplo indicado, a invocação deste método é realizada de forma automática quando se sai do bloco try.