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 requiereInitialize. - 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
B4XViewoLabellistos 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:
CreateLabelCreateCheckboxCreateButtonCreateJSwichCreateImageAndTextCreateTextAndIcon
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.