java.lang.Object
fabiorodrigues.bricks.components.DataTable<T>
- Type Parameters:
T- o tipo dos itens da tabela
- All Implemented Interfaces:
Component
Tabela de dados com suporte a pesquisa, ordenação, paginação, seleção de linhas
e ações por linha e por toolbar.
Gere o seu próprio estado interno — não usa BricksApplication.state().
O re-render parcial (header + linhas + footer) acontece dentro do próprio componente,
sem desencadear um re-render de toda a aplicação.
new DataTable<Aluno>()
.items(alunos)
.searchable()
.columnToggle()
.toolbarAction("Exportar", () -> exportar())
.toolbarAction("Apagar selecionados",
() -> apagar(tabela.getSelected()),
SelectionMode.REQUIRES_SELECTION)
.column("Nome", Aluno::nome).bold()
.column("Turma", Aluno::turma).width(80).align(Align.CENTER)
.actionColumn(new TableAction<Aluno>()
.icon("fas-pencil").tooltip("Editar").onClick(a -> editar(a)))
.actionColumn(new TableAction<Aluno>()
.icon("fas-trash").tooltip("Apagar").danger().onClick(a -> apagar(a)))
.selectable()
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionactionColumn(TableAction<T> action) Adiciona uma coluna de ação — botão compacto 32×32 com ícone, por linha.Define o alinhamento da última coluna adicionada.bold()Aplica negrito à última coluna adicionada.Adiciona uma coluna de dados.Adiciona uma coluna com configuracao inline via lambda.Ativa o botão de toggle de colunas na toolbar.Devolve os itens atualmente selecionados.Define a fonte de dados comoStateListreativa.Define a fonte de dados comoListestática.Aplica umModifierao contentor raiz.pageSize(int size) Define o número de itens por página (por defeito: 20).javafx.scene.Noderender()Converte este componente numNodeJavaFX pronto a ser adicionado ao scene graph.Ativa o campo de pesquisa na toolbar.Ativa a seleção de linhas com checkbox e clique na linha.toolbarAction(String label, Runnable action) Adiciona um botão à toolbar, sempre ativo.toolbarAction(String label, Runnable action, SelectionMode mode) Adiciona um botão à toolbar com controlo de disponibilidade.width(double w) Define a largura fixa (px) da última coluna adicionada.wrapText()Ativa o word wrap na última coluna adicionada.
-
Constructor Details
-
DataTable
public DataTable()
-
-
Method Details
-
items
Define a fonte de dados comoListestática.- Parameters:
items- lista de itens- Returns:
- este componente para encadeamento
-
items
Define a fonte de dados comoStateListreativa.- Parameters:
items- lista reativa de itens- Returns:
- este componente para encadeamento
-
searchable
Ativa o campo de pesquisa na toolbar. -
columnToggle
Ativa o botão de toggle de colunas na toolbar. -
selectable
Ativa a seleção de linhas com checkbox e clique na linha. -
column
Adiciona uma coluna de dados. Os métodosbold(),width(double),align(Align)ewrapText()seguintes aplicam-se a esta coluna.- Parameters:
name- cabeçalho da colunavalueFunction- função que extrai o valor a apresentar- Returns:
- este componente para encadeamento
-
column
public DataTable<T> column(String name, Function<T, String> valueFunction, Consumer<DataTableColumn<T>> config) Adiciona uma coluna com configuracao inline via lambda..column("Nome", Aluno::getNome, col -> col.width(250).bold().wrapText())- Parameters:
name- cabecalho da colunavalueFunction- funcao que extrai o valor como Stringconfig- lambda de configuracao da coluna- Returns:
- este componente para encadeamento
-
bold
Aplica negrito à última coluna adicionada. -
width
Define a largura fixa (px) da última coluna adicionada.- Parameters:
w- largura em pixels- Returns:
- este componente para encadeamento
-
align
Define o alinhamento da última coluna adicionada.- Parameters:
align-Align.LEFT,Align.CENTERouAlign.RIGHT- Returns:
- este componente para encadeamento
-
wrapText
Ativa o word wrap na última coluna adicionada. -
actionColumn
Adiciona uma coluna de ação — botão compacto 32×32 com ícone, por linha.- Parameters:
action- definição da ação- Returns:
- este componente para encadeamento
-
toolbarAction
Adiciona um botão à toolbar, sempre ativo.- Parameters:
label- texto do botãoaction- ação a executar- Returns:
- este componente para encadeamento
-
toolbarAction
Adiciona um botão à toolbar com controlo de disponibilidade.- Parameters:
label- texto do botãoaction- ação a executarmode-SelectionMode.ALWAYSouSelectionMode.REQUIRES_SELECTION- Returns:
- este componente para encadeamento
-
pageSize
Define o número de itens por página (por defeito: 20).- Parameters:
size- número de itens por página- Returns:
- este componente para encadeamento
-
modifier
Aplica umModifierao contentor raiz.- Parameters:
modifier- o modifier a aplicar- Returns:
- este componente para encadeamento
-
getSelected
Devolve os itens atualmente selecionados.- Returns:
- conjunto imutável de itens selecionados
-
render
public javafx.scene.Node render()Description copied from interface:ComponentConverte este componente numNodeJavaFX pronto a ser adicionado ao scene graph.
-