Skip to content
This repository has been archived by the owner on May 7, 2020. It is now read-only.

Commit

Permalink
Paper UI: display representation property in Things view & Inbox (#5169)
Browse files Browse the repository at this point in the history
* Add representation property to dicovered inbox entries
* Remove thing UID display from inbox results
* Add Magic discovery service

Signed-off-by: Henning Treu <henning.treu@telekom.de>
  • Loading branch information
htreu authored and kaikreuzer committed Mar 15, 2018
1 parent 14c1825 commit aa0278b
Show file tree
Hide file tree
Showing 8 changed files with 64 additions and 8 deletions.
Expand Up @@ -33,7 +33,7 @@
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.equinox.p2.director.app.product"/>
<booleanAttribute key="run_in_ui_thread" value="false"/>
<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.eclipsesource.jaxrs.jersey-min@default:default,com.google.gson*2.2.4.v201311231704@default:default,com.google.gson*2.7.0.v20170129-0911@default:default,com.google.guava@default:default,com.jayway.jsonpath.json-path@default:default,javax.activation@default:default,javax.servlet*3.1.0.v201410161800@default:default,javax.transaction@default:false,javax.xml.bind@default:default,javax.xml.stream@default:default,javax.xml@default:default,net.bytebuddy.byte-buddy-agent@default:default,net.bytebuddy.byte-buddy@default:default,net.minidev.accessors-smart@default:default,net.minidev.json-smart@default:default,org.apache.ant@default:default,org.apache.commons.collections@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.felix.scr@default:default,org.codehaus.groovy@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:default,org.eclipse.equinox.cm@3:true,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.jetty.osgi.alpn.fragment@default:false,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.hamcrest.integration@default:default,org.hamcrest.library@default:default,org.hamcrest.text@default:default,org.hamcrest@default:default,org.junit@default:default,org.mockito.mockito-core@default:default,org.objenesis@default:default,org.slf4j.api@default:default"/>
<stringAttribute key="selected_target_plugins" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.eclipsesource.jaxrs.jersey-min@default:default,com.google.gson*2.2.4.v201311231704@default:default,com.google.gson*2.7.0.v20170129-0911@default:default,com.google.guava@default:default,com.jayway.jsonpath.json-path@default:default,javax.activation@default:default,javax.measure.unit-api@default:default,javax.servlet*3.1.0.v201410161800@default:default,javax.transaction@default:false,javax.xml.bind@default:default,javax.xml.stream@default:default,javax.xml@default:default,net.bytebuddy.byte-buddy-agent@default:default,net.bytebuddy.byte-buddy@default:default,net.minidev.accessors-smart@default:default,net.minidev.json-smart@default:default,org.apache.ant@default:default,org.apache.commons.collections@default:default,org.apache.commons.io@default:default,org.apache.commons.lang@default:default,org.apache.felix.gogo.command@default:default,org.apache.felix.gogo.runtime@default:default,org.apache.felix.gogo.shell@default:default,org.apache.felix.scr@default:default,org.codehaus.groovy@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.equinox.app@default:default,org.eclipse.equinox.cm@3:true,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.region@default:false,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.supplement@default:default,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.jetty.osgi.alpn.fragment@default:false,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.hamcrest.integration@default:default,org.hamcrest.library@default:default,org.hamcrest.text@default:default,org.hamcrest@default:default,org.junit@default:default,org.mockito.mockito-core@default:default,org.objenesis@default:default,org.slf4j.api@default:default,tec.uom.lib.uom-lib-common@default:default,tec.uom.se@default:default"/>
<stringAttribute key="selected_workspace_plugins" value="org.eclipse.smarthome.config.core@default:true,org.eclipse.smarthome.config.discovery@default:true,org.eclipse.smarthome.config.xml@default:default,org.eclipse.smarthome.core.autoupdate@default:default,org.eclipse.smarthome.core.persistence@default:default,org.eclipse.smarthome.core.thing@default:true,org.eclipse.smarthome.core@default:true,org.eclipse.smarthome.io.console@default:default,org.eclipse.smarthome.io.rest.core.test@default:false,org.eclipse.smarthome.io.rest.core@default:true,org.eclipse.smarthome.io.rest@default:true,org.eclipse.smarthome.test@default:default"/>
<booleanAttribute key="show_selected_only" value="false"/>
<booleanAttribute key="tracing" value="false"/>
Expand Down
Expand Up @@ -40,7 +40,7 @@
import org.junit.Test;
import org.mockito.Mock;

public class EnrichThingDTOMapperTest {
public class EnrichedThingDTOMapperTest {

private static final String ITEM_TYPE = "itemType";
private static final String THING_TYPE_UID = "thing:type:uid";
Expand Down
Expand Up @@ -68,11 +68,12 @@
<thing-type id="configurable-thing">
<label>Magic Configurable Thing</label>
<description>A thing that can be configured.</description>

<channels>
<channel id="switch" typeId="switch" />
</channels>

<representation-property>serialNumber</representation-property>

<config-description uri="thing-type:magic:config">
<parameter name="interval" type="integer" min="1" max="100">
<label>Integer</label>
Expand Down
Expand Up @@ -17,6 +17,7 @@ Import-Package:
javax.servlet.http,
org.eclipse.jdt.annotation;resolution:=optional,
org.eclipse.smarthome.config.core,
org.eclipse.smarthome.config.discovery,
org.eclipse.smarthome.core.library.types,
org.eclipse.smarthome.core.thing,
org.eclipse.smarthome.core.thing.binding,
Expand Down
@@ -0,0 +1,57 @@
/**
* Copyright (c) 2014,2018 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* 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.eclipse.smarthome.magic.binding.internal;

import java.util.Arrays;
import java.util.HashSet;
import java.util.UUID;

import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.smarthome.config.discovery.AbstractDiscoveryService;
import org.eclipse.smarthome.config.discovery.DiscoveryResult;
import org.eclipse.smarthome.config.discovery.DiscoveryResultBuilder;
import org.eclipse.smarthome.config.discovery.DiscoveryService;
import org.eclipse.smarthome.core.thing.Thing;
import org.eclipse.smarthome.core.thing.ThingUID;
import org.eclipse.smarthome.magic.binding.MagicBindingConstants;
import org.osgi.service.component.annotations.Component;

/**
* The {@link MagicDiscoveryService} magically discovers magic things.
*
* @author Henning Treu - initial contribution
*
*/
@NonNullByDefault
@Component(service = DiscoveryService.class, immediate = true)
public class MagicDiscoveryService extends AbstractDiscoveryService {

public MagicDiscoveryService() throws IllegalArgumentException {
super(new HashSet<>(Arrays.asList(MagicBindingConstants.THING_TYPE_CONFIG_THING)), 0);
}

@Override
protected void startScan() {
String serialNumber = createRandomSerialNumber();
DiscoveryResult discoveryResult = DiscoveryResultBuilder
.create(new ThingUID(MagicBindingConstants.THING_TYPE_CONFIG_THING, serialNumber))
.withRepresentationProperty(Thing.PROPERTY_SERIAL_NUMBER)
.withProperty(Thing.PROPERTY_SERIAL_NUMBER, serialNumber).withLabel("Magic Thing").build();
thingDiscovered(discoveryResult);
}

private String createRandomSerialNumber() {
return UUID.randomUUID().toString();
}

}
Expand Up @@ -359,9 +359,6 @@ md-slider.md-default-theme.hue .md-thumb:after {

.item-content .description {
width: 100%;
display: flex;
flex-wrap: wrap;
align-items: center;
}

.item-content .description h3 {
Expand Down
Expand Up @@ -21,7 +21,7 @@ <h3>
{{discoveryResult.label}} <small ng-show="discoveryResult.flag === 'IGNORED'" class="badge">IGNORED</small>
</h3>
<p>{{getThingTypeLabel(discoveryResult.thingTypeUID)}}</p>
<p>{{discoveryResult.thingUID}}</p>
<p ng-if="key === discoveryResult.representationProperty" ng-repeat="(key, value) in discoveryResult.properties")> {{value}}</p>
</div>
<div class="actions">
<i class="material-icons" ng-show="discoveryResult.flag === 'IGNORED'" ng-click="unignore(discoveryResult.thingUID)" aria-label="Unignore">visibility</i> <i class="material-icons" ng-show="discoveryResult.flag !== 'IGNORED'" ng-click="ignore(discoveryResult.thingUID)" aria-label="Ignore">visibility_off</i> <i class="material-icons" ng-click="remove(discoveryResult.thingUID, $event)" aria-label="Delete">delete</i>
Expand Down
Expand Up @@ -3,4 +3,4 @@
<td>{{key}}</td>
<td>{{value}}</td>
</tr>
</table>
</table>

0 comments on commit aa0278b

Please sign in to comment.