選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

TagPage.java 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.gitblit.wicket.pages;
  2. import java.util.List;
  3. import org.apache.wicket.PageParameters;
  4. import org.eclipse.jgit.lib.Repository;
  5. import org.eclipse.jgit.revwalk.RevCommit;
  6. import com.gitblit.utils.JGitUtils;
  7. import com.gitblit.utils.JGitUtils.SearchType;
  8. import com.gitblit.wicket.LinkPanel;
  9. import com.gitblit.wicket.RepositoryPage;
  10. import com.gitblit.wicket.WicketUtils;
  11. import com.gitblit.wicket.models.RefModel;
  12. public class TagPage extends RepositoryPage {
  13. public TagPage(PageParameters params) {
  14. super(params);
  15. Repository r = getRepository();
  16. RevCommit c = getCommit();
  17. List<RefModel> tags = JGitUtils.getTags(r, -1);
  18. RefModel tagRef = null;
  19. // determine tag
  20. for (RefModel tag : tags) {
  21. if (tag.getName().equals(objectId) || tag.getObjectId().getName().equals(objectId)) {
  22. tagRef = tag;
  23. break;
  24. }
  25. }
  26. if (tagRef == null) {
  27. // point to commit
  28. add(new LinkPanel("commit", "title", c.getShortMessage(), CommitPage.class, newCommitParameter()));
  29. add(new LinkPanel("tagId", "list", c.getName(), CommitPage.class, newCommitParameter(c.getName())));
  30. } else {
  31. // TODO commit or tree or blob?
  32. add(new LinkPanel("commit", "title", tagRef.getDisplayName(), CommitPage.class, newCommitParameter()));
  33. add(new LinkPanel("tagId", "list", c.getName(), CommitPage.class, newCommitParameter(c.getName())));
  34. }
  35. add(createPersonPanel("tagAuthor", c.getAuthorIdent(), SearchType.AUTHOR));
  36. add(WicketUtils.createTimestampLabel("tagDate", c.getAuthorIdent().getWhen(), getTimeZone()));
  37. addFullText("fullMessage", c.getFullMessage(), true);
  38. }
  39. @Override
  40. protected String getPageName() {
  41. return getString("gb.tag");
  42. }
  43. }