@Override public void graphChanged(GraphContainer graphContainer) { final BreadcrumbCriteria criteria = Criteria.getSingleCriteriaForGraphContainer(graphContainer, BreadcrumbCriteria.class, true); final HorizontalLayout breadcrumbLayout = (HorizontalLayout) getCompositionRoot(); breadcrumbLayout.removeAllComponents(); // Verify that breadcrumbs are enabled if (graphContainer.getTopologyServiceClient().getBreadcrumbStrategy() == BreadcrumbStrategy.SHORTEST_PATH_TO_ROOT) { final Collection<Vertex> displayVertices = graphContainer.getGraph().getDisplayVertices(); if (!displayVertices.isEmpty()) { final PathTree pathTree = BreadcrumbPathCalculator.findPath(graphContainer.getTopologyServiceClient(), displayVertices.stream().map(v -> (VertexRef) v).collect(Collectors.toSet())); final List<Breadcrumb> breadcrumbs = pathTree.toBreadcrumbs(); criteria.setBreadcrumbs(breadcrumbs); } for (Breadcrumb eachBreadcrumb : criteria.getBreadcrumbs()) { if (breadcrumbLayout.getComponentCount() >= 1) { breadcrumbLayout.addComponent(new Label(" > ")); } breadcrumbLayout.addComponent(createButton(graphContainer, eachBreadcrumb)); } } }
@Test public void completedLayout() throws Exception { // GIVEN BasicUploadField field = (BasicUploadField) basicUploadBuilder.createField(); Upload upload = new Upload(); UploadReceiver receiver = mock(UploadReceiver.class); when(receiver.getFileName()).thenReturn("filename.jpg"); upload.setReceiver(receiver); FinishedEvent event = new FinishedEvent(upload, "filename.jpg", "MIMEType", 0L); // WHEN field.uploadFinished(event); // THEN CssLayout layout = field.getCssLayout(); assertEquals(3, layout.getComponentCount()); assertThat(layout.getComponent(0), instanceOf(FormLayout.class)); assertThat(layout.getComponent(0).getStyleName(), containsString("file-details")); assertThat(layout.getComponent(1), instanceOf(HorizontalLayout.class)); HorizontalLayout horizontalLayout = (HorizontalLayout) layout.getComponent(1); assertEquals(2, horizontalLayout.getComponentCount()); assertThat(horizontalLayout.getComponent(0), instanceOf(Upload.class)); assertThat(layout.getComponent(2), instanceOf(Label.class)); assertTrue(layout.getComponent(2).getStyleName().contains("preview-image")); }