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

knowledgepixels / nanodash / 17554389581

08 Sep 2025 02:35PM UTC coverage: 12.44% (+0.04%) from 12.397%
17554389581

push

github

tkuhn
Merge branch 'master' of github.com:knowledgepixels/nanodash

361 of 3852 branches covered (9.37%)

Branch coverage included in aggregate %.

986 of 6976 relevant lines covered (14.13%)

0.63 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.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
8
import org.apache.wicket.extensions.markup.html.repeater.data.table.NavigatorLabel;
9
import org.apache.wicket.markup.html.WebMarkupContainer;
10
import org.apache.wicket.markup.html.basic.Label;
11
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
12
import org.apache.wicket.markup.html.panel.Panel;
13
import org.apache.wicket.markup.repeater.Item;
14
import org.apache.wicket.markup.repeater.data.DataView;
15
import org.apache.wicket.markup.repeater.data.ListDataProvider;
16
import org.apache.wicket.request.mapper.parameter.PageParameters;
17
import org.nanopub.extra.services.ApiResponse;
18

19
import com.knowledgepixels.nanodash.ApiCache;
20
import com.knowledgepixels.nanodash.Project;
21
import com.knowledgepixels.nanodash.page.ProjectPage;
22

23
/**
24
 * A component that displays a list of projects.
25
 * Each project is represented as a link to its corresponding page.
26
 */
27
public class ProjectList extends Panel {
28

29
    private static final long serialVersionUID = 1L;
30

31
    public static MarkupContainer getListContainer(String markupId) {
32
        final HashMap<String, String> noParams = new HashMap<>();
×
33
        final String queryName = "get-projects";
×
34
        ApiResponse qResponse = ApiCache.retrieveResponse(queryName, noParams);
×
35
        if (qResponse != null) {
×
36
            return new ProjectList(markupId, qResponse);
×
37
        } else {
38
            return new ApiResultComponent(markupId, queryName, noParams) {
×
39

40
                private static final long serialVersionUID = 1L;
41

42
                @Override
43
                public Component getApiResultComponent(String markupId, ApiResponse response) {
44
                    return new ProjectList(markupId, response);
×
45
                }
46
            };
47

48
        }
49
    }
50

51
    /**
52
     * Constructor for ProjectList.
53
     *
54
     * @param id   the Wicket component ID
55
     * @param resp the ApiResponse containing project data
56
     */
57
    public ProjectList(String id, ApiResponse resp) {
58
        super(id);
×
59
        setOutputMarkupId(true);
×
60

61
        Project.refresh(resp);
×
62
        DataView<Project> dataView = new DataView<Project>("projectlist", new ListDataProvider<Project>(Project.getProjectList())) {
×
63

64
            private static final long serialVersionUID = 1L;
65

66
            @Override
67
            protected void populateItem(Item<Project> item) {
68
                Project p = item.getModelObject();
×
69
                PageParameters params = new PageParameters();
×
70
                params.add("id", p.getId());
×
71
                BookmarkablePageLink<Void> l = new BookmarkablePageLink<Void>("projectlink", ProjectPage.class, params);
×
72
                l.add(new Label("linktext", p.getLabel()));
×
73
                item.add(l);
×
74
            }
×
75

76
        };
77
        dataView.setItemsPerPage(10);
×
78
        dataView.setOutputMarkupId(true);
×
79
        add(dataView);
×
80

81
        WebMarkupContainer navigation = new WebMarkupContainer("navigation");
×
82
        navigation.add(new NavigatorLabel("navigatorLabel", dataView));
×
83
        AjaxPagingNavigator pagingNavigator = new AjaxPagingNavigator("navigator", dataView);
×
84
        navigation.setVisible(dataView.getPageCount() > 1);
×
85
        navigation.add(pagingNavigator);
×
86
        add(navigation);
×
87
    }
×
88

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