CrappUIModal

Componente para criação de elementos modais, que se sobrepõem à interface da aplicação.

Características
Valor

Class

crapp.ui.display.modal.CrappUIModal

Style Tag

CrappUIStyleDefaultTagType.MODAL

Composites

Nenhum

Propriedades do Componente

  • allowCloseModal: Determina se o modal pode ser fechado manualmente através de ações do usuário.

  • allowCloseModalWithEsc: Permite que o modal seja fechado ao pressionar a tecla ESC.

Como usar

O componente CrappUIModal serve como base para criar modais ou overlays na aplicação. Ele é utilizado para sobrepor conteúdos à interface principal, gerenciando a exibição e o fechamento desses elementos.

Extensão e Personalização

CrappUIModal estende CrappUILayout, permitindo que você crie layouts customizados para seus modais. Você pode estendê-lo para criar novos componentes modais que definam conteúdo, botões e comportamentos específicos.

Abertura e Fechamento

O modal pode ser exibido chamando o método open(), que internamente registra o modal no CrappUIModalController. Para fechá-lo, basta chamar o método close(), que remove o modal dos controles do gerenciador.

Eventos de Fechamento

As propriedades allowCloseModal e allowCloseModalWithEsc permitem configurar se o modal pode ser fechado manualmente (por exemplo, ao clicar fora ou através de uma tecla, como ESC). O método estático dispatchCloseModalHelper auxilia no disparo de eventos para fechar o modal.

Integração com o Controller

O CrappUIModal se integra com o CrappUIModalController, que gerencia a pilha de modais ativos e trata eventos globais (como o pressionar da tecla ESC) para fechar o modal mais recente, se permitido.

Exemplos de Uso

@priori('
<priori>
    <view>
    </view>
</priori>
')
class MeuModal extends CrappUIModal {
    
    override function setup() {
        super.setup()
        // Personalize o layout e o conteúdo do modal
    }
    
    override function paint() {
        super.paint()
        // Personalize o layout e o conteúdo do modal
    }
    
    override private function onOpenModal():Void {
        // Lógica executada quando o modal é aberto
        trace("Modal aberto!");
    }
    
    override private function onCloseModal():Void {
        // Lógica executada quando o modal é fechado
        trace("Modal fechado!");
        super.onCloseModal();
    }
}

// Em outro lugar da aplicação:
var modal = new MeuModal();
modal.open();

No exemplo acima, a criação de um modal personalizado é feita estendendo CrappUIModal. Ao chamar open(), o modal é adicionado ao controle global, e ao chamar close() ele é removido – tudo isso com suporte para fechamento via ESC ou cliques externos, conforme as propriedades definidas.

Dessa forma, o CrappUIModal facilita o desenvolvimento de componentes modais ou overlays, garantindo uma gestão centralizada e um comportamento consistente na aplicação.

Atualizado

Isto foi útil?