Search in sources :

Example 1 with PageRequest

use of edu.stanford.bmir.protege.web.shared.pagination.PageRequest in project webprotege by protegeproject.

the class GetCollectionItemsActionHandler method execute.

@Nonnull
@Override
public GetCollectionItemsResult execute(@Nonnull GetCollectionItemsAction action, @Nonnull ExecutionContext executionContext) {
    PageRequest pageRequest = action.getPageRequest();
    List<CollectionItem> elementIdList = repository.list(action.getCollectionId(), pageRequest.getSkip(), pageRequest.getPageSize());
    long totalItemsCount = repository.count(action.getCollectionId());
    int pageCount = (int) (totalItemsCount / pageRequest.getPageSize()) + 1;
    return new GetCollectionItemsResult(new Page<>(pageRequest.getPageNumber(), pageCount, elementIdList, elementIdList.size()), pageRequest);
}
Also used : PageRequest(edu.stanford.bmir.protege.web.shared.pagination.PageRequest) GetCollectionItemsResult(edu.stanford.bmir.protege.web.shared.collection.GetCollectionItemsResult) CollectionItem(edu.stanford.bmir.protege.web.shared.collection.CollectionItem) Nonnull(javax.annotation.Nonnull)

Example 2 with PageRequest

use of edu.stanford.bmir.protege.web.shared.pagination.PageRequest in project webprotege by protegeproject.

the class GetDeprecatedEntitiesActionHandler method execute.

@Nonnull
@Override
public GetDeprecatedEntitiesResult execute(@Nonnull GetDeprecatedEntitiesAction action, @Nonnull ExecutionContext executionContext) {
    PageRequest pageRequest = action.getPageRequest();
    Optional<Page<OWLEntityData>> page = entityStream(action.getEntityTypes(), rootOntology, Imports.INCLUDED).filter(deprecatedEntityChecker::isDeprecated).map(renderingManager::getRendering).sorted().collect(toPageNumber(pageRequest.getPageNumber()).forPageSize(pageRequest.getPageSize()));
    return new GetDeprecatedEntitiesResult(page.orElse(Page.emptyPage()));
}
Also used : PageRequest(edu.stanford.bmir.protege.web.shared.pagination.PageRequest) GetDeprecatedEntitiesResult(edu.stanford.bmir.protege.web.shared.entity.GetDeprecatedEntitiesResult) Page(edu.stanford.bmir.protege.web.shared.pagination.Page) Nonnull(javax.annotation.Nonnull)

Example 3 with PageRequest

use of edu.stanford.bmir.protege.web.shared.pagination.PageRequest in project webprotege by protegeproject.

the class PerformEntitySearchActionHandler method execute.

@Nonnull
@Override
public PerformEntitySearchResult execute(@Nonnull PerformEntitySearchAction action, @Nonnull ExecutionContext executionContext) {
    Set<EntityType<?>> entityTypes = action.getEntityTypes();
    String searchString = action.getSearchString();
    EntitySearcher entitySearcher = EntitySearcher.get(projectId, tagsManager, executionContext.getUserId(), () -> entityStream(entityTypes, rootOntology, Imports.INCLUDED), renderer, entityTypes, searchString);
    PageRequest pageRequest = action.getPageRequest();
    int pageSize = pageRequest.getPageSize();
    entitySearcher.setLimit(pageSize);
    int pageNumber = pageRequest.getPageNumber();
    entitySearcher.setSkip((pageNumber - 1) * pageSize);
    entitySearcher.invoke();
    int totalSearchResults = entitySearcher.getSearchResultsCount();
    List<EntitySearchResult> results = entitySearcher.getResults();
    int pageCount = (totalSearchResults / pageSize) + 1;
    Page<EntitySearchResult> page = new Page<>(pageNumber > pageCount ? 1 : pageNumber, pageCount, results, totalSearchResults);
    return new PerformEntitySearchResult(totalSearchResults, page);
}
Also used : EntityType(org.semanticweb.owlapi.model.EntityType) PageRequest(edu.stanford.bmir.protege.web.shared.pagination.PageRequest) Page(edu.stanford.bmir.protege.web.shared.pagination.Page) EntitySearchResult(edu.stanford.bmir.protege.web.shared.search.EntitySearchResult) PerformEntitySearchResult(edu.stanford.bmir.protege.web.shared.search.PerformEntitySearchResult) PerformEntitySearchResult(edu.stanford.bmir.protege.web.shared.search.PerformEntitySearchResult) Nonnull(javax.annotation.Nonnull)

Example 4 with PageRequest

use of edu.stanford.bmir.protege.web.shared.pagination.PageRequest in project webprotege by protegeproject.

the class GetCommentedEntitiesActionHandler method execute.

