use of org.kie.workbench.common.screens.library.api.ProjectAssetListUpdated in project kie-wb-common by kiegroup.
the class PopulatedLibraryScreenTest method testOnAssetListUpdated.
@Test
public void testOnAssetListUpdated() {
setupProjectContext(SPACE_NAME);
libraryScreen.onAssetListUpdated(new ProjectAssetListUpdated(project1));
ArgumentCaptor<WorkspaceProject> projectCaptor = ArgumentCaptor.forClass(WorkspaceProject.class);
verify(libraryService, times(4)).getNumberOfAssets(projectCaptor.capture());
Assert.assertSame(project1, projectCaptor.getValue());
verify(libraryScreen.libraryTiles.first(), times(2)).setNumberOfAssets(anyInt());
}
use of org.kie.workbench.common.screens.library.api.ProjectAssetListUpdated in project kie-wb-common by kiegroup.
the class LibraryAssetUpdateNotifier method notifyOnUpdatedAssets.
public void notifyOnUpdatedAssets(@Observes @Named(Constants.INDEXER_ID) BatchIndexEvent event) {
if (!isUpdateNotifierEnabled()) {
return;
}
// Assume that all indexed items are from the same project.
event.getIndexEvents().stream().flatMap(evt -> {
switch(evt.getKind()) {
case Deleted:
return Stream.of(((DeletedEvent) evt).getDeleted().getKey());
case NewlyIndexed:
return Stream.of(((NewlyIndexedEvent) evt).getKObject().getKey());
case Renamed:
return Stream.of(((RenamedEvent) evt).getTarget().getKey());
default:
return Stream.empty();
}
}).map(path -> org.uberfire.java.nio.file.Paths.get(path)).filter(path -> libraryIndexer.supportsPath(path)).flatMap(path -> {
try {
WorkspaceProject project = projectService.resolveProject(Paths.convert(path));
return (project == null) ? Stream.empty() : Stream.of(project);
} catch (Throwable t) {
return Stream.empty();
}
}).map(project -> new ProjectAssetListUpdated(project)).findFirst().ifPresent(clientEvent -> {
logger.info("Sending indexing notification for project [{}].", clientEvent.getProject().getRepository().getIdentifier());
assetListUpdateEvent.fire(clientEvent);
});
}
use of org.kie.workbench.common.screens.library.api.ProjectAssetListUpdated in project kie-wb-common by kiegroup.
the class LibraryAssetUpdateNotifier method onProjectIndexingFinishedEvent.
private void onProjectIndexingFinishedEvent(@Observes IndexingFinishedEvent event) {
if (!isUpdateNotifierEnabled()) {
return;
}
WorkspaceProject project = projectService.resolveProject(event.getPath());
if (project == null) {
throw new IllegalStateException("Cannot resolve Project for KClusterId: '" + event.getkClusterId() + "' and path: '" + event.getPath().toString() + "'.");
}
assetListUpdateEvent.fire(new ProjectAssetListUpdated(project));
}
use of org.kie.workbench.common.screens.library.api.ProjectAssetListUpdated in project kie-wb-common by kiegroup.
the class PopulatedLibraryScreenTest method createAssetListUpdatedEvent.
private ProjectAssetListUpdated createAssetListUpdatedEvent(String spaceName, String projectName) {
ProjectAssetListUpdated projectAssetListUpdated = mock(ProjectAssetListUpdated.class);
WorkspaceProject project = this.mockProject(projectName);
when(project.getSpace()).thenReturn(new Space(spaceName));
when(projectAssetListUpdated.getProject()).thenReturn(project);
return projectAssetListUpdated;
}
Aggregations