Technical Support
🟢 Online now
Hello 👋

How can we help you today?
Contact on WhatsApp
B4X Store
jdashboardUI / Tables & Data / TableViewUtils
Tables & Data

TableViewUtils

Helpers estáticos para construir contenido visual para celdas

Buscar en toda jdashboardUI
Fuente
jdashboardUI.b4xlib · Solo API pública
Idioma de la tienda: es

Tables & Data · jdashboardUI · B4J / JavaFX

TableViewUtils es un módulo estático de utilidades para crear contenido visual destinado a celdas de tablas. No es una tabla y no administra datos: su función es construir Views listas para insertarse en una celda, como labels, checkbox, botones, switches, imágenes con texto o texto con iconos.

Características destacadas

  • Módulo StaticCode: no requiere Initialize.
  • Crea labels para celdas.
  • Crea checkbox personalizados con callback.
  • Crea botones personalizados con callback.
  • Crea switches personalizados.
  • Crea composiciones imagen + texto.
  • Crea composiciones icono + texto.
  • Devuelve B4XView o Label listos para usarse en una tabla.

Cuándo usarlo

Usa TableViewUtils cuando necesitas construir contenido visual para una tabla sin depender de una instancia concreta de JTableview.

Ejemplo conceptual:

Dim StatusCell As Label = TableViewUtils.CreateLabel( _
    "Online", _
    "Current status", _
    fx.Colors.Green)

El resultado puede colocarse después dentro de una fila o estructura de tabla.


No necesita Initialize

TableViewUtils está declarado como:

Type=StaticCode

Por eso se usa directamente:

TableViewUtils.CreateLabel(...)
TableViewUtils.CreateButton(...)

No existe Initialize, DesignerCreateView, AddToParent ni Designer Properties en este módulo.


CreateLabel

Firma pública:

CreateLabel(LabelText As String, ToolTip As String, color As Paint) As Label

Ejemplo:

Dim Cell As Label = TableViewUtils.CreateLabel( _
    "Available", _
    "Current availability", _
    fx.Colors.Green)

El helper configura texto, color, alineación, wrap y tooltip.


CreateCheckbox

Firma pública:

CreateCheckbox(
    Callback As Object,
    EventName As String,
    Tag1 As String,
    text As String,
    textToolTip As String,
    ColorText As Int,
    icon As String,
    IconColor As Int,
    Font As B4XFont,
    checked As Boolean,
    ColorCheck As Int,
    Corner As Int
) As B4XView

Ejemplo:

Dim Cell As B4XView = TableViewUtils.CreateCheckbox( _
    Me, _
    "Product", _
    "active", _
    "Active", _
    "Enable or disable the product", _
    xui.Color_White, _
    Chr(0xE876), _
    xui.Color_White, _
    xui.CreateMaterialIcons(18), _
    True, _
    0xFF16A34A, _
    6)

Callback:

Private Sub Product_CheckTable(CheckedSender As jCheckbox, Checked As Boolean)
    Log(CheckedSender.Tag)
    Log(Checked)
End Sub

El Tag1 se asigna al checkbox para que puedas identificar la acción.


CreateButton

Firma pública:

CreateButton(
    Callback As Object,
    EventName As String,
    Tag1 As String,
    text As String,
    FontText As Font,
    IconText As String,
    IconColor As Int,
    FontIcon As Font,
    ColorButton As Int,
    Corner As Int,
    ColumnWidth As Double
) As B4XView

Ejemplo:

Dim NormalFont As Font = fx.CreateFont("Arial", 12, False, False)
Dim IconFont As Font = fx.CreateFont("FontAwesome", 12, False, False)

Dim Cell As B4XView = TableViewUtils.CreateButton( _
    Me, _
    "Product", _
    "edit", _
    "Edit", _
    NormalFont, _
    Chr(0xF044), _
    xui.Color_White, _
    IconFont, _
    0xFF258A61, _
    6, _
    100dip)

Callback:

Private Sub Product_ButtonTableAction(BtSender As jButton)
    Select BtSender.Tag
        Case "edit"
            Log("Edit record")
    End Select
End Sub

CreateJSwich

El nombre público real en la librería es:

CreateJSwich

Se conserva exactamente así aunque la palabra habitual en inglés sea “Switch”.

Firma:

CreateJSwich(
    Callback As Object,
    EventName As String,
    Tag1 As String,
    text As String,
    textToolTip As String,
    ColorText As Int,
    ActiveIcon As Char,
    DisableIcon As Char,
    IconFont As B4XFont,
    checked As Boolean,
    ColorCheck As Int,
    Corner As Int
) As B4XView

Ejemplo:

Dim SwitchCell As B4XView = TableViewUtils.CreateJSwich( _
    Me, _
    "Product", _
    "enabled", _
    "Enabled", _
    "Product state", _
    xui.Color_White, _
    Chr(0xE876), _
    Chr(0xE14C), _
    xui.CreateMaterialIcons(18), _
    True, _
    0xFF16A34A, _
    6)

Callback actual

En la implementación analizada, el cambio del switch se redirige al callback:

Private Sub Product_CheckTable(SenderObject As Object, Checked As Boolean)
    Log(Checked)
End Sub

Es decir, el switch utiliza actualmente el mismo sufijo _CheckTable que el checkbox.


CreateImageAndText

Firma:

CreateImageAndText(
    text As String,
    textToolTip As String,
    ColorText As Int,
    ImageDir As String,
    ImageFileName As String,
    IconWidth As Int
) As B4XView

Ejemplo:

Dim Cell As B4XView = TableViewUtils.CreateImageAndText( _
    "Invoice", _
    "Open invoice", _
    xui.Color_White, _
    File.DirAssets, _
    "archivo-pdf.png", _
    24dip)

Internamente usa JImageView y JTextFlow.


CreateTextAndIcon

Firma:

CreateTextAndIcon(
    text As String,
    textToolTip As String,
    ColorText As Int,
    icon As String,
    IconColor As Int,
    FontIcon As Font
) As B4XView

Ejemplo:

Dim IconFont As Font = fx.CreateFont("FontAwesome", 14, False, False)

Dim Cell As B4XView = TableViewUtils.CreateTextAndIcon( _
    "Settings", _
    "Open settings", _
    xui.Color_White, _
    Chr(0xF013), _
    0xFF22D3EE, _
    IconFont)

API pública completa

TableViewUtils expone seis Subs públicas:

  1. CreateLabel
  2. CreateCheckbox
  3. CreateButton
  4. CreateJSwich
  5. CreateImageAndText
  6. CreateTextAndIcon

Además expone el campo público:

lbl As Label

Callbacks

Los controles interactivos creados por el módulo usan estos callbacks:

Checkbox

EventName_CheckTable(CheckedSender As jCheckbox, Checked As Boolean)

Botón

EventName_ButtonTableAction(BtSender As jButton)

Switch

La implementación actual también llama:

EventName_CheckTable(Sender, Checked)

Consideración importante sobre Callback y EventName

TableViewUtils guarda internamente mCallback y mEventName a nivel de módulo.

Eso significa que al crear varios controles interactivos con callbacks o nombres de evento diferentes, la configuración más reciente puede reemplazar los valores compartidos.

Para evitar comportamientos inesperados:

  • usa un mismo callback y EventName para controles creados mediante TableViewUtils; o
  • usa las fábricas integradas de una instancia JTableview cuando necesites aislamiento por componente.

Relacionados

  • JTableview: tabla visual que también incluye sus propias fábricas de celdas.
  • JDataset: vinculación de Views con campos SQLite.