@Nonnull
@Override
public GetCommentedEntitiesResult execute(@Nonnull GetCommentedEntitiesAction action, @Nonnull ExecutionContext executionContext) {
    PageRequest request = action.getPageRequest();
    List<EntityDiscussionThread> allThreads = repository.getThreadsInProject(action.getProjectId());
    Map<OWLEntity, List<EntityDiscussionThread>> commentsByEntity = allThreads.stream().collect(groupingBy(EntityDiscussionThread::getEntity));
    List<CommentedEntityData> result = new ArrayList<>();
    commentsByEntity.forEach((entity, threads) -> {
        if (rootOntology.containsEntityInSignature(entity)) {
            int totalThreadCount = threads.size();
            int openThreadCount = (int) threads.stream().filter(thread -> thread.getStatus().isOpen()).count();
            List<Comment> entityComments = threads.stream().flatMap(thread -> thread.getComments().stream()).collect(toList());
            Comment lastComment = entityComments.stream().max(comparing(c -> c.getUpdatedAt().orElse(c.getCreatedAt()))).get();
            List<UserId> participants = entityComments.stream().map(Comment::getCreatedBy).collect(toList());
            result.add(new CommentedEntityData(renderer.getRendering(entity), totalThreadCount, openThreadCount, entityComments.size(), lastComment.getUpdatedAt().orElse(lastComment.getCreatedAt()), lastComment.getCreatedBy(), participants));
        }
    });
    if (action.getSortingKey() == SortingKey.SORT_BY_ENTITY) {
        result.sort(byEntity);
    } else {
        result.sort(byLastModified);
    }
    Pager<CommentedEntityData> pager = Pager.getPagerForPageSize(result, request.getPageSize());
    return new GetCommentedEntitiesResult(action.getProjectId(), pager.getPage(request.getPageNumber()));
}
Also used : HasGetRendering(edu.stanford.bmir.protege.web.server.mansyntax.render.HasGetRendering) CommentedEntityData.byLastModified(edu.stanford.bmir.protege.web.shared.entity.CommentedEntityData.byLastModified) edu.stanford.bmir.protege.web.shared.issues(edu.stanford.bmir.protege.web.shared.issues) RootOntology(edu.stanford.bmir.protege.web.server.inject.project.RootOntology) Collectors.groupingBy(java.util.stream.Collectors.groupingBy) Pager(edu.stanford.bmir.protege.web.server.pagination.Pager) ArrayList(java.util.ArrayList) Inject(javax.inject.Inject) AbstractProjectActionHandler(edu.stanford.bmir.protege.web.server.dispatch.AbstractProjectActionHandler) PageRequest(edu.stanford.bmir.protege.web.shared.pagination.PageRequest) UserId(edu.stanford.bmir.protege.web.shared.user.UserId) OWLOntology(org.semanticweb.owlapi.model.OWLOntology) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) CommentedEntityData.byEntity(edu.stanford.bmir.protege.web.shared.entity.CommentedEntityData.byEntity) AccessManager(edu.stanford.bmir.protege.web.server.access.AccessManager) ExecutionContext(edu.stanford.bmir.protege.web.server.dispatch.ExecutionContext) Map(java.util.Map) CommentedEntityData(edu.stanford.bmir.protege.web.shared.entity.CommentedEntityData) OWLEntity(org.semanticweb.owlapi.model.OWLEntity) Comparator.comparing(java.util.Comparator.comparing) Nonnull(javax.annotation.Nonnull) OWLEntity(org.semanticweb.owlapi.model.OWLEntity) ArrayList(java.util.ArrayList) PageRequest(edu.stanford.bmir.protege.web.shared.pagination.PageRequest) UserId(edu.stanford.bmir.protege.web.shared.user.UserId) ArrayList(java.util.ArrayList) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) CommentedEntityData(edu.stanford.bmir.protege.web.shared.entity.CommentedEntityData) Nonnull(javax.annotation.Nonnull)

Example 5 with PageRequest

use of edu.stanford.bmir.protege.web.shared.pagination.PageRequest in project webprotege by protegeproject.

the class GetIndividualsActionHandler method execute.

