[DSL] Expose ColorUtil methods to DSL rules (#3749)

Fix #3743

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
pull/3797/head
lolodomo 2023-09-02 19:14:59 +02:00 committed by GitHub
parent e1d2b88398
commit 1c8096b4eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 68 additions and 0 deletions

View File

@ -39,6 +39,7 @@ Import-Package: \
org.openhab.core.transform,\
org.openhab.core.transform.actions,\
org.openhab.core.types,\
org.openhab.core.util,\
org.openhab.core.voice,\
org.openhab.core.voice.text,\
org.openhab.core.io.console,\

View File

@ -0,0 +1,65 @@
/**
* Copyright (c) 2010-2023 Contributors to the openHAB project
*
* See the NOTICE file(s) distributed with this work for additional
* information.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*/
package org.openhab.core.model.script.actions;
import org.openhab.core.library.types.HSBType;
import org.openhab.core.library.types.PercentType;
import org.openhab.core.util.ColorUtil;
import org.openhab.core.util.ColorUtil.Gamut;
/**
* This class provides static methods mapping methods from package org.openhab.core.util
*
* @author Laurent Garnier - Initial contribution
*/
public class CoreUtil {
public static int[] hsbToRgb(HSBType hsb) {
return ColorUtil.hsbToRgb(hsb);
}
public static PercentType[] hsbToRgbPercent(HSBType hsb) {
return ColorUtil.hsbToRgbPercent(hsb);
}
public static int hsbTosRgb(HSBType hsb) {
return ColorUtil.hsbTosRgb(hsb);
}
public static double[] hsbToXY(HSBType hsb) {
return ColorUtil.hsbToXY(hsb);
}
public static double[] hsbToXY(HSBType hsb, double[] gamutR, double[] gamutG, double[] gamutB) {
Gamut gamut = new Gamut(gamutR, gamutG, gamutB);
return ColorUtil.hsbToXY(hsb, gamut);
}
public static HSBType rgbToHsb(int[] rgb) throws IllegalArgumentException {
return ColorUtil.rgbToHsb(rgb);
}
public static HSBType rgbToHsb(PercentType[] rgb) throws IllegalArgumentException {
return ColorUtil.rgbToHsb(rgb);
}
public static HSBType xyToHsb(double[] xy) throws IllegalArgumentException {
return ColorUtil.xyToHsb(xy);
}
public static HSBType xyToHsb(double[] xy, double[] gamutR, double[] gamutG, double[] gamutB)
throws IllegalArgumentException {
Gamut gamut = new Gamut(gamutR, gamutG, gamutB);
return ColorUtil.xyToHsb(xy, gamut);
}
}

View File

@ -31,6 +31,7 @@ import org.openhab.core.library.unit.MetricPrefix;
import org.openhab.core.library.unit.SIUnits;
import org.openhab.core.library.unit.Units;
import org.openhab.core.model.script.actions.BusEvent;
import org.openhab.core.model.script.actions.CoreUtil;
import org.openhab.core.model.script.actions.Exec;
import org.openhab.core.model.script.actions.HTTP;
import org.openhab.core.model.script.actions.Log;
@ -100,6 +101,7 @@ public class ScriptImplicitlyImportedTypes extends ImplicitlyImportedFeatures {
result.add(Transformation.class);
result.add(ScriptExecution.class);
result.add(URLEncoder.class);
result.add(CoreUtil.class);
result.add(ImperialUnits.class);
result.add(MetricPrefix.class);