From 47284e5521c5bccb0db5afec1202a0aa453a2f4f Mon Sep 17 00:00:00 2001 From: Mark Herwege Date: Sat, 28 Sep 2024 21:34:07 +0200 Subject: [PATCH] [sitemap] Buttongrid with Button components available for main UI configuration (#4377) * buttongrid with buttons for UI defined sitemap Signed-off-by: Mark Herwege --- .../components/UIComponentSitemapProvider.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bundles/org.openhab.core.ui/src/main/java/org/openhab/core/ui/internal/components/UIComponentSitemapProvider.java b/bundles/org.openhab.core.ui/src/main/java/org/openhab/core/ui/internal/components/UIComponentSitemapProvider.java index dd93ce9ae8c..6cb30892ed0 100644 --- a/bundles/org.openhab.core.ui/src/main/java/org/openhab/core/ui/internal/components/UIComponentSitemapProvider.java +++ b/bundles/org.openhab.core.ui/src/main/java/org/openhab/core/ui/internal/components/UIComponentSitemapProvider.java @@ -43,6 +43,7 @@ import org.openhab.core.model.sitemap.sitemap.VisibilityRule; import org.openhab.core.model.sitemap.sitemap.Widget; import org.openhab.core.model.sitemap.sitemap.impl.ButtonDefinitionImpl; +import org.openhab.core.model.sitemap.sitemap.impl.ButtonImpl; import org.openhab.core.model.sitemap.sitemap.impl.ButtongridImpl; import org.openhab.core.model.sitemap.sitemap.impl.ChartImpl; import org.openhab.core.model.sitemap.sitemap.impl.ColorArrayImpl; @@ -86,6 +87,7 @@ * @author Laurent Garnier - Added support for new element Buttongrid * @author Laurent Garnier - Added icon field for mappings * @author Mark Herwege - Make UI provided sitemaps compatible with enhanced syntax in conditions + * @author Mark Herwege - Add support for Button element */ @NonNullByDefault @Component(service = SitemapProvider.class) @@ -270,6 +272,16 @@ protected Sitemap buildSitemap(RootUIComponent rootComponent) { addWidgetButtons(buttongridWidget.getButtons(), component); widget = buttongridWidget; break; + case "Button": + ButtonImpl buttonWidget = (ButtonImpl) SitemapFactory.eINSTANCE.createButton(); + widget = buttonWidget; + setWidgetPropertyFromComponentConfig(widget, component, "row", SitemapPackage.BUTTON__ROW); + setWidgetPropertyFromComponentConfig(widget, component, "column", SitemapPackage.BUTTON__COLUMN); + setWidgetPropertyFromComponentConfig(widget, component, "stateless", SitemapPackage.BUTTON__STATELESS); + setWidgetPropertyFromComponentConfig(widget, component, "cmd", SitemapPackage.BUTTON__CMD); + setWidgetPropertyFromComponentConfig(widget, component, "releaseCmd", + SitemapPackage.BUTTON__RELEASE_CMD); + break; case "Default": DefaultImpl defaultWidget = (DefaultImpl) SitemapFactory.eINSTANCE.createDefault(); widget = defaultWidget;