Tab Page
Este módulo define as classes TabPage e TabPageWithDatepicker, que implementam um padrão de interface com abas para aplicações Bokeh. Elas permitem a organização de múltiplas páginas de adequação (para estações Régua e PCD) e podem incluir um seletor de data comum a todas as abas.
Índice
Visão geral
O módulo tab_page oferece uma estrutura flexível para a organização de interfaces de usuário em formato de abas, especialmente útil para lidar com diferentes tipos de estações hidrológicas ou técnicas de adequação. Suas funcionalidades principais incluem:
- Abas para Estações (Régua/PCD): Permite exibir dados e ferramentas específicas para cada tipo de estação em abas separadas.
- Integração com Fábricas de Página: Utiliza o padrão
AdequacaoPageFactorypara criar dinamicamente as páginas contidas em cada aba. - Gerenciamento de Datas: Suporta um seletor de data comum para todas as abas, permitindo que o usuário altere o período de visualização de forma centralizada.
- Carregamento e Atualização de Dados: Coordena o carregamento inicial e a atualização dos dados em todas as páginas filhas.
- Comunicação JavaScript: Permite a comunicação de eventos entre as abas e o ambiente externo via JavaScript.
TabPage
Classe que representa uma página composta por outras páginas dispostas em abas diferentes. É utilizada nas telas com abas de régua e PCD.
Init
Inicializa uma nova instância da TabPage.
Parâmetros:
doc (Document): O documento Bokeh ao qual a página será associada.
token_manager (TokenManager): O gerenciador de tokens para autenticação.
codigo (int): O código da estação.
date (date | None): A data de referência inicial.
factory (AdequacaoPageFactory): A fábrica responsável por criar as páginas de adequação para as abas.
tipo (int): Um índice que representa o tipo inicial da aba ativa (0 para régua, 1 para PCD). Padrão é 0.
Setup data
Método assíncrono para preparar e carregar os dados de todas as páginas filhas (abas).
Create widgets
Cria os widgets principais da página, incluindo as abas.
Create tabs
Cria o componente Tabs do Bokeh e adiciona as abas para Régua e PCD.
Add tab
Adiciona uma aba ao componente Tabs, se a página correspondente tiver dados disponíveis.
Parâmetros:
type (StationType): O tipo da estação (e.g., 'regua', 'pcd').
title (str): O título a ser exibido na aba (e.g., 'Régua', 'PCD').
Update data
Atualiza os dados de todas as páginas filhas. Prioriza a atualização da aba ativa primeiro.
Update data (específico)
Atualiza os dados de uma página específica com base no tipo de estação.
Parâmetros:
station_type (StationType): O tipo da estação a ser atualizada.
Current date
Propriedade que retorna a data atual de referência para a página.
Retorno:
date: A data de referência.
Create layout
Cria o layout principal da página, que consiste nas abas.
Retorno:
Tabs: O componente Tabs contendo as abas da página.
Tab page with datepicker
Classe que representa uma página com abas que compartilham um DatePicker (seletor de data) comum.
Init (Tab page with datepicker)
Inicializa uma nova instância da TabPageWithDatepicker.
Parâmetros:
doc (Document): O documento Bokeh.
token_manager (TokenManager): O gerenciador de tokens.
codigo (int): O código da estação.
date (date): A data de referência inicial.
factory (AdequacaoPageFactory): A fábrica de páginas.
tipo (int): O índice do tipo da aba ativa. Padrão é 0.
Create widgets (Tab page with datepicker)
Cria os widgets da página, incluindo o DatePicker e as abas.
On datepicker change
Manipulador de evento chamado quando o valor do datepicker muda.
Parâmetros:
attr: O nome do atributo que mudou.
old: O valor antigo do atributo. new`: O novo valor do atributo (string no formato "YYYY-MM-DD").
Current date (Tab page with datepicker)
Propriedade que retorna a data selecionada no datepicker.
Retorno:
date: A data atual selecionada no datepicker.
Create layout (Tab page with datepicker)
Cria o layout principal da página, que consiste no datepicker e nas abas.
Retorno:
column: Um layout em coluna contendo o datepicker e o componente tabs.