From 7a4ab052640677a57b72d8ea6ebdd7b38e8486c3 Mon Sep 17 00:00:00 2001 From: Harald Pehl Date: Tue, 20 Oct 2026 19:44:02 +0200 Subject: [PATCH] feat: add OUIA IDs for configuration finder columns and items Added dynamic OUIA IDs: - FinderBricks.crudColumn(): hal-op- on all CRUD columns - ConfigurationColumn: hal-op-configuration-column + item IDs (subsystems-item, interfaces-item, socket-bindings-item, paths-item, system-properties-item) - SubsystemColumn: hal-op-subsystem-column The crudColumn() change automatically covers all columns using this helper: SystemPropertyColumn, InterfaceColumn, PathColumn, SocketBindingGroupColumn, and socket binding sub-columns. Finder item string literals extracted to package-private constants. Closes #428 (partial) --- .../op/configuration/ConfigurationColumn.java | 18 ++++++++++++------ .../hal/op/configuration/SubsystemColumn.java | 3 ++- .../org/jboss/hal/ui/finder/FinderBricks.java | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/op/console/src/main/java/org/jboss/hal/op/configuration/ConfigurationColumn.java b/op/console/src/main/java/org/jboss/hal/op/configuration/ConfigurationColumn.java index 23c40e14..5b2293dd 100644 --- a/op/console/src/main/java/org/jboss/hal/op/configuration/ConfigurationColumn.java +++ b/op/console/src/main/java/org/jboss/hal/op/configuration/ConfigurationColumn.java @@ -20,6 +20,7 @@ import jakarta.inject.Inject; import org.jboss.hal.op.configuration.socket.SocketBindingGroupColumn; +import org.jboss.hal.resources.OuiaIds; import org.jboss.hal.ui.finder.ColumnProvider; import org.jboss.hal.ui.finder.ColumnRegistry; import org.patternfly.extension.finder.FinderColumn; @@ -45,6 +46,11 @@ public class ConfigurationColumn implements ColumnProvider { /** Column identifier used for registration and OUIA test IDs. */ public static final String ID = "configuration-column"; + static final String INTERFACES_ITEM = "interfaces-item"; + static final String PATHS_ITEM = "paths-item"; + static final String SOCKET_BINDINGS_ITEM = "socket-bindings-item"; + static final String SUBSYSTEMS_ITEM = "subsystems-item"; + static final String SYSTEM_PROPERTIES_ITEM = "system-properties-item"; private final Instance registry; @@ -60,33 +66,33 @@ public String identifier() { @Override public FinderColumn get() { - return finderColumn(ID) + return finderColumn(ID).ouiaId(OuiaIds.ouia(ID)) .addHeader(finderColumnHeader("Configuration")) - .addItem(finderItem("subsystems-item", "Subsystems") + .addItem(finderItem(SUBSYSTEMS_ITEM, "Subsystems").ouiaId(OuiaIds.ouia(SUBSYSTEMS_ITEM)) .nextColumn(registry.get().column(SubsystemColumn.ID)) .onPreview((item, preview) -> stackPreview(preview, "Subsystems", stack -> stack .addItem(stackItem().add(content(p).editorial().html(SUBSYSTEM_DESCRIPTION)))))) - .addItem(finderItem("interfaces-item", "Interfaces") + .addItem(finderItem(INTERFACES_ITEM, "Interfaces").ouiaId(OuiaIds.ouia(INTERFACES_ITEM)) .nextColumn(registry.get().column(InterfaceColumn.ID)) .onPreview((item, preview) -> stackPreview(preview, "Interfaces", stack -> stack .addItem(stackItem() .add(content(p).editorial().html(INTERFACE_DESCRIPTION_1)) .add(content(p).editorial().html(INTERFACE_DESCRIPTION_2)))))) - .addItem(finderItem("socket-bindings-item", "Socket Bindings") + .addItem(finderItem(SOCKET_BINDINGS_ITEM, "Socket Bindings").ouiaId(OuiaIds.ouia(SOCKET_BINDINGS_ITEM)) .nextColumn(registry.get().column(SocketBindingGroupColumn.ID)) .onPreview((item, preview) -> stackPreview(preview, "Socket Bindings", stack -> stack .addItem(stackItem().add(content(p).editorial().html(SOCKET_BINDING_DESCRIPTION)))))) - .addItem(finderItem("paths-item", "Paths") + .addItem(finderItem(PATHS_ITEM, "Paths").ouiaId(OuiaIds.ouia(PATHS_ITEM)) .nextColumn(registry.get().column(PathColumn.ID)) .onPreview((item, preview) -> stackPreview(preview, "Paths", stack -> stack .addItem(stackItem() .add(content(p).editorial().html(PATH_DESCRIPTION_1)) .add(content(p).editorial().html(PATH_DESCRIPTION_2)))))) - .addItem(finderItem("system-properties-item", "System Properties") + .addItem(finderItem(SYSTEM_PROPERTIES_ITEM, "System Properties").ouiaId(OuiaIds.ouia(SYSTEM_PROPERTIES_ITEM)) .nextColumn(registry.get().column(SystemPropertyColumn.ID)) .onPreview((item, preview) -> stackPreview(preview, "System Properties", stack -> stack diff --git a/op/console/src/main/java/org/jboss/hal/op/configuration/SubsystemColumn.java b/op/console/src/main/java/org/jboss/hal/op/configuration/SubsystemColumn.java index b6de9ce2..9107aefc 100644 --- a/op/console/src/main/java/org/jboss/hal/op/configuration/SubsystemColumn.java +++ b/op/console/src/main/java/org/jboss/hal/op/configuration/SubsystemColumn.java @@ -21,6 +21,7 @@ import org.jboss.elemento.Id; import org.jboss.elemento.router.PlaceManager; import org.jboss.hal.meta.AddressTemplate; +import org.jboss.hal.resources.OuiaIds; import org.jboss.hal.ui.finder.ColumnProvider; import org.patternfly.extension.finder.FinderColumn; @@ -62,7 +63,7 @@ public String identifier() { @Override public FinderColumn get() { - FinderColumn column = finderColumn(ID).pinnable(); + FinderColumn column = finderColumn(ID).ouiaId(OuiaIds.ouia(ID)).pinnable(); return column.addHeader(finderColumnHeader("Subsystem").addActions(finderColumnActions() .addButton(button(rotateRight()).plain().small().onClick((e, b) -> column.refresh())))) .addItems(childResources(__ -> TEMPLATE, node -> finderItem(Id.build(node.asString())) diff --git a/ui/src/main/java/org/jboss/hal/ui/finder/FinderBricks.java b/ui/src/main/java/org/jboss/hal/ui/finder/FinderBricks.java index ec2e9fc8..050ad9eb 100644 --- a/ui/src/main/java/org/jboss/hal/ui/finder/FinderBricks.java +++ b/ui/src/main/java/org/jboss/hal/ui/finder/FinderBricks.java @@ -88,7 +88,7 @@ public static Finder topLevelFinder() { public static FinderColumn crudColumn(String id, String header, List previewAttributes, Function templateFn, Supplier nextColumn) { - FinderColumn column = finderColumn(id); + FinderColumn column = finderColumn(id).ouiaId(OuiaIds.ouia(id)); column.addHeader(finderColumnHeader(header).addActions(finderColumnActions() .addButton(button(plus()).plain().small() .ouiaId(OuiaIds.ouia(id, "add", "btn"))