• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

knowledgepixels / nanodash / 24382503285

14 Apr 2026 05:24AM UTC coverage: 15.886% (-0.2%) from 16.094%
24382503285

push

github

web-flow
Merge pull request #438 from knowledgepixels/feature/item-list-view-435

feat: implement ItemListView and fix async view rendering

789 of 6130 branches covered (12.87%)

Branch coverage included in aggregate %.

1978 of 11288 relevant lines covered (17.52%)

2.4 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
src/main/java/com/knowledgepixels/nanodash/component/QueryResultNanopubSetBuilder.java
1
package com.knowledgepixels.nanodash.component;
2

3
import com.knowledgepixels.nanodash.ApiCache;
4
import com.knowledgepixels.nanodash.ViewDisplay;
5
import org.apache.wicket.behavior.AttributeAppender;
6
import com.knowledgepixels.nanodash.domain.AbstractResourceWithProfile;
7
import org.apache.wicket.Component;
8
import org.nanopub.extra.services.ApiResponse;
9
import org.nanopub.extra.services.QueryRef;
10

11
import java.io.Serializable;
12

13
/**
14
 * Builder class for creating QueryResultNanopubSet components.
15
 */
16
public class QueryResultNanopubSetBuilder implements Serializable {
17

18
    private final String markupId;
19
    private final ViewDisplay viewDisplay;
20
    private String contextId = null;
×
21
    private final QueryRef queryRef;
22
    private boolean hasTitle = true;
×
23
    private AbstractResourceWithProfile pageResource = null;
×
24
    private Long itemsPerPage = null;
×
25

26
    private QueryResultNanopubSetBuilder(String markupId, QueryRef queryRef, ViewDisplay viewDisplay) {
×
27
        this.markupId = markupId;
×
28
        this.queryRef = queryRef;
×
29
        this.viewDisplay = viewDisplay;
×
30
    }
×
31

32
    /**
33
     * Creates a new QueryResultNanopubSetBuilder instance.
34
     *
35
     * @param markupId    the markup ID for the component
36
     * @param queryRef    the query reference
37
     * @param viewDisplay the view display
38
     * @return a new QueryResultNanopubSetBuilder instance
39
     */
40
    public static QueryResultNanopubSetBuilder create(String markupId, QueryRef queryRef, ViewDisplay viewDisplay) {
41
        return new QueryResultNanopubSetBuilder(markupId, queryRef, viewDisplay);
×
42
    }
43

44
    /**
45
     * Sets the context ID for the QueryResultNanopubSet.
46
     *
47
     * @param contextId the context ID
48
     * @return the current QueryResultNanopubSetBuilder instance
49
     */
50
    public QueryResultNanopubSetBuilder contextId(String contextId) {
51
        this.contextId = contextId;
×
52
        return this;
×
53
    }
54

55
    public QueryResultNanopubSetBuilder pageResource(AbstractResourceWithProfile pageResource) {
56
        this.pageResource = pageResource;
×
57
        return this;
×
58
    }
59

60
    public QueryResultNanopubSetBuilder setItemsPerPage(long itemsPerPage) {
61
        this.itemsPerPage = itemsPerPage;
×
62
        return this;
×
63
    }
64

65
    /**
66
     * Removes the title from the QueryResultNanopubSet.
67
     *
68
     * @return the current QueryResultNanopubSetBuilder instance
69
     */
70
    public QueryResultNanopubSetBuilder noTitle() {
71
        this.hasTitle = false;
×
72
        return this;
×
73
    }
74

75
    /**
76
     * Builds the QueryResultNanopubSet component.
77
     *
78
     * @return the QueryResultNanopubSet component
79
     */
80
    public Component build() {
81
        ApiResponse response = ApiCache.retrieveResponseAsync(queryRef);
×
82
        String colClass = " col-" + viewDisplay.getDisplayWidth();
×
83
        long resolvedItemsPerPage = itemsPerPage != null ? itemsPerPage : viewDisplay.getPageSize();
×
84
        if (response != null) {
×
85
            QueryResultNanopubSet queryResultNanopubSet = new QueryResultNanopubSet(markupId, queryRef, response, viewDisplay, resolvedItemsPerPage);
×
86
            queryResultNanopubSet.setContextId(contextId);
×
87
            queryResultNanopubSet.setPageResource(pageResource);
×
88
            queryResultNanopubSet.populateComponent();
×
89
            queryResultNanopubSet.setTitleVisible(hasTitle);
×
90
            queryResultNanopubSet.add(new AttributeAppender("class", colClass));
×
91
            return queryResultNanopubSet;
×
92
        } else {
93
            ApiResultComponent comp = new ApiResultComponent(markupId, queryRef) {
×
94
                @Override
95
                public Component getApiResultComponent(String markupId, ApiResponse response) {
96
                    QueryResultNanopubSet queryResultNanopubSet = new QueryResultNanopubSet(markupId, queryRef, response, viewDisplay, resolvedItemsPerPage);
×
97
                    queryResultNanopubSet.setContextId(contextId);
×
98
                    queryResultNanopubSet.setPageResource(pageResource);
×
99
                    queryResultNanopubSet.populateComponent();
×
100
                    queryResultNanopubSet.setTitleVisible(hasTitle);
×
101
                    return queryResultNanopubSet;
×
102
                }
103
            };
104
            comp.add(new AttributeAppender("class", colClass));
×
105
            return comp;
×
106
        }
107
    }
108

109
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc