James Moger
2011-05-26 17c417dad5c7be28df4b6e1fd25ec56b484faaff
src/com/gitblit/wicket/LinkPanel.java
@@ -1,13 +1,27 @@
/*
 * Copyright 2011 gitblit.com.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.gitblit.wicket;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.PageParameters;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
@@ -15,28 +29,31 @@
   private static final long serialVersionUID = 1L;
   private IModel<String> labelModel = new Model<String>();
   private final IModel<String> labelModel;
   @SuppressWarnings({ "unchecked", "rawtypes" })
   public LinkPanel(String wicketId, final String linkCssClass, String label, Class<? extends WebPage> clazz, PageParameters parameters) {
   public LinkPanel(String wicketId, String linkCssClass, String label,
         Class<? extends WebPage> clazz) {
      this(wicketId, linkCssClass, new Model<String>(label), clazz, null);
   }
   public LinkPanel(String wicketId, String linkCssClass, String label,
         Class<? extends WebPage> clazz, PageParameters parameters) {
      this(wicketId, linkCssClass, new Model<String>(label), clazz, parameters);
   }
   public LinkPanel(String wicketId, String linkCssClass, IModel<String> model,
         Class<? extends WebPage> clazz, PageParameters parameters) {
      super(wicketId);
      Link<?> link = null;
      this.labelModel = model;
      Link<Void> link = null;
      if (parameters == null) {
         link = new BookmarkablePageLink("link", clazz);
         link = new BookmarkablePageLink<Void>("link", clazz);
      } else {
         link = new BookmarkablePageLink("link", clazz, parameters);
         link = new BookmarkablePageLink<Void>("link", clazz, parameters);
      }
      if (linkCssClass != null) {
         link.add(new AttributeModifier("class", true, new AbstractReadOnlyModel<String>() {
            private static final long serialVersionUID = 1L;
            @Override
            public String getObject() {
               return linkCssClass;
            }
         }));
         link.add(new SimpleAttributeModifier("class", linkCssClass));
      }
      labelModel.setObject(label);
      link.add(new Label("label", labelModel));
      add(link);
   }