James Moger
2013-11-26 4fcac9d2cbdafb51e3ee9ca3b3da64fd86103174
src/main/java/com/gitblit/wicket/PageRegistration.java
@@ -26,9 +26,9 @@
/**
 * Represents a page link registration for the topbar.
 *
 *
 * @author James Moger
 *
 *
 */
public class PageRegistration implements Serializable {
   private static final long serialVersionUID = 1L;
@@ -46,7 +46,7 @@
         PageParameters params) {
      this(translationKey, pageClass, params, false);
   }
   public PageRegistration(String translationKey, Class<? extends WebPage> pageClass,
         PageParameters params, boolean hiddenPhone) {
      this.translationKey = translationKey;
@@ -57,9 +57,9 @@
   /**
    * Represents a page link to a non-Wicket page. Might be external.
    *
    *
    * @author James Moger
    *
    *
    */
   public static class OtherPageLink extends PageRegistration {
@@ -71,7 +71,7 @@
         super(translationKey, null);
         this.url = url;
      }
      public OtherPageLink(String translationKey, String url, boolean hiddenPhone) {
         super(translationKey, null, null, hiddenPhone);
         this.url = url;
@@ -80,9 +80,9 @@
   /**
    * Represents a DropDownMenu for the topbar
    *
    *
    * @author James Moger
    *
    *
    */
   public static class DropDownMenuRegistration extends PageRegistration {
@@ -98,9 +98,9 @@
   /**
    * A MenuItem for the DropDownMenu.
    *
    *
    * @author James Moger
    *
    *
    */
   public static class DropDownMenuItem implements Serializable {
@@ -121,7 +121,7 @@
      /**
       * Standard Menu Item constructor.
       *
       *
       * @param displayText
       * @param parameter
       * @param value
@@ -132,7 +132,7 @@
      /**
       * Standard Menu Item constructor that preserves aggregate parameters.
       *
       *
       * @param displayText
       * @param parameter
       * @param value
@@ -152,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;
@@ -167,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);
@@ -224,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);
         }
      }
   }
}