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

knowledgepixels / nanodash / 17578833481

09 Sep 2025 09:54AM UTC coverage: 13.757% (-0.004%) from 13.761%
17578833481

push

github

tkuhn
Add generic ItemListPanel and use it for project list

408 of 3854 branches covered (10.59%)

Branch coverage included in aggregate %.

1083 of 6984 relevant lines covered (15.51%)

0.69 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/ProjectList.java
1
package com.knowledgepixels.nanodash.component;
2

3
import java.util.HashMap;
4

5
import org.apache.wicket.Component;
6
import org.apache.wicket.MarkupContainer;
7
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
8
import org.apache.wicket.model.Model;
9
import org.apache.wicket.request.mapper.parameter.PageParameters;
10
import org.nanopub.extra.services.ApiResponse;
11

12
import com.knowledgepixels.nanodash.ApiCache;
13
import com.knowledgepixels.nanodash.Project;
14
import com.knowledgepixels.nanodash.page.ProjectPage;
15

16
/**
17
 * A component that displays a list of projects.
18
 * Each project is represented as a link to its corresponding page.
19
 */
20
public class ProjectList {
×
21

22
    public static MarkupContainer getListContainer(String markupId) {
23
        final HashMap<String, String> noParams = new HashMap<>();
×
24
        final String queryName = "get-projects";
×
25
        ApiResponse qResponse = ApiCache.retrieveResponse(queryName, noParams);
×
26
        if (qResponse != null) {
×
27
            return createComponent(markupId, qResponse);
×
28
        } else {
29
            return new ApiResultComponent(markupId, queryName, noParams) {
×
30

31
                @Override
32
                public Component getApiResultComponent(String markupId, ApiResponse response) {
33
                    return createComponent(markupId, response);
×
34
                }
35
            };
36

37
        }
38
    }
39

40
    private static ItemListPanel<Project> createComponent(String id, ApiResponse resp) {
41
        Project.refresh(resp);
×
42
        return new ItemListPanel<Project>(id, "Projects", "Project pages are still experimental:", Project.getProjectList(), (p) -> {
×
43
                PageParameters params = new PageParameters();
×
44
                params.add("id", p.getId());
×
45
                return new BookmarkablePageLink<>("item", ProjectPage.class, params).setBody(Model.of(p.getLabel()));
×
46
            });
47
    }
48

49
}
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