Search in sources :

Example 1 with ColorpickerImpl

use of org.openhab.core.model.sitemap.sitemap.impl.ColorpickerImpl in project openhab-core by openhab.

the class UIComponentSitemapProvider method buildWidget.

@Nullable
protected Widget buildWidget(UIComponent component) {
    Widget widget = null;
    switch(component.getType()) {
        case "Frame":
            FrameImpl frameWidget = (FrameImpl) SitemapFactory.eINSTANCE.createFrame();
            widget = frameWidget;
            break;
        case "Text":
            TextImpl textWidget = (TextImpl) SitemapFactory.eINSTANCE.createText();
            widget = textWidget;
            break;
        case "Group":
            GroupImpl groupWidget = (GroupImpl) SitemapFactory.eINSTANCE.createGroup();
            widget = groupWidget;
            break;
        case "Image":
            ImageImpl imageWidget = (ImageImpl) SitemapFactory.eINSTANCE.createImage();
            widget = imageWidget;
            setWidgetPropertyFromComponentConfig(widget, component, "url", SitemapPackage.IMAGE__URL);
            setWidgetPropertyFromComponentConfig(widget, component, "refresh", SitemapPackage.IMAGE__REFRESH);
            break;
        case "Video":
            VideoImpl videoWidget = (VideoImpl) SitemapFactory.eINSTANCE.createVideo();
            widget = videoWidget;
            setWidgetPropertyFromComponentConfig(widget, component, "url", SitemapPackage.VIDEO__URL);
            setWidgetPropertyFromComponentConfig(widget, component, "encoding", SitemapPackage.VIDEO__ENCODING);
            break;
        case "Chart":
            ChartImpl chartWidget = (ChartImpl) SitemapFactory.eINSTANCE.createChart();
            widget = chartWidget;
            setWidgetPropertyFromComponentConfig(widget, component, "service", SitemapPackage.CHART__SERVICE);
            setWidgetPropertyFromComponentConfig(widget, component, "refresh", SitemapPackage.CHART__REFRESH);
            setWidgetPropertyFromComponentConfig(widget, component, "period", SitemapPackage.CHART__PERIOD);
            setWidgetPropertyFromComponentConfig(widget, component, "legend", SitemapPackage.CHART__LEGEND);
            break;
        case "Webview":
            WebviewImpl webviewWidget = (WebviewImpl) SitemapFactory.eINSTANCE.createWebview();
            widget = webviewWidget;
            setWidgetPropertyFromComponentConfig(widget, component, "height", SitemapPackage.WEBVIEW__HEIGHT);
            setWidgetPropertyFromComponentConfig(widget, component, "url", SitemapPackage.WEBVIEW__URL);
            break;
        case "Switch":
            SwitchImpl switchWidget = (SwitchImpl) SitemapFactory.eINSTANCE.createSwitch();
            addWidgetMappings(switchWidget.getMappings(), component);
            widget = switchWidget;
            break;
        case "Mapview":
            MapviewImpl mapviewWidget = (MapviewImpl) SitemapFactory.eINSTANCE.createMapview();
            widget = mapviewWidget;
            setWidgetPropertyFromComponentConfig(widget, component, "height", SitemapPackage.WEBVIEW__HEIGHT);
            break;
        case "Slider":
            SliderImpl sliderWidget = (SliderImpl) SitemapFactory.eINSTANCE.createSlider();
            widget = sliderWidget;
            setWidgetPropertyFromComponentConfig(widget, component, "minValue", SitemapPackage.SLIDER__MIN_VALUE);
            setWidgetPropertyFromComponentConfig(widget, component, "maxValue", SitemapPackage.SLIDER__MAX_VALUE);
            setWidgetPropertyFromComponentConfig(widget, component, "step", SitemapPackage.SLIDER__STEP);
            setWidgetPropertyFromComponentConfig(widget, component, "switchEnabled", SitemapPackage.SLIDER__SWITCH_ENABLED);
            setWidgetPropertyFromComponentConfig(widget, component, "sendFrequency", SitemapPackage.SLIDER__FREQUENCY);
            break;
        case "Selection":
            SelectionImpl selectionWidget = (SelectionImpl) SitemapFactory.eINSTANCE.createSelection();
            addWidgetMappings(selectionWidget.getMappings(), component);
            widget = selectionWidget;
            break;
        case "List":
            ListImpl listWidget = (ListImpl) SitemapFactory.eINSTANCE.createList();
            widget = listWidget;
            setWidgetPropertyFromComponentConfig(widget, component, "separator", SitemapPackage.LIST__SEPARATOR);
            break;
        case "Setpoint":
            SetpointImpl setpointWidget = (SetpointImpl) SitemapFactory.eINSTANCE.createSetpoint();
            widget = setpointWidget;
            setWidgetPropertyFromComponentConfig(widget, component, "minValue", SitemapPackage.SETPOINT__MIN_VALUE);
            setWidgetPropertyFromComponentConfig(widget, component, "maxValue", SitemapPackage.SETPOINT__MAX_VALUE);
            setWidgetPropertyFromComponentConfig(widget, component, "step", SitemapPackage.SETPOINT__STEP);
            break;
        case "Colorpicker":
            ColorpickerImpl colorpickerWidget = (ColorpickerImpl) SitemapFactory.eINSTANCE.createColorpicker();
            widget = colorpickerWidget;
            setWidgetPropertyFromComponentConfig(widget, component, "frequency", SitemapPackage.COLORPICKER__FREQUENCY);
            break;
        case "Default":
            DefaultImpl defaultWidget = (DefaultImpl) SitemapFactory.eINSTANCE.createDefault();
            widget = defaultWidget;
            setWidgetPropertyFromComponentConfig(widget, component, "height", SitemapPackage.DEFAULT__HEIGHT);
            break;
        default:
            logger.warn("Unknown sitemap component type {}", component.getType());
            break;
    }
    if (widget != null) {
        setWidgetPropertyFromComponentConfig(widget, component, "label", SitemapPackage.WIDGET__LABEL);
        setWidgetPropertyFromComponentConfig(widget, component, "icon", SitemapPackage.WIDGET__ICON);
        setWidgetPropertyFromComponentConfig(widget, component, "item", SitemapPackage.WIDGET__ITEM);
        if (widget instanceof LinkableWidget) {
            LinkableWidget linkableWidget = (LinkableWidget) widget;
            if (component.getSlots() != null && component.getSlots().containsKey("widgets")) {
                for (UIComponent childComponent : component.getSlot("widgets")) {
                    Widget childWidget = buildWidget(childComponent);
                    if (childWidget != null) {
                        linkableWidget.getChildren().add(childWidget);
                    }
                }
            }
        }
    // TODO: process visibility & color rules
    }
    return widget;
}
Also used : SelectionImpl(org.openhab.core.model.sitemap.sitemap.impl.SelectionImpl) FrameImpl(org.openhab.core.model.sitemap.sitemap.impl.FrameImpl) Widget(org.openhab.core.model.sitemap.sitemap.Widget) LinkableWidget(org.openhab.core.model.sitemap.sitemap.LinkableWidget) UIComponent(org.openhab.core.ui.components.UIComponent) RootUIComponent(org.openhab.core.ui.components.RootUIComponent) SwitchImpl(org.openhab.core.model.sitemap.sitemap.impl.SwitchImpl) TextImpl(org.openhab.core.model.sitemap.sitemap.impl.TextImpl) ImageImpl(org.openhab.core.model.sitemap.sitemap.impl.ImageImpl) ColorpickerImpl(org.openhab.core.model.sitemap.sitemap.impl.ColorpickerImpl) LinkableWidget(org.openhab.core.model.sitemap.sitemap.LinkableWidget) MapviewImpl(org.openhab.core.model.sitemap.sitemap.impl.MapviewImpl) ChartImpl(org.openhab.core.model.sitemap.sitemap.impl.ChartImpl) ListImpl(org.openhab.core.model.sitemap.sitemap.impl.ListImpl) GroupImpl(org.openhab.core.model.sitemap.sitemap.impl.GroupImpl) SetpointImpl(org.openhab.core.model.sitemap.sitemap.impl.SetpointImpl) DefaultImpl(org.openhab.core.model.sitemap.sitemap.impl.DefaultImpl) SliderImpl(org.openhab.core.model.sitemap.sitemap.impl.SliderImpl) VideoImpl(org.openhab.core.model.sitemap.sitemap.impl.VideoImpl) WebviewImpl(org.openhab.core.model.sitemap.sitemap.impl.WebviewImpl) Nullable(org.eclipse.jdt.annotation.Nullable)

