Use item state formatter to format input of transformation, meaning using state.format(format) instead of String.format(format, state.toString())
This was already the case in sitemap API but not in other APIs used by Main UI.
Make sure to call transformation even for NULL and UNDEF states.
It was not the case in one API used by Main UI.
When calling transformation and state is NULL or UNDEF, do not apply format to the input value and do not replace by "-".
That means the transformation will be called with "NULL" or "UNDEF".
Sitemap API was calling the transformation using a pattern containing "-".
Fix#4101
Also related to discussion in openhab/openhab-addons#13777
Signed-off-by: Laurent Garnier <lg.hc@free.fr>
* New translations units.properties (French)
* New translations chart.properties (French)
* New translations voice.properties (French)
* New translations defaultsystemchannels.properties (French)
* New translations addons.properties (French)
* New translations voice.properties (French)
* New translations voice.properties (Hebrew)
* New translations voice.properties (Hungarian)
* New translations addons.properties (Hungarian)
* New translations scriptprofile.properties (Hungarian)
* New translations systemprofiles.properties (Hungarian)
* New translations chart.properties (Hungarian)
* New translations voice.properties (Hungarian)
* New translations magic.properties (Hungarian)
* New translations jsr223.properties (Hungarian)
* New translations defaultsystemchannels.properties (Danish)
* Iterate using Map entries
Iteration using Map entries is preferred because it is more efficient and helps preventing NPEs.
Signed-off-by: Wouter Born <github@maindrain.net>
Removes redundant modifiers from the code.
These modifiers redeclare the default modifiers that apply to interfaces, enums etc.
Signed-off-by: Wouter Born <github@maindrain.net>
`isEmpty()` expresses the intent more clearly and is therefore preferred.
Counting the number of elements can also be an expensive operation e.g. when using linked lists.
Signed-off-by: Wouter Born <github@maindrain.net>
While cleaning up the code I found a some more code to cleanup:
* Remove unnecessary boxing
* Use `contains(..)` instead of `indexOf(..) != -1`
* Use `assertInstanceOf` in tests
* Make expensive trace logging conditional
* Remove redundant constructor
* Replace `collect(Collectors.toUnmodifiableList())` with `toList()`
* Replace `filter(..).count() == 0L` with `noneMatch(..)`
* Replace `filter(..).count() > 0` with `anyMatch(..)`
Signed-off-by: Wouter Born <github@maindrain.net>
Method references are more readable because they refer to class names and usually result in less code.
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>