James Moger
2011-09-30 d376abaca317746fed3b557045432302b8f0b82f
src/com/gitblit/wicket/pages/RepositoryPage.java
@@ -69,6 +69,7 @@
      private static final long serialVersionUID = 1L;
      {
         put("repositories", new PageRegistration("gb.repositories", RepositoriesPage.class, false));
         put("summary", new PageRegistration("gb.summary", SummaryPage.class));
         put("log", new PageRegistration("gb.log", LogPage.class));
         put("branches", new PageRegistration("gb.branches", BranchesPage.class));
@@ -93,6 +94,7 @@
      RepositoryModel model = getRepositoryModel();
      // standard page links
      addRegisteredPageLink("repositories");
      addRegisteredPageLink("summary");
      addRegisteredPageLink("log");
      addRegisteredPageLink("branches");
@@ -133,10 +135,9 @@
         public void populateItem(final Item<String> item) {
            String extra = item.getModelObject();
            PageRegistration pageReg = registeredPages.get(extra);
            item.add(new Label("extraSeparator", " | "));
            item.add(new LinkPanel("extraLink", null, getString(pageReg.translationKey),
                  pageReg.pageClass, WicketUtils.newRepositoryParameter(repositoryName))
                  .setEnabled(!extra.equals(pageWicketId)));
                  /*.setEnabled(!extra.equals(pageWicketId))*/);
         }
      };
      add(extrasView);
@@ -155,6 +156,15 @@
      // set stateless page preference
      setStatelessHint(true);
   }
   @Override
   protected void setupPage(String repositoryName, String pageName) {
      add(new LinkPanel("repositoryName", null, repositoryName, SummaryPage.class,
            WicketUtils.newRepositoryParameter(repositoryName)));
      add(new Label("pageName", pageName));
      super.setupPage(repositoryName, pageName);
   }
   public String getLinkWicketId(String pageName) {
      for (String wicketId : registeredPages.keySet()) {
@@ -172,15 +182,20 @@
      if (!StringUtils.isEmpty(wicketId)) {
         Component c = get(wicketId);
         if (c != null) {
            c.setEnabled(false);
//            c.setEnabled(false);
//            WicketUtils.setCssClass(c, "selected");
         }
      }
   }
   private void addRegisteredPageLink(String key) {
      PageRegistration pageReg = registeredPages.get(key);
      add(new BookmarkablePageLink<Void>(key, pageReg.pageClass,
            WicketUtils.newRepositoryParameter(repositoryName)));
      if (pageReg.repositoryLink) {
         add(new BookmarkablePageLink<Void>(key, pageReg.pageClass,
               WicketUtils.newRepositoryParameter(repositoryName)));
      } else {
         add(new BookmarkablePageLink<Void>(key, pageReg.pageClass));
      }
   }
   protected void addSyndicationDiscoveryLink() {
@@ -330,19 +345,21 @@
      return WicketUtils.newObjectParameter(repositoryName, commitId);
   }
   protected PageParameters newPathParameter(String path) {
      return WicketUtils.newPathParameter(repositoryName, objectId, path);
   }
   private static class PageRegistration implements Serializable {
      private static final long serialVersionUID = 1L;
      final String translationKey;
      final Class<? extends BasePage> pageClass;
      final boolean repositoryLink;
      PageRegistration(String translationKey, Class<? extends BasePage> pageClass) {
         this(translationKey, pageClass, true);
      }
      PageRegistration(String translationKey, Class<? extends BasePage> pageClass, boolean repositoryLink) {
         this.translationKey = translationKey;
         this.pageClass = pageClass;
         this.repositoryLink = repositoryLink;
      }
   }