Simon Harrer
2013-07-18 fbe265fa787e4be9cb63c6bae2ef30b9400d9afc
src/main/java/com/gitblit/wicket/PageRegistration.java
@@ -36,6 +36,7 @@
   public final String translationKey;
   public final Class<? extends WebPage> pageClass;
   public final PageParameters params;
   public final boolean hiddenPhone;
   public PageRegistration(String translationKey, Class<? extends WebPage> pageClass) {
      this(translationKey, pageClass, null);
@@ -43,9 +44,15 @@
   public PageRegistration(String translationKey, Class<? extends WebPage> pageClass,
         PageParameters params) {
      this(translationKey, pageClass, params, false);
   }
   public PageRegistration(String translationKey, Class<? extends WebPage> pageClass,
         PageParameters params, boolean hiddenPhone) {
      this.translationKey = translationKey;
      this.pageClass = pageClass;
      this.params = params;
      this.hiddenPhone = hiddenPhone;
   }
   /**
@@ -62,6 +69,11 @@
      public OtherPageLink(String translationKey, String url) {
         super(translationKey, null);
         this.url = url;
      }
      public OtherPageLink(String translationKey, String url, boolean hiddenPhone) {
         super(translationKey, null, null, hiddenPhone);
         this.url = url;
      }
   }
@@ -140,13 +152,8 @@
            parameters = new PageParameters(params);
            if (parameters.containsKey(parameter)) {
               isSelected = params.getString(parameter).equals(value);
               if (isSelected) {
                  // already selected, so remove this enables toggling
                  parameters.remove(parameter);
               } else {
                  // set the new selection value
                  setParameter(parameter, value);
               }
               // set the new selection value
               setParameter(parameter, value);
            } else {
               // not currently selected
               isSelected = false;
@@ -155,7 +162,7 @@
         }
      }
      private void setParameter(String parameter, String value) {
      protected void setParameter(String parameter, String value) {
         if (!StringUtils.isEmpty(parameter)) {
            if (StringUtils.isEmpty(value)) {
               this.parameters.remove(parameter);
@@ -212,4 +219,25 @@
         return displayText;
      }
   }
   public static class DropDownToggleItem extends DropDownMenuItem {
      private static final long serialVersionUID = 1L;
      /**
       * Toggle Menu Item constructor that preserves aggregate parameters.
       *
       * @param displayText
       * @param parameter
       * @param value
       */
      public DropDownToggleItem(String displayText, String parameter, String value,
            PageParameters params) {
         super(displayText, parameter, value, params);
         if (isSelected) {
            // already selected, so remove this enables toggling
            parameters.remove(parameter);
         }
      }
   }
}