Search in sources :

Example 1 with InfoPanelItem

use of org.opennms.features.topology.api.info.item.InfoPanelItem in project opennms by OpenNMS.

the class LocationInfoPanelItemProvider method getContributions.

@Override
public Collection<? extends InfoPanelItem> getContributions(GraphContainer container) {
    final List<Vertex> vertices = new ArrayList<>(container.getGraph().getDisplayVertices());
    final Set<Integer> nodeIds = vertices.stream().filter(v -> v.getNodeID() != null).map(Vertex::getNodeID).collect(Collectors.toSet());
    if (nodeIds.isEmpty()) {
        return Collections.emptyList();
    }
    final List<GeolocationInfo> locations = geolocationService.getLocations(new GeolocationQueryBuilder().withNodeIds(nodeIds).withStatusCalculationStrategy(StatusCalculationStrategy.None).build());
    final List<Marker> markers = locations.stream().filter(locationInfo -> locationInfo.getCoordinates() != null).map(locationInfo -> {
        final Vertex vertex = vertices.stream().filter(v -> v.getNodeID() != null && locationInfo.getNodeInfo().getNodeId() == v.getNodeID()).findFirst().get();
        return new Marker(locationInfo.getCoordinates(), createTooltip(vertex, locationInfo.getAddressInfo()), container.getSelectionManager().isVertexRefSelected(vertex));
    }).collect(Collectors.toList());
    if (!markers.isEmpty()) {
        final LocationConfiguration config = new LocationConfiguration().withTileLayer(geolocationConfiguration.getTileServerUrl()).withMarker(markers).withInitialZoom(10).withLayerOptions(geolocationConfiguration.getOptions());
        final LocationComponent locationComponent = new LocationComponent(config, "mapId-" + getClass().getSimpleName().toLowerCase());
        locationComponent.setWidth(300, Sizeable.Unit.PIXELS);
        locationComponent.setHeight(300, Sizeable.Unit.PIXELS);
        return Collections.singleton(new DefaultInfoPanelItem().withTitle(String.format("Geolocation (%d/%d)", markers.size(), vertices.size())).withOrder(1).withComponent(locationComponent));
    }
    return Collections.emptyList();
}
Also used : AddressInfo(org.opennms.features.geolocation.api.AddressInfo) GraphContainer(org.opennms.features.topology.api.GraphContainer) GeolocationConfiguration(org.opennms.features.geolocation.api.GeolocationConfiguration) Collection(java.util.Collection) InfoPanelItem(org.opennms.features.topology.api.info.item.InfoPanelItem) Vertex(org.opennms.features.topology.api.topo.Vertex) Set(java.util.Set) LocationConfiguration(org.opennms.features.topology.app.internal.ui.geographical.LocationConfiguration) Marker(org.opennms.features.topology.app.internal.ui.geographical.Marker) LocationComponent(org.opennms.features.topology.app.internal.ui.geographical.LocationComponent) Collectors(java.util.stream.Collectors) Sizeable(com.vaadin.server.Sizeable) GeolocationQueryBuilder(org.opennms.features.geolocation.api.GeolocationQueryBuilder) ArrayList(java.util.ArrayList) Strings(com.google.common.base.Strings) List(java.util.List) GeolocationInfo(org.opennms.features.geolocation.api.GeolocationInfo) DefaultInfoPanelItem(org.opennms.features.topology.api.info.item.DefaultInfoPanelItem) StatusCalculationStrategy(org.opennms.features.geolocation.api.StatusCalculationStrategy) InfoPanelItemProvider(org.opennms.features.topology.api.info.InfoPanelItemProvider) Collections(java.util.Collections) GeolocationService(org.opennms.features.geolocation.api.GeolocationService) Vertex(org.opennms.features.topology.api.topo.Vertex) ArrayList(java.util.ArrayList) Marker(org.opennms.features.topology.app.internal.ui.geographical.Marker) LocationComponent(org.opennms.features.topology.app.internal.ui.geographical.LocationComponent) DefaultInfoPanelItem(org.opennms.features.topology.api.info.item.DefaultInfoPanelItem) LocationConfiguration(org.opennms.features.topology.app.internal.ui.geographical.LocationConfiguration) GeolocationQueryBuilder(org.opennms.features.geolocation.api.GeolocationQueryBuilder) GeolocationInfo(org.opennms.features.geolocation.api.GeolocationInfo)

Aggregations

Strings (com.google.common.base.Strings)1 Sizeable (com.vaadin.server.Sizeable)1 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 Collections (java.util.Collections)1 List (java.util.List)1 Set (java.util.Set)1 Collectors (java.util.stream.Collectors)1 AddressInfo (org.opennms.features.geolocation.api.AddressInfo)1 GeolocationConfiguration (org.opennms.features.geolocation.api.GeolocationConfiguration)1 GeolocationInfo (org.opennms.features.geolocation.api.GeolocationInfo)1 GeolocationQueryBuilder (org.opennms.features.geolocation.api.GeolocationQueryBuilder)1 GeolocationService (org.opennms.features.geolocation.api.GeolocationService)1 StatusCalculationStrategy (org.opennms.features.geolocation.api.StatusCalculationStrategy)1 GraphContainer (org.opennms.features.topology.api.GraphContainer)1 InfoPanelItemProvider (org.opennms.features.topology.api.info.InfoPanelItemProvider)1 DefaultInfoPanelItem (org.opennms.features.topology.api.info.item.DefaultInfoPanelItem)1 InfoPanelItem (org.opennms.features.topology.api.info.item.InfoPanelItem)1 Vertex (org.opennms.features.topology.api.topo.Vertex)1 LocationComponent (org.opennms.features.topology.app.internal.ui.geographical.LocationComponent)1