List of usage examples for org.apache.wicket.markup.repeater.data DataView DataView
protected DataView(String id, IDataProvider<T> dataProvider)
From source file:com.gitblit.wicket.panels.RepositoryUrlPanel.java
License:Apache License
protected Fragment createApplicationMenus(String wicketId, final UserModel user, final RepositoryModel repository, final List<RepositoryUrl> repositoryUrls) { final List<GitClientApplication> displayedApps = new ArrayList<GitClientApplication>(); final String userAgent = ((WebClientInfo) GitBlitWebSession.get().getClientInfo()).getUserAgent(); if (user.canClone(repository)) { for (GitClientApplication app : app().gitblit().getClientApplications()) { if (app.isActive && app.allowsPlatform(userAgent)) { displayedApps.add(app);/*from w w w . j a va2 s. c om*/ } } } final String baseURL = WicketUtils.getGitblitURL(RequestCycle.get().getRequest()); ListDataProvider<GitClientApplication> displayedAppsDp = new ListDataProvider<GitClientApplication>( displayedApps); DataView<GitClientApplication> appMenus = new DataView<GitClientApplication>("appMenus", displayedAppsDp) { private static final long serialVersionUID = 1L; @Override public void populateItem(final Item<GitClientApplication> item) { final GitClientApplication clientApp = item.getModelObject(); // filter the urls for the client app List<RepositoryUrl> urls = new ArrayList<RepositoryUrl>(); for (RepositoryUrl repoUrl : repositoryUrls) { if (clientApp.minimumPermission == null || !repoUrl.hasPermission()) { // no minimum permission or untracked permissions, assume it is satisfactory if (clientApp.supportsTransport(repoUrl.url)) { urls.add(repoUrl); } } else if (repoUrl.permission.atLeast(clientApp.minimumPermission)) { // repo url meets minimum permission requirement if (clientApp.supportsTransport(repoUrl.url)) { urls.add(repoUrl); } } } if (urls.size() == 0) { // do not show this app menu because there are no urls item.add(new Label("appMenu").setVisible(false)); return; } Fragment appMenu = new Fragment("appMenu", "appMenuFragment", RepositoryUrlPanel.this); appMenu.setRenderBodyOnly(true); item.add(appMenu); // menu button appMenu.add(new Label("applicationName", clientApp.name)); // application icon Component img; if (StringUtils.isEmpty(clientApp.icon)) { img = WicketUtils.newClearPixel("applicationIcon").setVisible(false); } else { if (clientApp.icon.contains("://")) { // external image img = new ExternalImage("applicationIcon", clientApp.icon); } else { // context image img = WicketUtils.newImage("applicationIcon", clientApp.icon); } } appMenu.add(img); // application menu title, may be a link if (StringUtils.isEmpty(clientApp.productUrl)) { appMenu.add(new Label("applicationTitle", clientApp.toString())); } else { appMenu.add(new LinkPanel("applicationTitle", null, clientApp.toString(), clientApp.productUrl, true)); } // brief application description if (StringUtils.isEmpty(clientApp.description)) { appMenu.add(new Label("applicationDescription").setVisible(false)); } else { appMenu.add(new Label("applicationDescription", clientApp.description)); } // brief application legal info, copyright, license, etc if (StringUtils.isEmpty(clientApp.legal)) { appMenu.add(new Label("applicationLegal").setVisible(false)); } else { appMenu.add(new Label("applicationLegal", clientApp.legal)); } // a nested repeater for all action items ListDataProvider<RepositoryUrl> urlsDp = new ListDataProvider<RepositoryUrl>(urls); DataView<RepositoryUrl> actionItems = new DataView<RepositoryUrl>("actionItems", urlsDp) { private static final long serialVersionUID = 1L; @Override public void populateItem(final Item<RepositoryUrl> repoLinkItem) { RepositoryUrl repoUrl = repoLinkItem.getModelObject(); Fragment fragment = new Fragment("actionItem", "actionFragment", RepositoryUrlPanel.this); fragment.add(createPermissionBadge("permission", repoUrl)); if (!StringUtils.isEmpty(clientApp.cloneUrl)) { // custom registered url String url = substitute(clientApp.cloneUrl, repoUrl.url, baseURL, user.username, repository.name); fragment.add(new LinkPanel("content", "applicationMenuItem", getString("gb.clone") + " " + repoUrl.url, url)); repoLinkItem.add(fragment); fragment.add(new Label("copyFunction").setVisible(false)); } else if (!StringUtils.isEmpty(clientApp.command)) { // command-line String command = substitute(clientApp.command, repoUrl.url, baseURL, user.username, repository.name); Label content = new Label("content", command); WicketUtils.setCssClass(content, "commandMenuItem"); fragment.add(content); repoLinkItem.add(fragment); // copy function for command fragment.add(createCopyFragment(command)); } } }; appMenu.add(actionItems); } }; Fragment applicationMenus = new Fragment(wicketId, "applicationMenusFragment", RepositoryUrlPanel.this); applicationMenus.add(appMenus); return applicationMenus; }
From source file:com.gitblit.wicket.panels.SearchPanel.java
License:Apache License
public SearchPanel(String wicketId, final String repositoryName, final String objectId, final String value, Constants.SearchType searchType, Repository r, int limit, int pageOffset, boolean showRemoteRefs) { super(wicketId); boolean pageResults = limit <= 0; int itemsPerPage = app().settings().getInteger(Keys.web.itemsPerPage, 50); if (itemsPerPage <= 1) { itemsPerPage = 50;//from w ww . j a va 2s . c o m } RevCommit commit = JGitUtils.getCommit(r, objectId); final Map<ObjectId, List<RefModel>> allRefs = JGitUtils.getAllRefs(r, showRemoteRefs); List<RevCommit> commits; if (pageResults) { // Paging result set commits = JGitUtils.searchRevlogs(r, objectId, value, searchType, pageOffset * itemsPerPage, itemsPerPage); } else { // Fixed size result set commits = JGitUtils.searchRevlogs(r, objectId, value, searchType, 0, limit); } // inaccurate way to determine if there are more commits. // works unless commits.size() represents the exact end. hasMore = commits.size() >= itemsPerPage; // header add(new CommitHeaderPanel("commitHeader", repositoryName, commit)); add(new Label("searchString", value)); add(new Label("searchType", searchType.toString())); ListDataProvider<RevCommit> dp = new ListDataProvider<RevCommit>(commits); DataView<RevCommit> searchView = new DataView<RevCommit>("commit", dp) { private static final long serialVersionUID = 1L; int counter; @Override public void populateItem(final Item<RevCommit> item) { final RevCommit entry = item.getModelObject(); final Date date = JGitUtils.getAuthorDate(entry); item.add(WicketUtils.createDateLabel("commitDate", date, getTimeZone(), getTimeUtils())); // author search link String author = entry.getAuthorIdent().getName(); LinkPanel authorLink = new LinkPanel("commitAuthor", "list", author, GitSearchPage.class, WicketUtils.newSearchParameter(repositoryName, null, author, Constants.SearchType.AUTHOR)); setPersonSearchTooltip(authorLink, author, Constants.SearchType.AUTHOR); item.add(authorLink); // merge icon if (entry.getParentCount() > 1) { item.add(WicketUtils.newImage("commitIcon", "commit_merge_16x16.png")); } else { item.add(WicketUtils.newBlankImage("commitIcon")); } String shortMessage = entry.getShortMessage(); String trimmedMessage = shortMessage; if (allRefs.containsKey(entry.getId())) { trimmedMessage = StringUtils.trimString(shortMessage, Constants.LEN_SHORTLOG_REFS); } else { trimmedMessage = StringUtils.trimString(shortMessage, Constants.LEN_SHORTLOG); } LinkPanel shortlog = new LinkPanel("commitShortMessage", "list subject", trimmedMessage, CommitPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName())); if (!shortMessage.equals(trimmedMessage)) { WicketUtils.setHtmlTooltip(shortlog, shortMessage); } item.add(shortlog); item.add(new RefsPanel("commitRefs", repositoryName, entry, allRefs)); item.add(new BookmarkablePageLink<Void>("commit", CommitPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName()))); item.add(new BookmarkablePageLink<Void>("commitdiff", CommitDiffPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName()))); item.add(new BookmarkablePageLink<Void>("tree", TreePage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName()))); WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(searchView); }
From source file:com.gitblit.wicket.panels.SshKeysPanel.java
License:Apache License
@Override protected void onInitialize() { super.onInitialize(); setOutputMarkupId(true);/*from w w w.j ava 2 s . c om*/ final List<SshKey> keys = new ArrayList<SshKey>(app().keys().getKeys(user.username)); final ListDataProvider<SshKey> dp = new ListDataProvider<SshKey>(keys); final DataView<SshKey> keysView = new DataView<SshKey>("keys", dp) { private static final long serialVersionUID = 1L; @Override public void populateItem(final Item<SshKey> item) { final SshKey key = item.getModelObject(); item.add(new Label("comment", key.getComment())); item.add(new Label("fingerprint", key.getFingerprint())); item.add(new Label("permission", key.getPermission().toString())); item.add(new Label("algorithm", key.getAlgorithm())); AjaxLink<Void> delete = new AjaxLink<Void>("delete") { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { if (app().keys().removeKey(user.username, key)) { // reset the keys list keys.clear(); keys.addAll(app().keys().getKeys(user.username)); // update the panel target.add(SshKeysPanel.this); } } }; if (!canWriteKeys) { delete.setVisibilityAllowed(false); } item.add(delete); } }; add(keysView); Form<Void> addKeyForm = new Form<Void>("addKeyForm"); final IModel<String> keyData = Model.of(""); addKeyForm.add(new TextAreaOption("addKeyData", getString("gb.key"), null, "span5", keyData)); final IModel<AccessPermission> keyPermission = Model.of(AccessPermission.PUSH); addKeyForm.add(new ChoiceOption<AccessPermission>("addKeyPermission", getString("gb.permission"), getString("gb.sshKeyPermissionDescription"), keyPermission, Arrays.asList(AccessPermission.SSHPERMISSIONS))); final IModel<String> keyComment = Model.of(""); addKeyForm.add(new TextOption("addKeyComment", getString("gb.comment"), getString("gb.sshKeyCommentDescription"), "span5", keyComment)); addKeyForm.add(new AjaxButton("addKeyButton") { private static final long serialVersionUID = 1L; @Override protected void onSubmit(AjaxRequestTarget target) { UserModel user = GitBlitWebSession.get().getUser(); String data = keyData.getObject(); if (StringUtils.isEmpty(data)) { // do not submit empty key return; } SshKey key = new SshKey(data); try { key.getPublicKey(); } catch (Exception e) { // failed to parse the key return; } AccessPermission permission = keyPermission.getObject(); key.setPermission(permission); String comment = keyComment.getObject(); if (!StringUtils.isEmpty(comment)) { key.setComment(comment); } if (app().keys().addKey(user.username, key)) { // reset add key fields keyData.setObject(""); keyPermission.setObject(AccessPermission.PUSH); keyComment.setObject(""); // reset the keys list keys.clear(); keys.addAll(app().keys().getKeys(user.username)); // update the panel target.add(SshKeysPanel.this); } } }); if (!canWriteKeys) { addKeyForm.setVisibilityAllowed(false); } add(addKeyForm); }
From source file:com.gitblit.wicket.panels.TagsPanel.java
License:Apache License
public TagsPanel(String wicketId, final String repositoryName, Repository r, final int maxCount) { super(wicketId); // header/*from w ww . java2 s . com*/ List<RefModel> tags = JGitUtils.getTags(r, false, maxCount); if (maxCount > 0) { // summary page // show tags page link add(new LinkPanel("header", "title", new StringResourceModel("gb.tags", this, null), TagsPage.class, WicketUtils.newRepositoryParameter(repositoryName))); } else { // tags page add(new Label("header", new StringResourceModel("gb.tags", this, null))); } ListDataProvider<RefModel> tagsDp = new ListDataProvider<RefModel>(tags); DataView<RefModel> tagView = new DataView<RefModel>("tag", tagsDp) { private static final long serialVersionUID = 1L; int counter; @Override public void populateItem(final Item<RefModel> item) { RefModel entry = item.getModelObject(); item.add(WicketUtils.createDateLabel("tagDate", entry.getDate(), getTimeZone(), getTimeUtils())); Class<? extends WebPage> linkClass; switch (entry.getReferencedObjectType()) { case Constants.OBJ_BLOB: linkClass = BlobPage.class; break; case Constants.OBJ_TREE: linkClass = TreePage.class; break; case Constants.OBJ_COMMIT: default: linkClass = CommitPage.class; break; } item.add(new LinkPanel("tagName", "list name", entry.displayName, linkClass, WicketUtils.newObjectParameter(repositoryName, entry.getReferencedObjectId().getName()))); // workaround for RevTag returning a lengthy shortlog. :( String message = StringUtils.trimString(entry.getShortMessage(), com.gitblit.Constants.LEN_SHORTLOG); if (linkClass.equals(BlobPage.class)) { // Blob Tag Object item.add(WicketUtils.newImage("tagIcon", "file_16x16.png")); LinkPanel messageLink = new LinkPanel("tagDescription", "list", message, TagPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName())); if (!entry.getShortMessage().equals(message)) { messageLink.setTooltip(entry.getShortMessage()); } item.add(messageLink); Fragment fragment = new Fragment("tagLinks", "blobLinks", TagsPanel.this); fragment.add(new BookmarkablePageLink<Void>("tag", TagPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName())) .setEnabled(entry.isAnnotatedTag())); fragment.add(new BookmarkablePageLink<Void>("blob", linkClass, WicketUtils .newObjectParameter(repositoryName, entry.getReferencedObjectId().getName()))); String contextUrl = GitBlitRequestUtils.getRelativePathPrefixToContextRoot(); String rawUrl = RawServlet.asLink(contextUrl, repositoryName, entry.displayName, entry.getReferencedObjectId().getName()); fragment.add(new ExternalLink("raw", rawUrl)); item.add(fragment); } else { // TODO Tree Tag Object // Standard Tag Object if (entry.isAnnotatedTag()) { item.add(WicketUtils.newImage("tagIcon", "tag_16x16.png")); LinkPanel messageLink = new LinkPanel("tagDescription", "list", message, TagPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName())); if (!message.equals(entry.getShortMessage())) { messageLink.setTooltip(entry.getShortMessage()); } item.add(messageLink); Fragment fragment = new Fragment("tagLinks", "annotatedLinks", TagsPanel.this); fragment.add(new BookmarkablePageLink<Void>("tag", TagPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName())) .setEnabled(entry.isAnnotatedTag())); fragment.add(new BookmarkablePageLink<Void>("commit", linkClass, WicketUtils .newObjectParameter(repositoryName, entry.getReferencedObjectId().getName()))); fragment.add(new BookmarkablePageLink<Void>("log", LogPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName()))); item.add(fragment); } else { item.add(WicketUtils.newBlankImage("tagIcon")); item.add(new LinkPanel("tagDescription", "list", message, CommitPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName()))); Fragment fragment = new Fragment("tagLinks", "lightweightLinks", TagsPanel.this); fragment.add(new BookmarkablePageLink<Void>("commit", CommitPage.class, WicketUtils .newObjectParameter(repositoryName, entry.getReferencedObjectId().getName()))); fragment.add(new BookmarkablePageLink<Void>("log", LogPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName()))); item.add(fragment); } } WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(tagView); if (tags.size() < maxCount || maxCount <= 0) { add(new Label("allTags", "").setVisible(false)); } else { add(new LinkPanel("allTags", "link", new StringResourceModel("gb.allTags", this, null), TagsPage.class, WicketUtils.newRepositoryParameter(repositoryName))); } hasTags = tags.size() > 0; }
From source file:com.gitblit.wicket.panels.TeamsPanel.java
License:Apache License
public TeamsPanel(String wicketId, final boolean showAdmin) { super(wicketId); Fragment adminLinks = new Fragment("adminPanel", "adminLinks", TeamsPanel.this); adminLinks.add(new BookmarkablePageLink<Void>("newTeam", EditTeamPage.class)); add(adminLinks.setVisible(showAdmin)); final List<TeamModel> teams = app().users().getAllTeams(); DataView<TeamModel> teamsView = new DataView<TeamModel>("teamRow", new ListDataProvider<TeamModel>(teams)) { private static final long serialVersionUID = 1L; private int counter; @Override//from www. j ava2 s . c o m protected void onBeforeRender() { super.onBeforeRender(); counter = 0; } @Override public void populateItem(final Item<TeamModel> item) { final TeamModel entry = item.getModelObject(); LinkPanel editLink = new LinkPanel("teamname", "list", entry.name, EditTeamPage.class, WicketUtils.newTeamnameParameter(entry.name)); WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.name); item.add(editLink); item.add(new Label("accountType", entry.accountType.name())); item.add(new Label("members", entry.users.size() > 0 ? ("" + entry.users.size()) : "")); item.add(new Label("repositories", entry.repositories.size() > 0 ? ("" + entry.repositories.size()) : "")); Fragment teamLinks = new Fragment("teamLinks", "teamAdminLinks", TeamsPanel.this); teamLinks.add(new BookmarkablePageLink<Void>("editTeam", EditTeamPage.class, WicketUtils.newTeamnameParameter(entry.name))); Link<Void> deleteLink = new Link<Void>("deleteTeam") { private static final long serialVersionUID = 1L; @Override public void onClick() { if (app().users().deleteTeam(entry.name)) { teams.remove(entry); info(MessageFormat.format("Team ''{0}'' deleted.", entry.name)); } else { error(MessageFormat.format("Failed to delete team ''{0}''!", entry.name)); } } }; deleteLink.add(new JavascriptEventConfirmation("click", MessageFormat.format("Delete team \"{0}\"?", entry.name))); teamLinks.add(deleteLink); item.add(teamLinks); WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(teamsView.setVisible(showAdmin)); }
From source file:com.gitblit.wicket.panels.TicketListPanel.java
License:Apache License
public TicketListPanel(String wicketId, List<QueryResult> list, final boolean showSwatch, final boolean showRepository) { super(wicketId); final ListDataProvider<QueryResult> dp = new ListDataProvider<QueryResult>(list); DataView<QueryResult> dataView = new DataView<QueryResult>("row", dp) { private static final long serialVersionUID = 1L; @Override//from w w w.j a v a2 s . c o m protected void populateItem(Item<QueryResult> item) { final QueryResult ticket = item.getModelObject(); if (showSwatch) { // set repository color String color = StringUtils.getColor(StringUtils.stripDotGit(ticket.repository)); WicketUtils.setCssStyle(item, MessageFormat.format("border-left: 2px solid {0};", color)); } PageParameters tp = WicketUtils.newObjectParameter(ticket.repository, "" + ticket.number); if (showRepository) { String name = StringUtils.stripDotGit(ticket.repository); PageParameters rp = WicketUtils.newOpenTicketsParameter(ticket.repository); LinkPanel link = new LinkPanel("ticketsLink", null, name, TicketsPage.class, rp); WicketUtils.setCssBackground(link, name); item.add(link); } else { item.add(new Label("ticketsLink").setVisible(false)); } Label icon = TicketsUI.getStateIcon("state", ticket.type, ticket.status, ticket.severity); WicketUtils.addCssClass(icon, TicketsUI.getSeverityClass(ticket.severity)); item.add(icon); item.add(new Label("id", "" + ticket.number)); UserModel creator = app().users().getUserModel(ticket.createdBy); if (creator != null) { item.add(new LinkPanel("createdBy", null, creator.getDisplayName(), UserPage.class, WicketUtils.newUsernameParameter(ticket.createdBy))); } else { item.add(new Label("createdBy", ticket.createdBy)); } item.add(WicketUtils.createDateLabel("createDate", ticket.createdAt, GitBlitWebSession.get().getTimezone(), getTimeUtils(), false)); if (ticket.updatedAt == null) { item.add(new Label("updated").setVisible(false)); } else { Fragment updated = new Fragment("updated", "updatedFragment", TicketListPanel.this); UserModel updater = app().users().getUserModel(ticket.updatedBy); if (updater != null) { updated.add(new LinkPanel("updatedBy", null, updater.getDisplayName(), UserPage.class, WicketUtils.newUsernameParameter(ticket.updatedBy))); } else { updated.add(new Label("updatedBy", ticket.updatedBy)); } updated.add(WicketUtils.createDateLabel("updateDate", ticket.updatedAt, GitBlitWebSession.get().getTimezone(), getTimeUtils(), false)); item.add(updated); } item.add(new LinkPanel("title", "list subject", StringUtils.trimString(ticket.title, Constants.LEN_SHORTLOG), TicketsPage.class, tp)); ListDataProvider<String> labelsProvider = new ListDataProvider<String>(ticket.getLabels()); DataView<String> labelsView = new DataView<String>("labels", labelsProvider) { private static final long serialVersionUID = 1L; @Override public void populateItem(final Item<String> labelItem) { RepositoryModel repository = app().repositories().getRepositoryModel(ticket.repository); Label label; TicketLabel tLabel; if (repository == null) { label = new Label("label", labelItem.getModelObject()); tLabel = new TicketLabel(labelItem.getModelObject()); } else { Repository db = app().repositories().getRepository(repository.name); BugtraqProcessor btp = new BugtraqProcessor(app().settings()); String content = btp.processText(db, repository.name, labelItem.getModelObject()); String safeContent = app().xssFilter().relaxed(content); db.close(); label = new Label("label", safeContent); label.setEscapeModelStrings(false); tLabel = app().tickets().getLabel(repository, labelItem.getModelObject()); } String background = MessageFormat.format("background-color:{0};", tLabel.color); label.add(new AttributeModifier("style", background)); labelItem.add(label); } }; item.add(labelsView); if (StringUtils.isEmpty(ticket.responsible)) { item.add(new Label("responsible").setVisible(false)); } else { UserModel responsible = app().users().getUserModel(ticket.responsible); if (responsible == null) { responsible = new UserModel(ticket.responsible); } AvatarImage avatar = new AvatarImage("responsible", responsible.getDisplayName(), responsible.emailAddress, null, 16, true); avatar.setTooltip(getString("gb.responsible") + ": " + responsible.getDisplayName()); item.add(avatar); } // votes indicator Label v = new Label("votes", "" + ticket.votesCount); WicketUtils.setHtmlTooltip(v, getString("gb.votes")); item.add(v.setVisible(ticket.votesCount > 0)); // watching indicator item.add( new Label("watching").setVisible(ticket.isWatching(GitBlitWebSession.get().getUsername()))); // priority indicator Label priorityIcon = TicketsUI.getPriorityIcon("priority", ticket.priority); WicketUtils.addCssClass(priorityIcon, TicketsUI.getPriorityClass(ticket.priority)); item.add(priorityIcon.setVisible(true)); // status indicator String css = TicketsUI.getLozengeClass(ticket.status, true); Label l = new Label("status", ticket.status.toString()); WicketUtils.setCssClass(l, css); item.add(l); // add the ticket indicators/icons List<Indicator> indicators = new ArrayList<Indicator>(); // comments if (ticket.commentsCount > 0) { int count = ticket.commentsCount; String pattern = getString("gb.nComments"); if (count == 1) { pattern = getString("gb.oneComment"); } indicators.add(new Indicator("fa fa-comment", count, pattern)); } // participants if (!ArrayUtils.isEmpty(ticket.participants)) { int count = ticket.participants.size(); if (count > 1) { String pattern = getString("gb.nParticipants"); indicators.add(new Indicator("fa fa-user", count, pattern)); } } // attachments if (!ArrayUtils.isEmpty(ticket.attachments)) { int count = ticket.attachments.size(); String pattern = getString("gb.nAttachments"); if (count == 1) { pattern = getString("gb.oneAttachment"); } indicators.add(new Indicator("fa fa-file", count, pattern)); } // patchset revisions if (ticket.patchset != null) { int count = ticket.patchset.commits; String pattern = getString("gb.nCommits"); if (count == 1) { pattern = getString("gb.oneCommit"); } indicators.add(new Indicator("fa fa-code", count, pattern)); } // milestone if (!StringUtils.isEmpty(ticket.milestone)) { indicators.add(new Indicator("fa fa-bullseye", ticket.milestone)); } ListDataProvider<Indicator> indicatorsDp = new ListDataProvider<Indicator>(indicators); DataView<Indicator> indicatorsView = new DataView<Indicator>("indicators", indicatorsDp) { private static final long serialVersionUID = 1L; @Override public void populateItem(final Item<Indicator> item) { Indicator indicator = item.getModelObject(); String tooltip = indicator.getTooltip(); Label icon = new Label("icon"); WicketUtils.setCssClass(icon, indicator.css); item.add(icon); if (indicator.count > 0) { Label count = new Label("count", "" + indicator.count); item.add(count.setVisible(!StringUtils.isEmpty(tooltip))); } else { item.add(new Label("count").setVisible(false)); } WicketUtils.setHtmlTooltip(item, tooltip); } }; item.add(indicatorsView); } }; add(dataView); }
From source file:com.gitblit.wicket.panels.UsersPanel.java
License:Apache License
public UsersPanel(String wicketId, final boolean showAdmin) { super(wicketId); Fragment adminLinks = new Fragment("adminPanel", "adminLinks", UsersPanel.this); adminLinks.add(new BookmarkablePageLink<Void>("newUser", EditUserPage.class)); add(adminLinks.setVisible(showAdmin)); final List<UserModel> users = app().users().getAllUsers(); DataView<UserModel> usersView = new DataView<UserModel>("userRow", new ListDataProvider<UserModel>(users)) { private static final long serialVersionUID = 1L; private int counter; @Override/*from www.j a v a 2 s .com*/ protected void onBeforeRender() { super.onBeforeRender(); counter = 0; } @Override public void populateItem(final Item<UserModel> item) { final UserModel entry = item.getModelObject(); String css = "list" + (entry.disabled ? "-strikethrough" : ""); LinkPanel editLink = new LinkPanel("username", css, entry.username, EditUserPage.class, WicketUtils.newUsernameParameter(entry.username)); WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.getDisplayName()); item.add(editLink); if (StringUtils.isEmpty(entry.displayName)) { item.add(new Label("displayName").setVisible(false)); } else { editLink = new LinkPanel("displayName", css, entry.getDisplayName(), EditUserPage.class, WicketUtils.newUsernameParameter(entry.username)); WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.getDisplayName()); item.add(editLink); } if (StringUtils.isEmpty(entry.emailAddress)) { item.add(new Label("emailAddress").setVisible(false)); } else { editLink = new LinkPanel("emailAddress", css, entry.emailAddress, EditUserPage.class, WicketUtils.newUsernameParameter(entry.username)); WicketUtils.setHtmlTooltip(editLink, getString("gb.edit") + " " + entry.getDisplayName()); item.add(editLink); } item.add(new Label("accountType", entry.accountType.name() + (entry.canAdmin() ? ", admin" : ""))); item.add(new Label("teams", entry.teams.size() > 0 ? ("" + entry.teams.size()) : "")); item.add(new Label("repositories", entry.permissions.size() > 0 ? ("" + entry.permissions.size()) : "")); Fragment userLinks = new Fragment("userLinks", "userAdminLinks", UsersPanel.this); userLinks.add(new BookmarkablePageLink<Void>("editUser", EditUserPage.class, WicketUtils.newUsernameParameter(entry.username))); Link<Void> deleteLink = new Link<Void>("deleteUser") { private static final long serialVersionUID = 1L; @Override public void onClick() { if (app().users().deleteUser(entry.username)) { users.remove(entry); info(MessageFormat.format(getString("gb.userDeleted"), entry.username)); } else { error(MessageFormat.format(getString("gb.deleteUserFailed"), entry.username)); } } }; deleteLink.add(new JavascriptEventConfirmation("click", MessageFormat.format(getString("gb.deleteUser"), entry.username))); userLinks.add(deleteLink); item.add(userLinks); WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(usersView.setVisible(showAdmin)); }
From source file:com.ibm.ws.samples.phonebook.HomePage.java
License:Open Source License
public HomePage(final PageParameters parameters) { super(parameters); add(new DataView<PhoneBookEntry>("phonebook", new PhoneBookEntryDataProvider()) { @Override//from ww w . j a va2 s . c o m protected void populateItem(final Item<PhoneBookEntry> item) { PhoneBookEntry contact = item.getModelObject(); item.add(new Label("name", contact.getName())); item.add(new Label("phone", contact.getPhoneNumber())); } }); }
From source file:com.norconex.jefmon.instances.InstancesPanel.java
License:Apache License
private DataView<InstanceSummary> createDataView() { ListDataProvider<InstanceSummary> dataProvider = new ListDataProvider<InstanceSummary>( InstancesManager.loadInstances()); DataView<InstanceSummary> dataView = new DataView<InstanceSummary>("instances", dataProvider) { private static final long serialVersionUID = 4462642058300231730L; @Override/*from w w w . j a va 2 s. c o m*/ public void populateItem(final Item<InstanceSummary> item) { final InstanceSummary instance = item.getModelObject(); Label nameLabel = new Label("name", instance.getName()); if (instance.isInvalid()) { nameLabel.add(new CssStyle("font-weight: bold;")); } item.add(nameLabel); String url = instance.getUrl(); if (url == null) { url = "<" + getString("instance.this") + ">"; } item.add(new Label("url", url)); item.add(createJobStateListView(instance)); String totalLabel; if (instance.isInvalid()) { totalLabel = StringUtils.EMPTY; } else { totalLabel = Integer.toString(instance.getTotalRoots()); } item.add(new Label("status-total", totalLabel)); AjaxLink<String> removeButton = new AjaxLink<String>("remove") { private static final long serialVersionUID = -7913473337936429743L; @Override public void onClick(AjaxRequestTarget target) { InstancesManager.removeInstance(instance.getUrl()); target.add(instancesTable); } }; removeButton.add(new BootstrapTooltip(new ResourceModel("btn.remove"))); if (instance.isThisInstance()) { removeButton.setVisible(false); } item.add(removeButton); } @Override protected Item<InstanceSummary> newItem(String id, int index, final IModel<InstanceSummary> model) { Item<InstanceSummary> row = super.newItem(id, index, model); InstanceSummary instance = model.getObject(); if (instance.isInvalid()) { row.add(new CssClass("danger")); row.add(new CssStyle("cursor: default;")); row.add(new BootstrapTooltip(getString("instance.error") + instance.getRemoteError())); } else { row.add(new CssStyle("cursor: pointer;")); row.add(new OnClickBehavior() { private static final long serialVersionUID = 7484946666996050240L; @Override protected void onClick(AjaxRequestTarget target) { onInstanceClick(target, model.getObject()); } }); } return row; } }; return dataView; }
From source file:com.romeikat.datamessie.core.base.ui.table.AbstractPageableTablePanel.java
License:Open Source License
private void initialize() { setOutputMarkupId(true);//from w w w . j a v a 2s . co m final List<ITableColumn<T>> tableColumns = getTalbeColumns(); // Paging navigator pagingNavigator = new AjaxPagingNavigator("pagingNavigator", rowsList) { private static final long serialVersionUID = 1L; @Override public void onConfigure() { super.onConfigure(); final long pageCount = getPageable().getPageCount(); setVisible(pageCount > 1); } }; pagingNavigator.setOutputMarkupId(true); add(pagingNavigator); // Headline final ListView<ITableColumn<T>> columnHeadersListView = new ListView<ITableColumn<T>>("columnHeaders", tableColumns) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<ITableColumn<T>> item) { final ITableColumn<T> tableColumn = item.getModelObject(); final ITableComponent columnHeader = tableColumn.getColumnHeader(); addToTable(item, columnHeader); } }; add(columnHeadersListView); // Rows rowsDataProvider = new RowsDataProvider(); rowsList = new DataView<T>("rowsList", rowsDataProvider) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final Item<T> item) { final IModel<T> rowModel = item.getModel(); final ListView<ITableColumn<T>> rowColumnsListView = new ListView<ITableColumn<T>>("columnValues", tableColumns) { private static final long serialVersionUID = 1L; @Override protected void populateItem(final ListItem<ITableColumn<T>> item) { final ITableColumn<T> tableColumn = item.getModelObject(); final ITableComponent columnValue = tableColumn.getColumnValue(rowModel); addToTable(item, columnValue); } }; item.add(rowColumnsListView); } }; rowsList.setItemsPerPage(rowsPerPage); add(rowsList); // Number of rows final long numberOfRows = rowsDataProvider.size(); final String suffix = numberOfRows == 1 ? getRowsSingularName() : getRowsPluralName(); final Label numberOfRowsLabel = new Label("numberOfRows", numberOfRows + " " + suffix); add(numberOfRowsLabel); }