Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

RefsPanel.java 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.gitblit.wicket.panels;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.List;
  5. import java.util.Map;
  6. import org.apache.wicket.Component;
  7. import org.apache.wicket.markup.html.panel.Panel;
  8. import org.apache.wicket.markup.repeater.Item;
  9. import org.apache.wicket.markup.repeater.data.DataView;
  10. import org.apache.wicket.markup.repeater.data.ListDataProvider;
  11. import org.eclipse.jgit.lib.Constants;
  12. import org.eclipse.jgit.lib.ObjectId;
  13. import org.eclipse.jgit.revwalk.RevCommit;
  14. import com.gitblit.wicket.LinkPanel;
  15. import com.gitblit.wicket.WicketUtils;
  16. import com.gitblit.wicket.pages.CommitPage;
  17. import com.gitblit.wicket.pages.LogPage;
  18. import com.gitblit.wicket.pages.TagPage;
  19. public class RefsPanel extends Panel {
  20. private static final long serialVersionUID = 1L;
  21. public RefsPanel(String id, final String repositoryName, RevCommit c, Map<ObjectId, List<String>> refs) {
  22. super(id);
  23. List<String> refNames = refs.get(c.getId());
  24. if (refNames == null) {
  25. refNames = new ArrayList<String>();
  26. }
  27. Collections.sort(refNames);
  28. // refNames.remove(Constants.HEAD);
  29. ListDataProvider<String> refsDp = new ListDataProvider<String>(refNames);
  30. DataView<String> refsView = new DataView<String>("ref", refsDp) {
  31. private static final long serialVersionUID = 1L;
  32. public void populateItem(final Item<String> item) {
  33. String entry = item.getModelObject();
  34. Component c = null;
  35. if (entry.startsWith(Constants.R_HEADS)) {
  36. // local head
  37. c = new LinkPanel("refName", null, entry.substring(Constants.R_HEADS.length()), LogPage.class, WicketUtils.newObjectParameter(repositoryName, entry));
  38. WicketUtils.setCssClass(c, "headRef");
  39. } else if (entry.startsWith(Constants.R_REMOTES)) {
  40. // remote head
  41. c = new LinkPanel("refName", null, entry.substring(Constants.R_REMOTES.length()), LogPage.class, WicketUtils.newObjectParameter(repositoryName, entry));
  42. WicketUtils.setCssClass(c, "remoteRef");
  43. } else if (entry.startsWith(Constants.R_TAGS)) {
  44. // tag
  45. c = new LinkPanel("refName", null, entry.substring(Constants.R_TAGS.length()), TagPage.class, WicketUtils.newObjectParameter(repositoryName, entry));
  46. WicketUtils.setCssClass(c, "tagRef");
  47. } else {
  48. // other
  49. c = new LinkPanel("refName", null, entry, CommitPage.class, WicketUtils.newObjectParameter(repositoryName, entry));
  50. WicketUtils.setCssClass(c, "otherRef");
  51. }
  52. WicketUtils.setHtmlTitle(c, entry);
  53. item.add(c);
  54. }
  55. };
  56. add(refsView);
  57. }
  58. }