/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.web; import java.util.List; import org.apache.wicket.Component; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.AbstractLink; import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.markup.html.link.ExternalLink; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.model.StringResourceModel; public class ToolPage extends GeoServerSecuredPage { @SuppressWarnings("serial") public ToolPage(){ List links = getGeoServerApplication().getBeansOfType(ToolLinkInfo.class); links.addAll(getGeoServerApplication().getBeansOfType(ToolLinkExternalInfo.class)); links = filterByAuth(links); add(new ListView("toolList", links){ public void populateItem(ListItem item){ final ComponentInfo info = (ComponentInfo) item.getModelObject(); AbstractLink link = null; if (info instanceof ToolLinkInfo) { final ToolLinkInfo tool = (ToolLinkInfo)info; link = new BookmarkablePageLink("theLink", tool.getComponentClass()); } else { final ToolLinkExternalInfo tool = (ToolLinkExternalInfo) info; link = new ExternalLink("theLink", tool.getHref()); } link.add(new Label("theTitle", new StringResourceModel(info.getTitleKey(), (Component)null, null))); item.add(link); item.add(new Label("theDescription", new StringResourceModel(info.getDescriptionKey(), (Component)null, null))); } }); } }