use of org.opennms.features.topology.api.GraphContainer in project opennms by OpenNMS.
the class RemoveFocusVerticesOperation method enabled.
@Override
public boolean enabled(List<VertexRef> targets, OperationContext operationContext) {
if (targets == null || targets.isEmpty()) {
return false;
}
final GraphContainer graphContainer = operationContext.getGraphContainer();
final WrappedVertexHopCriteria wrappedVertexHopCriteria = VertexHopGraphProvider.getWrappedVertexHopCriteria(graphContainer);
if (wrappedVertexHopCriteria.isEmpty()) {
return false;
}
for (VertexRef target : targets) {
// If any of the vertices are currently in the criteria, return true
if (wrappedVertexHopCriteria.contains(target)) {
return true;
}
}
return false;
}
use of org.opennms.features.topology.api.GraphContainer in project opennms by OpenNMS.
the class RemoveFocusVerticesOperation method execute.
@Override
public void execute(List<VertexRef> targets, final OperationContext operationContext) {
if (targets == null || targets.isEmpty()) {
return;
}
final GraphContainer graphContainer = operationContext.getGraphContainer();
final Set<VertexHopCriteria> criteriaForGraphContainer = Criteria.getCriteriaForGraphContainer(graphContainer, VertexHopCriteria.class);
for (VertexHopCriteria eachCriteria : criteriaForGraphContainer) {
for (VertexRef eachTarget : targets) {
if (eachCriteria.getVertices().contains(eachTarget)) {
graphContainer.removeCriteria(eachCriteria);
}
}
}
graphContainer.redoLayout();
}
use of org.opennms.features.topology.api.GraphContainer in project opennms by OpenNMS.
the class SetFocusVertexOperation method execute.
@Override
public void execute(List<VertexRef> targets, OperationContext operationContext) {
if (targets == null || targets.isEmpty()) {
return;
}
final GraphContainer graphContainer = operationContext.getGraphContainer();
graphContainer.findCriteria(VertexHopGraphProvider.VertexHopCriteria.class).forEach(vertexHopCriteria -> graphContainer.removeCriteria(vertexHopCriteria));
new AddFocusVerticesOperation().execute(targets, operationContext);
}
use of org.opennms.features.topology.api.GraphContainer in project opennms by OpenNMS.
the class BreadcrumbCriteria method handleClick.
public void handleClick(Breadcrumb breadcrumb, GraphContainer graphContainer) {
final GraphProvider targetGraphProvider = graphContainer.getTopologyServiceClient().getGraphProviderBy(breadcrumb.getTargetNamespace());
if (isLeaf(breadcrumb)) {
if (breadcrumb.getSourceVertices().isEmpty()) {
final List<VertexRef> defaultFocus = targetGraphProvider.getDefaults().getCriteria().stream().filter(c -> c instanceof VertexHopGraphProvider.VertexHopCriteria).map(c -> ((VertexHopGraphProvider.VertexHopCriteria) c).getVertices()).flatMap(v -> v.stream()).collect(Collectors.toList());
handleClick(graphContainer, targetGraphProvider, defaultFocus, breadcrumb);
} else {
List<VertexRef> oppositeVertices = breadcrumb.getSourceVertices().stream().flatMap(sourceVertex -> getOppositeVertices(graphContainer, breadcrumb.getTargetNamespace(), sourceVertex).stream()).collect(Collectors.toList());
handleClick(graphContainer, targetGraphProvider, oppositeVertices, breadcrumb);
}
} else {
Breadcrumb next = getNext(breadcrumb);
handleClick(graphContainer, targetGraphProvider, next.getSourceVertices(), breadcrumb);
}
}
use of org.opennms.features.topology.api.GraphContainer 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(v -> v.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();
}
Aggregations