@Nonnull
@Override
public GetIndividualsResult execute(@Nonnull GetIndividualsAction action, @Nonnull ExecutionContext executionContext) {
    Stream<OWLNamedIndividual> stream;
    if (action.getType().isOWLThing()) {
        stream = rootOntology.getIndividualsInSignature(Imports.INCLUDED).stream();
    } else {
        stream = rootOntology.getImportsClosure().stream().flatMap(o -> o.getClassAssertionAxioms(action.getType()).stream()).map(OWLClassAssertionAxiom::getIndividual).filter(OWLIndividual::isNamed).map(OWLIndividual::asOWLNamedIndividual);
    }
    Counter counter = new Counter();
    List<OWLNamedIndividualData> individualsData = stream.peek(i -> counter.increment()).map(renderingManager::getRendering).filter(i -> {
        String searchString = action.getFilterString();
        return searchString.isEmpty() || StringUtils.containsIgnoreCase(i.getBrowserText(), searchString);
    }).distinct().sorted().collect(toList());
    PageRequest pageRequest = action.getPageRequest();
    Pager<OWLNamedIndividualData> pager = Pager.getPagerForPageSize(individualsData, pageRequest.getPageSize());
    Page<OWLNamedIndividualData> page = pager.getPage(pageRequest.getPageNumber());
    OWLClassData type = renderingManager.getRendering(action.getType());
    logger.info(BROWSING, "{} {} retrieved instances of {} ({})", projectId, executionContext.getUserId(), action.getType(), renderingManager.getRendering(action.getType()).getBrowserText());
    return new GetIndividualsResult(type, page, counter.getCount(), individualsData.size());
}
Also used : StringUtils(org.apache.commons.lang.StringUtils) RootOntology(edu.stanford.bmir.protege.web.server.inject.project.RootOntology) LoggerFactory(org.slf4j.LoggerFactory) OWLNamedIndividualData(edu.stanford.bmir.protege.web.shared.entity.OWLNamedIndividualData) Inject(javax.inject.Inject) PageRequest(edu.stanford.bmir.protege.web.shared.pagination.PageRequest) RenderingManager(edu.stanford.bmir.protege.web.server.renderer.RenderingManager) OWLIndividual(org.semanticweb.owlapi.model.OWLIndividual) OWLOntology(org.semanticweb.owlapi.model.OWLOntology) AccessManager(edu.stanford.bmir.protege.web.server.access.AccessManager) Nonnull(javax.annotation.Nonnull) Nullable(javax.annotation.Nullable) Page(edu.stanford.bmir.protege.web.shared.pagination.Page) Imports(org.semanticweb.owlapi.model.parameters.Imports) Logger(org.slf4j.Logger) OWLNamedIndividual(org.semanticweb.owlapi.model.OWLNamedIndividual) OWLClassAssertionAxiom(org.semanticweb.owlapi.model.OWLClassAssertionAxiom) VIEW_PROJECT(edu.stanford.bmir.protege.web.shared.access.BuiltInAction.VIEW_PROJECT) BuiltInAction(edu.stanford.bmir.protege.web.shared.access.BuiltInAction) Pager(edu.stanford.bmir.protege.web.server.pagination.Pager) GetIndividualsResult(edu.stanford.bmir.protege.web.shared.individualslist.GetIndividualsResult) AbstractProjectActionHandler(edu.stanford.bmir.protege.web.server.dispatch.AbstractProjectActionHandler) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) Stream(java.util.stream.Stream) ExecutionContext(edu.stanford.bmir.protege.web.server.dispatch.ExecutionContext) OWLClassData(edu.stanford.bmir.protege.web.shared.entity.OWLClassData) GetIndividualsAction(edu.stanford.bmir.protege.web.shared.individualslist.GetIndividualsAction) ProjectId(edu.stanford.bmir.protege.web.shared.project.ProjectId) BROWSING(edu.stanford.bmir.protege.web.server.logging.Markers.BROWSING) OWLClassData(edu.stanford.bmir.protege.web.shared.entity.OWLClassData) PageRequest(edu.stanford.bmir.protege.web.shared.pagination.PageRequest) GetIndividualsResult(edu.stanford.bmir.protege.web.shared.individualslist.GetIndividualsResult) OWLNamedIndividual(org.semanticweb.owlapi.model.OWLNamedIndividual) OWLNamedIndividualData(edu.stanford.bmir.protege.web.shared.entity.OWLNamedIndividualData) OWLIndividual(org.semanticweb.owlapi.model.OWLIndividual) Nonnull(javax.annotation.Nonnull)

Aggregations

PageRequest (edu.stanford.bmir.protege.web.shared.pagination.PageRequest)5 Nonnull (javax.annotation.Nonnull)5 Page (edu.stanford.bmir.protege.web.shared.pagination.Page)3 AccessManager (edu.stanford.bmir.protege.web.server.access.AccessManager)2 AbstractProjectActionHandler (edu.stanford.bmir.protege.web.server.dispatch.AbstractProjectActionHandler)2 ExecutionContext (edu.stanford.bmir.protege.web.server.dispatch.ExecutionContext)2 RootOntology (edu.stanford.bmir.protege.web.server.inject.project.RootOntology)2 Pager (edu.stanford.bmir.protege.web.server.pagination.Pager)2 List (java.util.List)2 Collectors.toList (java.util.stream.Collectors.toList)2 Inject (javax.inject.Inject)2 OWLOntology (org.semanticweb.owlapi.model.OWLOntology)2 BROWSING (edu.stanford.bmir.protege.web.server.logging.Markers.BROWSING)1 HasGetRendering (edu.stanford.bmir.protege.web.server.mansyntax.render.HasGetRendering)1 RenderingManager (edu.stanford.bmir.protege.web.server.renderer.RenderingManager)1 BuiltInAction (edu.stanford.bmir.protege.web.shared.access.BuiltInAction)1 VIEW_PROJECT (edu.stanford.bmir.protege.web.shared.access.BuiltInAction.VIEW_PROJECT)1 CollectionItem (edu.stanford.bmir.protege.web.shared.collection.CollectionItem)1 GetCollectionItemsResult (edu.stanford.bmir.protege.web.shared.collection.GetCollectionItemsResult)1 CommentedEntityData (edu.stanford.bmir.protege.web.shared.entity.CommentedEntityData)1