java.lang.Object
io.github.lvrodrigues.wizard.Wizard
All Implemented Interfaces:
Runnable

public class Wizard extends Object implements Runnable
Classe de Gerenciamento do Wizard.

Controla a navegação entre as páginas do aplicativo.

Author:
$Criado por: $, $Alterado por: $
Branch:
$Ramo: main$
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final String
    Título da mensagem de notificação de erros.
    private javafx.scene.control.Button
    Cancela a operação do Wizard.
    private javafx.scene.layout.StackPane
    Painel para apresentação de conteúdo de cada página do Wizard.
    private javafx.beans.property.IntegerProperty
    Índice da página corrente.
    private javafx.scene.control.Button
    Quando na última página, permite executar uma ação específica do Wizard.
    private static final double
    Porcentagem de visibilidade do indicador da página corrente (100%).
    private static final double
    Porcentagem de visibilidade do indicador das outras páginas (20%).
    private static final double
    Raio para criação do indicador de página corrente (5 pixels).
    private javafx.scene.layout.FlowPane
    Painel de informações sobre a página de navegação.
    private javafx.scene.control.Label
    Informa o estado de operação da página corrente.
    private Thread
    Processo em segundo plano para monitoramento das páginas e gerenciamento da navegação.
    private boolean
    Controle de execução do processo em segundo plano.
    private javafx.scene.control.Button
    Botão para executar a navegação para a próxima página.
    private io.github.lvrodrigues.wizard.pages.AbstractPage
    Controlador da página corrente.
    private List<javafx.fxml.FXMLLoader>
    Lista de páginas para gerenciar.
    private javafx.scene.control.Button
    Botão para executar a navegação para página anterior.
    private static final int
    Pausa para simular um tempo de processamento.
    private javafx.beans.property.ObjectProperty<Status>
    Estado de operação do Wizard.
    private javafx.scene.control.Label
    Título da página corrente.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    private void
    addPage(javafx.fxml.FXMLLoader loader)
    Coloca a página de navegação na fila de apresentação.
    void
    cancelAction(javafx.event.ActionEvent event)
    Cancela a execução de processos do Wizard.
    void
    executeAction(javafx.event.ActionEvent event)
    Evento de execução do processo específico do Wizard.
    private Boolean
    executeActionCall(io.github.lvrodrigues.wizard.pages.Processing processing)
    Execução da regra de negócio, realizando uma iteração pequena dentro de um laço.
    Expõe o estado de operação do aplicativo para o controle de fechamento.
    void
    Inicialização da camada Java FX.
    private void
    navigateTo(javafx.event.ActionEvent event, int navigate)
    Executa a navegação para uma nova página.
    private Boolean
    navigateToCall(int navigate)
    Executa a navegação entre as páginas.
    void
    nextAction(javafx.event.ActionEvent event)
    Evento de navegação para a próxima página.
    void
    previousAction(javafx.event.ActionEvent event)
    Evento de navegação para a página anterior.
    void
    run()
    Processo paralelo, executado em segundo plano.
    void
    Método para ser executado no fechamento do aplicativo, para encerrar o processo em segundo plano.
    private void
    Apresenta a página selecionada.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • INDICATOR_CURRENT

      private static final double INDICATOR_CURRENT
      Porcentagem de visibilidade do indicador da página corrente (100%).
      See Also:
    • INDICATOR_OTHERS

      private static final double INDICATOR_OTHERS
      Porcentagem de visibilidade do indicador das outras páginas (20%).
      See Also:
    • INDICATOR_RADIUS

      private static final double INDICATOR_RADIUS
      Raio para criação do indicador de página corrente (5 pixels).
      See Also:
    • PROGRESS_INTERVAL

      private static final int PROGRESS_INTERVAL
      Pausa para simular um tempo de processamento.
      See Also:
    • ALERT_TITLE

      private static final String ALERT_TITLE
      Título da mensagem de notificação de erros.
      See Also:
    • previous

      private javafx.scene.control.Button previous
      Botão para executar a navegação para página anterior.
    • next

      private javafx.scene.control.Button next
      Botão para executar a navegação para a próxima página.
    • execute

      private javafx.scene.control.Button execute
      Quando na última página, permite executar uma ação específica do Wizard.
    • cancel

      private javafx.scene.control.Button cancel
      Cancela a operação do Wizard.
    • indicators

      private javafx.scene.layout.FlowPane indicators
      Painel de informações sobre a página de navegação.
    • labelStatus

      private javafx.scene.control.Label labelStatus
      Informa o estado de operação da página corrente.
    • title

      private javafx.scene.control.Label title
      Título da página corrente.
    • content

      private javafx.scene.layout.StackPane content
      Painel para apresentação de conteúdo de cada página do Wizard.
    • pages

      private List<javafx.fxml.FXMLLoader> pages
      Lista de páginas para gerenciar.
    • current

      private javafx.beans.property.IntegerProperty current
      Índice da página corrente.
    • page

      private io.github.lvrodrigues.wizard.pages.AbstractPage page
      Controlador da página corrente.
    • status

      private javafx.beans.property.ObjectProperty<Status> status
      Estado de operação do Wizard.
    • monitor

      private Thread monitor
      Processo em segundo plano para monitoramento das páginas e gerenciamento da navegação.
    • monitoring

      private boolean monitoring
      Controle de execução do processo em segundo plano.
  • Constructor Details

    • Wizard

      public Wizard()
  • Method Details

    • initialize

      public void initialize()
      Inicialização da camada Java FX.

      Utilize este método para carregar a lista de páginas do Wizard.

    • addPage

      private void addPage(javafx.fxml.FXMLLoader loader)
      Coloca a página de navegação na fila de apresentação.

      Para cada pagína, é criado também um ícone de representação para indicar o ponto de navegação do aplicativo.

      Parameters:
      loader - Página do Wizard.
    • updatePage

      private void updatePage()
      Apresenta a página selecionada.
    • previousAction

      public void previousAction(javafx.event.ActionEvent event)
      Evento de navegação para a página anterior.
      Parameters:
      event - Informações da origem do evento.
    • nextAction

      public void nextAction(javafx.event.ActionEvent event)
      Evento de navegação para a próxima página.
      Parameters:
      event - Informações da origem do evento.
    • executeAction

      public void executeAction(javafx.event.ActionEvent event)
      Evento de execução do processo específico do Wizard.
      Parameters:
      event - Informações da origem do evento.
    • executeActionCall

      private Boolean executeActionCall(io.github.lvrodrigues.wizard.pages.Processing processing) throws InterruptedException
      Execução da regra de negócio, realizando uma iteração pequena dentro de um laço.
      Parameters:
      processing - Página final com relatório de processamento.
      Returns:
      Boolean, com resultado final da operação.
      Throws:
      InterruptedException - Processo interrompido.
    • cancelAction

      public void cancelAction(javafx.event.ActionEvent event)
      Cancela a execução de processos do Wizard.

      Também finaliza o aplicativo.

      Parameters:
      event - Informações da origem do evento.
    • run

      public void run()
      Processo paralelo, executado em segundo plano.

      Controlará os estados dos botões de navegação e operação do aplicativo.

      Specified by:
      run in interface Runnable
    • shutdown

      public void shutdown()
      Método para ser executado no fechamento do aplicativo, para encerrar o processo em segundo plano.
    • getStatus

      public Status getStatus()
      Expõe o estado de operação do aplicativo para o controle de fechamento.
      Returns:
      Status