* Create ready markers for proper managed providers
"managed" markers (managed=item, managed=metadata, managed=rule, managed=thing and managed=itemchannellink) were created too early with the following providers: ScriptedItemProvider, ScriptedMetadataProvider, ScriptedRuleProvider, ScriptedThingProvider and ScriptedItemChannelLinkProvider.
They are now properly created with providers ManagedItemProvider, ManagedMetadataProviderImpl, ManagedRuleProvider, ManagedThingProvider and ManagedItemChannelLinkProvider.
Marker managed=sitemap is now also created with provider UIComponentSitemapProvider.
Marker managed=persistenceserviceconfiguration is now also created with provider ManagedPersistenceServiceConfigurationProvider.
Marker managed=semantictag is now also created with provider ManagedSemanticTagProvider.
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
* Fix tests in core.model.script
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
---------
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
* Deprecate defining buttons as properties of a Butongrid widget
Remove specific related objects from core sitemap registry.
For backward compatibility, such buttons definition present in existing user sitemaps are automatically replaced by Button sub-widgets. A warning is logged to announce the deprecation when such definition is encountered.
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
- 'config' in RootUIComponent/UIComponent was of the wrong type in openapi spec
- getType accessor in UIComponent generated a property
- Updated the naming of data structures in openapi spec w/o the internal DTO nomenclature for consistency and simplicity
Also-by: Florian Hotze <dev@florianhotze.com>
Also-by: Wouter Born <github@maindrain.net>
Signed-off-by: Jeff James <jeff@james-online.com>
This simplifies the sortpom configuration and also allows for checking and reformatting them using the spotless:check and spotless:apply Maven goals.
Signed-off-by: Wouter Born <github@maindrain.net>
* Java 21 language features
* use getFirst and getLast methods
* replace new Locale by Locale.of
* replace Paths.get by Path.of
* use ThreadLocalRandom.current().nextDouble()
* add @Serial annotations
Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
* Extend sitemap syntax for switch to support press & release buttons
Mappings attribute for switch element now accepts one or two commands for each button.
If only one command is provided, the button is a click button, the command is sent to the item when the button is clicked.
If two commands are provided (separated by ":"), the button is a press & release button, the first command is sent to the item when the button is pressed and the second when the button is released.
Syntax example for a click button: Switch item=DemoSwitch mappings=[ ON="ON" ]
Syntax example for a press & release button: Switch item=DemoSwitch mappings=[ ON:OFF="ON" ]
Related to #3822
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
* update reference to method / parameter names from documentation
* reflect that subscriptions for a whole page are possible in the documentation
* document that subscriptions to a whole sitemap are possible but discouraged
Signed-off-by: Tassilo Karge <tassilo.karge@web.de>
A static inner class does not keep an implicit reference to its enclosing instance.
This prevents a common cause of memory leaks and uses less memory per instance of the class.
Signed-off-by: Wouter Born <github@maindrain.net>
* [sitemap] Provide information about widget label source to clients
The label can be populated from a label specified on the respective
sitemap widget, or (if no label was specified) from the label of the
backing item. Allow clients to differentiate between both cases.
Related to openhab/openhab-webui#2065
Signed-off-by: Danny Baumann <dannybaumann@web.de>
This allows dynamic icons based on items states even with non OH icon sources.
This also allows overwritting the default handling with state done by the icon servlet.
Example: icon=[item1>0=temperature,==0=material:settings,f7:house]
Related to openhab/openhab-webui#1938
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
Simplifies the code by using List.of, List.copyOf etc. where possible which results in less code and imports.
Signed-off-by: Wouter Born <github@maindrain.net>
Concerns labelcolor, valuecolor and visibility
Also fix wrong positions of ")" in Sitemap.xtext
Closes#3058
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
* [Sitemap] Accept an optional icon for each value/label mapping
When set by the user, the icon can be used by UIs for switch element with mappings to render a button with the icon rather than the label.
Related to #3441
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
When set, the UI should not provide the item state when requestiong the
OH icon and should not request again the icon when the item state is
updated.
Related to openhab/openhab-android#3404
Signed-off-by: Laurent Garnier <lg.hc@free.fr>