blucolumnview

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2026 License: MIT Imports: 6 Imported by: 0

README

BluColumnView

BluColumnView é um componente customizado para Fyne (Go) que implementa uma visualização tabular baseada em colunas, com suporte a:

  • Cabeçalhos clicáveis (ordenação)
  • Larguras fixas por coluna
  • Scroll vertical
  • Seleção por checkbox (linha individual ou selecionar todos)
  • Manipulação dinâmica de linhas (adicionar, atualizar, remover)
  • Recuperação de dados selecionados ou completos

É ideal para aplicações desktop que precisam de algo mais flexível, mantendo simplicidade e controle total.


✨ Características

  • Componente customizado
  • Cabeçalhos clicáveis para ordenação por coluna
  • Suporte opcional a checkbox por linha
  • Checkbox Selecionar Todos
  • Largura fixa por coluna
  • Scroll vertical automático
  • Atualização parcial eficiente (reconstrói apenas o corpo)
  • API simples e previsível
  • Totalmente escrito em Go puro

📦 Instalação

go get github.com/bluiceoficial/blucolumnview

🚀 Uso básico

headers := []string{"Nome", "Email", "Status"}
widths := []float32{150, 250, 100}

cv := blucolumnview.NewColumnView(headers, widths, true)

Adicionando ao layout:

container.NewVBox(cv)

➕ Adicionando linhas

cv.AddRow([]string{"João", "joao@email.com", "Inativo"})
cv.AddRow([]string{"Maria", "maria@email.com", "Ativo"})

Se faltar alguma coluna, o componente preenche automaticamente com string vazia.


✏️ Atualizando dados

Atualizar uma linha inteira
cv.UpdateItem(0, []string{"João", "novo@email.com", "Ativo"})

Atualizar uma coluna específica
cv.UpdateColumnItem(1, 2, "Ativo")

❌ Removendo linhas

Remover linhas selecionadas
cv.RemoveSelected()

Remover todas as linhas
cv.RemoveAll()

☑️ Seleção de linhas

Recuperar linhas selecionadas
selected := cv.ListSelected()

for _, row := range selected {
    fmt.Println(row.ID, row.Data)
}

Recuperar todas as linhas
all := cv.ListAll()

🔃 Ordenação por coluna

Clicar no título da coluna realiza ordenação ascendente com base no conteúdo textual.

A ordenação é estável e preserva a ordem relativa de valores iguais.


👤 Autor

Murilo Gomes Julio

🔗 https://www.bluice.com.br

📺 https://youtube.com/@bluiceoficial


License

Copyright (c) 2026 Murilo Gomes Julio

Licensed under the MIT license.

All contributions to the BluColumnView are subject to this license.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ColumnView

type ColumnView struct {
	widget.BaseWidget
	// contains filtered or unexported fields
}

func NewColumnView

func NewColumnView(headers []string, widths []float32, enableCheck bool) *ColumnView

NewColumnView cria o componente com cabeçalhos e dados

func (*ColumnView) AddRow

func (cv *ColumnView) AddRow(row []string)

AddRow

func (*ColumnView) CreateRenderer

func (cv *ColumnView) CreateRenderer() fyne.WidgetRenderer

CreateRenderer implementa o renderer

func (*ColumnView) ListAll

func (cv *ColumnView) ListAll() []SelectRow

Selected retorna todas as linhas que estão marcadas (checkbox = true)

func (*ColumnView) ListSelectedFirstColumn

func (cv *ColumnView) ListSelectedFirstColumn() []SelectRow

func (*ColumnView) RefreshBody

func (cv *ColumnView) RefreshBody()

RefreshBody reconstrói apenas o corpo (linhas)

func (*ColumnView) RemoveAll

func (cv *ColumnView) RemoveAll()

func (*ColumnView) RemoveSelected

func (cv *ColumnView) RemoveSelected()

RemoveSelected remove todas as linhas que estão marcadas

func (*ColumnView) UpdateColumnItem

func (cv *ColumnView) UpdateColumnItem(rowIndex int, colIndex int, value string)

UpdateColumnItem atualiza o item do indice e da coluna

func (*ColumnView) UpdateItem

func (cv *ColumnView) UpdateItem(rowIndex int, value []string)

UpdateItem atualiza todas as colunas do indice

type SelectRow

type SelectRow struct {
	ID   int
	Data []string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL