James Moger
2011-04-14 fc948cacef9c9b8c0a1e84cbc082ca67cd5f68d9
src/com/gitblit/wicket/RepositoryPage.java
@@ -12,6 +12,7 @@
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit;
import com.gitblit.GitBlit;
import com.gitblit.StoredSettings;
import com.gitblit.utils.JGitUtils;
import com.gitblit.wicket.pages.RepositoriesPage;
@@ -21,23 +22,27 @@
public abstract class RepositoryPage extends BasePage {
   protected final String repositoryName;
   protected final String commitId;
   protected final String objectId;
   protected String description;
   private transient Repository r = null;
   public RepositoryPage(PageParameters params) {
      super(params);
      if (!params.containsKey("p")) {
      if (!params.containsKey("r")) {
         error("Repository not specified!");
         redirectToInterceptPage(new RepositoriesPage());
      }
      repositoryName = params.getString("p", "");
      commitId = params.getString("h", "");
      repositoryName = WicketUtils.getRepositoryName(params);
      objectId = WicketUtils.getObject(params);
      Repository r = getRepository();
      add(new PageLinksPanel("pageLinks", r, repositoryName, getPageName()));
      // setup the page links and disable this page's link
      PageLinksPanel pageLinks = new PageLinksPanel("pageLinks", r, repositoryName, getPageName());
      add(pageLinks);
      pageLinks.disablePageLink(getPageName());
      setStatelessHint(true);
   }
@@ -47,7 +52,7 @@
         HttpServletRequest req = servletWebRequest.getHttpServletRequest();
         req.getServerName();
         Repository r = GitBlitWebApp.get().getRepository(req, repositoryName);
         Repository r = GitBlit.self().getRepository(req, repositoryName);
         if (r == null) {
            error("Can not load repository " + repositoryName);
            redirectToInterceptPage(new RepositoriesPage());
@@ -60,7 +65,7 @@
   }
   protected void addRefs(Repository r, RevCommit c) {
      add(new RefsPanel("refsPanel", r, c));
      add(new RefsPanel("refsPanel", repositoryName,  c, JGitUtils.getAllRefs(r)));
   }
   protected void addFullText(String wicketId, String text, boolean substituteRegex) {
@@ -92,33 +97,34 @@
      }
      add(new Label(wicketId, html).setEscapeModelStrings(false));
   }
   protected abstract String getPageName();
   protected void addFooter() {
      r.close();
   @Override
   protected void onBeforeRender() {
      // dispose of repository object
      if (r != null) {
         r.close();
         r = null;
      }
      // setup page header and footer
      setupPage(repositoryName, "/ " + getPageName());
      super.onBeforeRender();
   }
   protected PageParameters newRepositoryParameter() {
      return new PageParameters("p=" + repositoryName);
      return WicketUtils.newRepositoryParameter(repositoryName);
   }
   protected PageParameters newCommitParameter() {
      return newCommitParameter(commitId);
      return WicketUtils.newObjectParameter(repositoryName, objectId);
   }
   protected PageParameters newCommitParameter(String commitId) {
      if (commitId == null || commitId.trim().length() == 0) {
         return newRepositoryParameter();
      }
      return new PageParameters("p=" + repositoryName + ",h=" + commitId);
      return WicketUtils.newObjectParameter(repositoryName, commitId);
   }
   protected PageParameters newPathParameter(String path) {
      if (path == null || path.trim().length() == 0) {
         return newCommitParameter();
      }
      return new PageParameters("p=" + repositoryName + ",h=" + commitId + ",f=" + path);
      return WicketUtils.newPathParameter(repositoryName, objectId, path);
   }
}