Example usage for org.apache.wicket.markup.repeater.data DataView DataView

List of usage examples for org.apache.wicket.markup.repeater.data DataView DataView

Introduction

In this page you can find the example usage for org.apache.wicket.markup.repeater.data DataView DataView.

Prototype

protected DataView(String id, IDataProvider<T> dataProvider) 

Source Link

Usage

From source file:com.gitblit.wicket.panels.BranchesPanel.java

License:Apache License

public BranchesPanel(String wicketId, final RepositoryModel model, Repository r, final int maxCount,
        final boolean showAdmin) {
    super(wicketId);

    // branches//  w  w w  .  ja v  a  2 s .  co  m
    List<RefModel> branches = new ArrayList<RefModel>();
    UserModel user = GitBlitWebSession.get().getUser();
    if (user == null) {
        user = UserModel.ANONYMOUS;
    }

    List<RefModel> localBranches = JGitUtils.getLocalBranches(r, false, -1);
    for (RefModel refModel : localBranches) {
        if (user.canView(model, refModel.reference.getName())) {
            branches.add(refModel);
        }
    }
    if (model.showRemoteBranches) {
        List<RefModel> remoteBranches = JGitUtils.getRemoteBranches(r, false, -1);
        for (RefModel refModel : remoteBranches) {
            if (user.canView(model, refModel.reference.getName())) {
                branches.add(refModel);
            }
        }
    }
    Collections.sort(branches);
    Collections.reverse(branches);
    if (maxCount > 0 && branches.size() > maxCount) {
        branches = new ArrayList<RefModel>(branches.subList(0, maxCount));
    }

    if (maxCount > 0) {
        // summary page
        // show branches page link
        add(new LinkPanel("branches", "title", new StringResourceModel("gb.branches", this, null),
                BranchesPage.class, WicketUtils.newRepositoryParameter(model.name)));
    } else {
        // branches page
        add(new Label("branches", new StringResourceModel("gb.branches", this, null)));
    }

    // only allow delete if we have multiple branches
    final boolean showDelete = showAdmin && branches.size() > 1;

    ListDataProvider<RefModel> branchesDp = new ListDataProvider<RefModel>(branches);
    DataView<RefModel> branchesView = new DataView<RefModel>("branch", branchesDp) {
        private static final long serialVersionUID = 1L;
        int counter;

        @Override
        public void populateItem(final Item<RefModel> item) {
            final RefModel entry = item.getModelObject();

            PageParameters shortUniqRef = WicketUtils.newObjectParameter(model.name,
                    Repository.shortenRefName(entry.getName()));

            item.add(WicketUtils.createDateLabel("branchDate", entry.getDate(), getTimeZone(), getTimeUtils()));

            item.add(new LinkPanel("branchName", "list name", StringUtils.trimString(entry.displayName, 28),
                    LogPage.class, shortUniqRef));

            String author = entry.getAuthorIdent().getName();
            LinkPanel authorLink = new LinkPanel("branchAuthor", "list", author, GitSearchPage.class,
                    WicketUtils.newSearchParameter(model.name, entry.getName(), author,
                            Constants.SearchType.AUTHOR));
            setPersonSearchTooltip(authorLink, author, Constants.SearchType.AUTHOR);
            item.add(authorLink);

            // short message
            String shortMessage = entry.getShortMessage();
            String trimmedMessage = StringUtils.trimString(shortMessage, Constants.LEN_SHORTLOG);
            LinkPanel shortlog = new LinkPanel("branchLog", "list subject", trimmedMessage, CommitPage.class,
                    shortUniqRef);
            if (!shortMessage.equals(trimmedMessage)) {
                shortlog.setTooltip(shortMessage);
            }
            item.add(shortlog);

            if (maxCount <= 0) {
                Fragment fragment = new Fragment("branchLinks",
                        showDelete ? "branchPageAdminLinks" : "branchPageLinks", BranchesPanel.this);
                fragment.add(new BookmarkablePageLink<Void>("log", LogPage.class, shortUniqRef));
                fragment.add(new BookmarkablePageLink<Void>("tree", TreePage.class, shortUniqRef));
                String rawUrl = RawServlet.asLink(getContextUrl(), model.name,
                        Repository.shortenRefName(entry.getName()), null);
                fragment.add(new ExternalLink("raw", rawUrl));
                fragment.add(new BookmarkablePageLink<Void>("metrics", MetricsPage.class, shortUniqRef));
                fragment.add(new ExternalLink("syndication",
                        SyndicationServlet.asLink(GitBlitRequestUtils.getRelativePathPrefixToContextRoot(),
                                model.name, Repository.shortenRefName(entry.getName()), 0)));
                if (showDelete) {
                    fragment.add(createDeleteBranchLink(model, entry));
                }
                item.add(fragment);
            } else {
                Fragment fragment = new Fragment("branchLinks", "branchPanelLinks", BranchesPanel.this);
                fragment.add(new BookmarkablePageLink<Void>("log", LogPage.class, shortUniqRef));
                fragment.add(new BookmarkablePageLink<Void>("tree", TreePage.class, shortUniqRef));
                String rawUrl = RawServlet.asLink(getContextUrl(), model.name,
                        Repository.shortenRefName(entry.getName()), null);
                fragment.add(new ExternalLink("raw", rawUrl));
                item.add(fragment);
            }
            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(branchesView);
    if (branches.size() < maxCount || maxCount <= 0) {
        add(new Label("allBranches", "").setVisible(false));
    } else {
        add(new LinkPanel("allBranches", "link", new StringResourceModel("gb.allBranches", this, null),
                BranchesPage.class, WicketUtils.newRepositoryParameter(model.name)));
    }
    // We always have 1 branch
    hasBranches = (branches.size() > 1)
            || ((branches.size() == 1) && !branches.get(0).displayName.equalsIgnoreCase("master"));
}

From source file:com.gitblit.wicket.panels.BulletListPanel.java

License:Apache License

public BulletListPanel(String id, String header, List<String> list) {
    super(id);// w ww .j  a  v a2 s .c  o m
    if (list == null) {
        list = new ArrayList<String>();
    }
    add(new Label("header", header).setVisible(list.size() > 0));
    ListDataProvider<String> listDp = new ListDataProvider<String>(list);
    DataView<String> listView = new DataView<String>("list", listDp) {
        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(final Item<String> item) {
            String entry = item.getModelObject();
            item.add(new Label("listItem", entry));
        }
    };
    add(listView.setVisible(list.size() > 0));
}

From source file:com.gitblit.wicket.panels.CommitLegendPanel.java

License:Apache License

public CommitLegendPanel(String id, List<PathChangeModel> paths) {
    super(id);//from  www  .j  av  a2 s  . c o  m
    final Map<ChangeType, AtomicInteger> stats = getChangedPathsStats(paths);
    ListDataProvider<ChangeType> legendDp = new ListDataProvider<ChangeType>(
            new ArrayList<ChangeType>(stats.keySet()));
    DataView<ChangeType> legendsView = new DataView<ChangeType>("legend", legendDp) {
        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(final Item<ChangeType> item) {
            ChangeType entry = item.getModelObject();

            Label changeType = new Label("changeType", "");
            WicketUtils.setChangeTypeCssClass(changeType, entry);
            item.add(changeType);
            int count = stats.get(entry).intValue();
            String description = "";
            switch (entry) {
            case ADD:
                description = MessageFormat.format(getString("gb.filesAdded"), count);
                break;
            case MODIFY:
                description = MessageFormat.format(getString("gb.filesModified"), count);
                break;
            case DELETE:
                description = MessageFormat.format(getString("gb.filesDeleted"), count);
                break;
            case COPY:
                description = MessageFormat.format(getString("gb.filesCopied"), count);
                break;
            case RENAME:
                description = MessageFormat.format(getString("gb.filesRenamed"), count);
                break;
            }
            item.add(new Label("description", description));
        }
    };
    add(legendsView);
}

From source file:com.gitblit.wicket.panels.CompressedDownloadsPanel.java

License:Apache License

public CompressedDownloadsPanel(String id, final String baseUrl, final String repositoryName,
        final String objectId, final String path) {
    super(id);//from w ww. jav  a  2s .c  o  m

    List<String> types = app().settings().getStrings(Keys.web.compressedDownloads);
    if (types.isEmpty()) {
        types.add(Format.zip.name());
        types.add(Format.gz.name());
    }

    ListDataProvider<String> refsDp = new ListDataProvider<String>(types);
    DataView<String> refsView = new DataView<String>("compressedLinks", refsDp) {
        private static final long serialVersionUID = 1L;
        int counter;

        @Override
        protected void onBeforeRender() {
            super.onBeforeRender();
            counter = 0;
        }

        @Override
        public void populateItem(final Item<String> item) {
            String compressionType = item.getModelObject();
            Format format = Format.fromName(compressionType);

            String href = DownloadZipServlet.asLink(baseUrl, repositoryName, objectId, path, format);
            LinkPanel c = new LinkPanel("compressedLink", null, format.name(), href);
            c.setNoFollow();
            item.add(c);
            Label lb = new Label("linkSep", "|");
            lb.setVisible(counter > 0);
            lb.setRenderBodyOnly(true);
            item.add(lb.setEscapeModelStrings(false));
            item.setRenderBodyOnly(true);
            counter++;
        }
    };
    add(refsView);

    setVisible(app().settings().getBoolean(Keys.web.allowZipDownloads, true));
}

From source file:com.gitblit.wicket.panels.DigestsPanel.java

License:Apache License

public DigestsPanel(String wicketId, List<DailyLogEntry> digests) {
    super(wicketId);
    hasChanges = digests.size() > 0;/*from   w  w w  .  j  a v  a  2 s  .  co m*/

    ListDataProvider<DailyLogEntry> dp = new ListDataProvider<DailyLogEntry>(digests);
    DataView<DailyLogEntry> pushView = new DataView<DailyLogEntry>("change", dp) {
        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(final Item<DailyLogEntry> logItem) {
            final DailyLogEntry change = logItem.getModelObject();

            String dateFormat = app().settings().getString(Keys.web.datestampLongFormat, "EEEE, MMMM d, yyyy");
            TimeZone timezone = getTimeZone();
            DateFormat df = new SimpleDateFormat(dateFormat);
            df.setTimeZone(timezone);

            String fullRefName = change.getChangedRefs().get(0);
            String shortRefName = fullRefName;
            String ticketId = "";
            boolean isTag = false;
            boolean isTicket = false;
            if (shortRefName.startsWith(Constants.R_TICKET)) {
                ticketId = shortRefName = shortRefName.substring(Constants.R_TICKET.length());
                shortRefName = MessageFormat.format(getString("gb.ticketN"), ticketId);
                isTicket = true;
            } else if (shortRefName.startsWith(Constants.R_HEADS)) {
                shortRefName = shortRefName.substring(Constants.R_HEADS.length());
            } else if (shortRefName.startsWith(Constants.R_TAGS)) {
                shortRefName = shortRefName.substring(Constants.R_TAGS.length());
                isTag = true;
            }

            String fuzzydate;
            TimeUtils tu = getTimeUtils();
            Date pushDate = change.date;
            if (TimeUtils.isToday(pushDate, timezone)) {
                fuzzydate = tu.today();
            } else if (TimeUtils.isYesterday(pushDate, timezone)) {
                fuzzydate = tu.yesterday();
            } else {
                fuzzydate = getTimeUtils().timeAgo(pushDate);
            }
            logItem.add(new Label("whenChanged", fuzzydate + ", " + df.format(pushDate)));

            Label changeIcon = new Label("changeIcon");
            // use the repository hash color to differentiate the icon.
            String color = StringUtils.getColor(StringUtils.stripDotGit(change.repository));
            WicketUtils.setCssStyle(changeIcon, "color: " + color);

            if (isTag) {
                WicketUtils.setCssClass(changeIcon, "iconic-tag");
            } else if (isTicket) {
                WicketUtils.setCssClass(changeIcon, "fa fa-ticket");
            } else {
                WicketUtils.setCssClass(changeIcon, "iconic-loop");
            }
            logItem.add(changeIcon);

            if (isTag) {
                // tags are special
                PersonIdent ident = change.getCommits().get(0).getAuthorIdent();
                if (!StringUtils.isEmpty(ident.getName())) {
                    logItem.add(new Label("whoChanged", ident.getName()));
                } else {
                    logItem.add(new Label("whoChanged", ident.getEmailAddress()));
                }
            } else {
                logItem.add(new Label("whoChanged").setVisible(false));
            }

            String preposition = "gb.of";
            boolean isDelete = false;
            String what;
            String by = null;
            switch (change.getChangeType(fullRefName)) {
            case CREATE:
                if (isTag) {
                    // new tag
                    what = getString("gb.createdNewTag");
                    preposition = "gb.in";
                } else {
                    // new branch
                    what = getString("gb.createdNewBranch");
                    preposition = "gb.in";
                }
                break;
            case DELETE:
                isDelete = true;
                if (isTag) {
                    what = getString("gb.deletedTag");
                } else {
                    what = getString("gb.deletedBranch");
                }
                preposition = "gb.from";
                break;
            default:
                what = MessageFormat.format(
                        change.getCommitCount() > 1 ? getString("gb.commitsTo") : getString("gb.oneCommitTo"),
                        change.getCommitCount());

                if (change.getAuthorCount() == 1) {
                    by = MessageFormat.format(getString("gb.byOneAuthor"), change.getAuthorIdent().getName());
                } else {
                    by = MessageFormat.format(getString("gb.byNAuthors"), change.getAuthorCount());
                }
                break;
            }
            logItem.add(new Label("whatChanged", what));
            logItem.add(new Label("byAuthors", by).setVisible(!StringUtils.isEmpty(by)));

            if (isDelete) {
                // can't link to deleted ref
                logItem.add(new Label("refChanged", shortRefName));
            } else if (isTag) {
                // link to tag
                logItem.add(new LinkPanel("refChanged", null, shortRefName, TagPage.class,
                        WicketUtils.newObjectParameter(change.repository, shortRefName)));
            } else if (isTicket) {
                // link to ticket
                logItem.add(new LinkPanel("refChanged", null, shortRefName, TicketsPage.class,
                        WicketUtils.newObjectParameter(change.repository, ticketId)));
            } else {
                // link to tree
                logItem.add(new LinkPanel("refChanged", null, shortRefName, TreePage.class,
                        WicketUtils.newObjectParameter(change.repository, shortRefName)));
            }

            // to/from/etc
            logItem.add(new Label("repoPreposition", getString(preposition)));
            String repoName = StringUtils.stripDotGit(change.repository);
            logItem.add(new LinkPanel("repoChanged", null, repoName, SummaryPage.class,
                    WicketUtils.newRepositoryParameter(change.repository)));

            int maxCommitCount = 5;
            List<RepositoryCommit> commits = change.getCommits();
            if (commits.size() > maxCommitCount) {
                commits = new ArrayList<RepositoryCommit>(commits.subList(0, maxCommitCount));
            }

            // compare link
            String compareLinkText = null;
            if ((change.getCommitCount() <= maxCommitCount) && (change.getCommitCount() > 1)) {
                compareLinkText = MessageFormat.format(getString("gb.viewComparison"), commits.size());
            } else if (change.getCommitCount() > maxCommitCount) {
                int diff = change.getCommitCount() - maxCommitCount;
                compareLinkText = MessageFormat
                        .format(diff > 1 ? getString("gb.nMoreCommits") : getString("gb.oneMoreCommit"), diff);
            }
            if (StringUtils.isEmpty(compareLinkText)) {
                logItem.add(new Label("compareLink").setVisible(false));
            } else {
                String endRangeId = change.getNewId(fullRefName);
                String startRangeId = change.getOldId(fullRefName);
                logItem.add(new LinkPanel("compareLink", null, compareLinkText, ComparePage.class,
                        WicketUtils.newRangeParameter(change.repository, startRangeId, endRangeId)));
            }

            final boolean showSwatch = app().settings().getBoolean(Keys.web.repositoryListSwatches, true);

            ListDataProvider<RepositoryCommit> cdp = new ListDataProvider<RepositoryCommit>(commits);
            DataView<RepositoryCommit> commitsView = new DataView<RepositoryCommit>("commit", cdp) {
                private static final long serialVersionUID = 1L;

                @Override
                public void populateItem(final Item<RepositoryCommit> commitItem) {
                    final RepositoryCommit commit = commitItem.getModelObject();

                    // author gravatar
                    commitItem.add(new AvatarImage("commitAuthor", commit.getAuthorIdent(), null, 16, false));

                    // merge icon
                    if (commit.getParentCount() > 1) {
                        commitItem.add(WicketUtils.newImage("commitIcon", "commit_merge_16x16.png"));
                    } else {
                        commitItem.add(WicketUtils.newBlankImage("commitIcon"));
                    }

                    // short message
                    String shortMessage = commit.getShortMessage();
                    String trimmedMessage = shortMessage;
                    if (commit.getRefs() != null && commit.getRefs().size() > 0) {
                        trimmedMessage = StringUtils.trimString(shortMessage, Constants.LEN_SHORTLOG_REFS);
                    } else {
                        trimmedMessage = StringUtils.trimString(shortMessage, Constants.LEN_SHORTLOG);
                    }
                    LinkPanel shortlog = new LinkPanel("commitShortMessage", "list", trimmedMessage,
                            CommitPage.class,
                            WicketUtils.newObjectParameter(change.repository, commit.getName()));
                    if (!shortMessage.equals(trimmedMessage)) {
                        WicketUtils.setHtmlTooltip(shortlog, shortMessage);
                    }
                    commitItem.add(shortlog);

                    // commit hash link
                    int hashLen = app().settings().getInteger(Keys.web.shortCommitIdLength, 6);
                    LinkPanel commitHash = new LinkPanel("hashLink", null,
                            commit.getName().substring(0, hashLen), CommitPage.class,
                            WicketUtils.newObjectParameter(change.repository, commit.getName()));
                    WicketUtils.setCssClass(commitHash, "shortsha1");
                    WicketUtils.setHtmlTooltip(commitHash, commit.getName());
                    commitItem.add(commitHash);

                    if (showSwatch) {
                        // set repository color
                        String color = StringUtils.getColor(StringUtils.stripDotGit(change.repository));
                        WicketUtils.setCssStyle(commitItem,
                                MessageFormat.format("border-left: 2px solid {0};", color));
                    }
                }
            };

            logItem.add(commitsView);
        }
    };

    add(pushView);
}

From source file:com.gitblit.wicket.panels.DropDownMenu.java

License:Apache License

public DropDownMenu(String id, String label, final DropDownPageMenuNavLink menu) {
    super(id);/*from   www .j  av a 2  s  . c o m*/

    add(new Label("label", label).setRenderBodyOnly(true));
    ListDataProvider<MenuItem> items = new ListDataProvider<MenuItem>(menu.menuItems);
    DataView<MenuItem> view = new DataView<MenuItem>("menuItems", items) {
        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(final Item<MenuItem> item) {
            MenuItem entry = item.getModelObject();
            if (entry instanceof PageLinkMenuItem) {
                // link to another Wicket page
                PageLinkMenuItem pageLink = (PageLinkMenuItem) entry;
                item.add(new LinkPanel("menuItem", null, null, pageLink.toString(), pageLink.getPageClass(),
                        pageLink.getPageParameters(), false).setRenderBodyOnly(true));
            } else if (entry instanceof ExternalLinkMenuItem) {
                // link to a specified href
                ExternalLinkMenuItem extLink = (ExternalLinkMenuItem) entry;
                item.add(new LinkPanel("menuItem", null, extLink.toString(), extLink.getHref(),
                        extLink.openInNewWindow()).setRenderBodyOnly(true));
            } else if (entry instanceof MenuDivider) {
                // divider
                item.add(new Label("menuItem").setRenderBodyOnly(true));
                WicketUtils.setCssClass(item, "divider");
            } else {
                ParameterMenuItem parameter = (ParameterMenuItem) entry;
                // parameter link for the current page
                String icon = null;
                if (parameter.isSelected()) {
                    icon = "icon-ok";
                } else {
                    icon = "icon-ok-white";
                }
                item.add(new LinkPanel("menuItem", icon, null, entry.toString(), menu.pageClass,
                        parameter.getPageParameters(), false).setRenderBodyOnly(true));
            }
        }
    };
    add(view);
    setRenderBodyOnly(true);
}

From source file:com.gitblit.wicket.panels.DropDownMenu.java

License:Apache License

public DropDownMenu(String id, String label, final DropDownMenuNavLink menu) {
    super(id);/*  w  w  w  .ja va 2  s  .co m*/

    add(new Label("label", label).setRenderBodyOnly(true));
    ListDataProvider<MenuItem> items = new ListDataProvider<MenuItem>(menu.menuItems);
    DataView<MenuItem> view = new DataView<MenuItem>("menuItems", items) {
        private static final long serialVersionUID = 1L;

        @Override
        public void populateItem(final Item<MenuItem> item) {
            MenuItem entry = item.getModelObject();
            if (entry instanceof PageLinkMenuItem) {
                // link to another Wicket page
                PageLinkMenuItem pageLink = (PageLinkMenuItem) entry;
                item.add(new LinkPanel("menuItem", null, null, pageLink.toString(), pageLink.getPageClass(),
                        pageLink.getPageParameters(), false).setRenderBodyOnly(true));
            } else if (entry instanceof ExternalLinkMenuItem) {
                // link to a specified href
                ExternalLinkMenuItem extLink = (ExternalLinkMenuItem) entry;
                item.add(new LinkPanel("menuItem", null, extLink.toString(), extLink.getHref(),
                        extLink.openInNewWindow()).setRenderBodyOnly(true));
            } else if (entry instanceof MenuDivider) {
                // divider
                item.add(new Label("menuItem").setRenderBodyOnly(true));
                WicketUtils.setCssClass(item, "divider");
            } else {
                throw new IllegalArgumentException(
                        String.format("Unexpected menuitem type %s", entry.getClass().getSimpleName()));
            }
        }
    };
    add(view);
    setRenderBodyOnly(true);
}

From source file:com.gitblit.wicket.panels.FederationProposalsPanel.java

License:Apache License

public FederationProposalsPanel(String wicketId) {
    super(wicketId);

    final List<FederationProposal> list = app().federation().getPendingFederationProposals();
    hasProposals = list.size() > 0;//from www.java2  s.c o  m
    DataView<FederationProposal> dataView = new DataView<FederationProposal>("row",
            new ListDataProvider<FederationProposal>(list)) {
        private static final long serialVersionUID = 1L;
        private int counter;

        @Override
        protected void onBeforeRender() {
            super.onBeforeRender();
            counter = 0;
        }

        @Override
        public void populateItem(final Item<FederationProposal> item) {
            final FederationProposal entry = item.getModelObject();
            item.add(new LinkPanel("url", "list", entry.url, ReviewProposalPage.class,
                    WicketUtils.newTokenParameter(entry.token)));
            item.add(WicketUtils.createDateLabel("received", entry.received, getTimeZone(), getTimeUtils()));
            item.add(new Label("tokenType", entry.tokenType.name()));
            item.add(new LinkPanel("token", "list", entry.token, ReviewProposalPage.class,
                    WicketUtils.newTokenParameter(entry.token)));

            Link<Void> deleteLink = new Link<Void>("deleteProposal") {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick() {
                    if (app().federation().deletePendingFederationProposal(entry)) {
                        list.remove(entry);
                        info(MessageFormat.format("Proposal ''{0}'' deleted.", entry.name));
                    } else {
                        error(MessageFormat.format("Failed to delete proposal ''{0}''!", entry.name));
                    }
                }
            };
            deleteLink.add(new JavascriptEventConfirmation("click",
                    MessageFormat.format("Delete proposal \"{0}\"?", entry.name)));
            item.add(deleteLink);
            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(dataView);
}

From source file:com.gitblit.wicket.panels.FederationRegistrationsPanel.java

License:Apache License

public FederationRegistrationsPanel(String wicketId) {
    super(wicketId);

    final List<FederationModel> list = new ArrayList<FederationModel>(
            app().federation().getFederationRegistrations());
    list.addAll(app().federation().getFederationResultRegistrations());
    Collections.sort(list);/*from   w  ww.jav  a 2  s  .c  om*/
    hasRegistrations = list.size() > 0;
    DataView<FederationModel> dataView = new DataView<FederationModel>("row",
            new ListDataProvider<FederationModel>(list)) {
        private static final long serialVersionUID = 1L;
        private int counter;

        @Override
        protected void onBeforeRender() {
            super.onBeforeRender();
            counter = 0;
        }

        @Override
        public void populateItem(final Item<FederationModel> item) {
            final FederationModel entry = item.getModelObject();
            item.add(new LinkPanel("url", "list", entry.url, FederationRegistrationPage.class,
                    WicketUtils.newRegistrationParameter(entry.url, entry.name)));
            item.add(WicketUtils.getPullStatusImage("statusIcon", entry.getLowestStatus()));
            item.add(new LinkPanel("name", "list", entry.name, FederationRegistrationPage.class,
                    WicketUtils.newRegistrationParameter(entry.url, entry.name)));

            item.add(WicketUtils.getRegistrationImage("typeIcon", entry, this));

            item.add(WicketUtils.createDateLabel("lastPull", entry.lastPull, getTimeZone(), getTimeUtils()));
            item.add(WicketUtils.createTimestampLabel("nextPull", entry.nextPull, getTimeZone(),
                    getTimeUtils()));
            item.add(new Label("frequency", entry.frequency));
            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(dataView);
}

From source file:com.gitblit.wicket.panels.FederationTokensPanel.java

License:Apache License

public FederationTokensPanel(String wicketId, final boolean showFederation) {
    super(wicketId);

    final String baseUrl = WicketUtils.getGitblitURL(getRequest());
    add(new ExternalLink("federatedUsers",
            FederationUtils.asLink(baseUrl,
                    app().federation().getFederationToken(FederationToken.USERS_AND_REPOSITORIES),
                    FederationRequest.PULL_USERS)));

    add(new ExternalLink("federatedSettings", FederationUtils.asLink(baseUrl,
            app().federation().getFederationToken(FederationToken.ALL), FederationRequest.PULL_SETTINGS)));

    final List<String[]> data = new ArrayList<String[]>();
    for (FederationToken token : FederationToken.values()) {
        data.add(new String[] { token.name(), app().federation().getFederationToken(token), null });
    }/*  w  w w.  jav a  2s.  c om*/
    List<String> sets = app().settings().getStrings(Keys.federation.sets);
    Collections.sort(sets);
    for (String set : sets) {
        data.add(new String[] { FederationToken.REPOSITORIES.name(), app().federation().getFederationToken(set),
                set });
    }

    DataView<String[]> dataView = new DataView<String[]>("row", new ListDataProvider<String[]>(data)) {
        private static final long serialVersionUID = 1L;
        private int counter;

        @Override
        protected void onBeforeRender() {
            super.onBeforeRender();
            counter = 0;
        }

        @Override
        public void populateItem(final Item<String[]> item) {
            final String[] entry = item.getModelObject();
            final FederationToken token = FederationToken.fromName(entry[0]);
            if (entry[2] == null) {
                // standard federation token
                item.add(new Label("description", describeToken(token)));
            } else {
                // federation set token
                item.add(new Label("description", entry[2]));
            }
            item.add(new Label("value", entry[1]));

            item.add(new ExternalLink("repositoryDefinitions",
                    FederationUtils.asLink(baseUrl, entry[1], FederationRequest.PULL_REPOSITORIES)));

            item.add(new BookmarkablePageLink<Void>("send", SendProposalPage.class,
                    WicketUtils.newTokenParameter(entry[1])));

            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(dataView.setVisible(showFederation));
}