Aggregations

Nullable (org.eclipse.jdt.annotation.Nullable)1 LinkableWidget (org.openhab.core.model.sitemap.sitemap.LinkableWidget)1 Widget (org.openhab.core.model.sitemap.sitemap.Widget)1 ChartImpl (org.openhab.core.model.sitemap.sitemap.impl.ChartImpl)1 ColorpickerImpl (org.openhab.core.model.sitemap.sitemap.impl.ColorpickerImpl)1 DefaultImpl (org.openhab.core.model.sitemap.sitemap.impl.DefaultImpl)1 FrameImpl (org.openhab.core.model.sitemap.sitemap.impl.FrameImpl)1 GroupImpl (org.openhab.core.model.sitemap.sitemap.impl.GroupImpl)1 ImageImpl (org.openhab.core.model.sitemap.sitemap.impl.ImageImpl)1 ListImpl (org.openhab.core.model.sitemap.sitemap.impl.ListImpl)1 MapviewImpl (org.openhab.core.model.sitemap.sitemap.impl.MapviewImpl)1 SelectionImpl (org.openhab.core.model.sitemap.sitemap.impl.SelectionImpl)1 SetpointImpl (org.openhab.core.model.sitemap.sitemap.impl.SetpointImpl)1 SliderImpl (org.openhab.core.model.sitemap.sitemap.impl.SliderImpl)1 SwitchImpl (org.openhab.core.model.sitemap.sitemap.impl.SwitchImpl)1 TextImpl (org.openhab.core.model.sitemap.sitemap.impl.TextImpl)1 VideoImpl (org.openhab.core.model.sitemap.sitemap.impl.VideoImpl)1 WebviewImpl (org.openhab.core.model.sitemap.sitemap.impl.WebviewImpl)1 RootUIComponent (org.openhab.core.ui.components.RootUIComponent)1 UIComponent (org.openhab.core.ui.components.UIComponent)1