/* * Copyright 2000-2001,2004 The Apache Software Foundation. * * 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 org.apache.jetspeed.portal.portlets; import org.apache.jetspeed.capability.CapabilityMap; import org.apache.jetspeed.util.MimeType; import org.apache.jetspeed.services.rundata.JetspeedRunData; import org.apache.ecs.*; /** * Portlet for rendering HTML links * Can also be used for WML but no output will be created so * redering for wml is done in by the /wml/column.vm file * * @author <a href="mailto:A.Kempf@web.de">Andreas Kempf</a> * @version $Id: LinkPortlet.java,v 1.7 2004/02/23 04:03:34 jford Exp $ */ public class LinkPortlet extends AbstractPortlet { // Define parameter name for a image public static final String L_IMAGE = "image"; // Define parameter name for the link name public static final String L_NAME = "anchor"; // Define parameter name for the link url public static final String L_URL = "link"; // Define parameter name for the link description public static final String L_DESC = "description"; // Define the image for opening the link in an external window public static final String EXT_LINK_IMG = "exlink.gif"; /** * Render HTML links like: * <bullet> <open_new_window_link+image> <link_image> <link_name> <link_description>. * @return org.apache.ecs.ConcreteElement * @param data org.apache.turbine.util.RunData */ public org.apache.ecs.ConcreteElement getContent(org.apache.turbine.util.RunData data) { CapabilityMap cap = ((JetspeedRunData)data).getCapability(); // only for HTML mimetype!!! if (cap.getPreferredType().getCode().equals(MimeType.HTML.getCode())) { String link; String image; String name; String desc; String res = ""; String cstr = ""; int contains = 0; int i = 0; do { if (i>0) cstr=String.valueOf(i); link = getPortletConfig().getInitParameter(L_URL+cstr); // Link available? if ((link!=null) && (link.length()>0)) { // start Linklist if (i==0) res = "<ul>"; image = getPortletConfig().getInitParameter(L_IMAGE+cstr); name = getPortletConfig().getInitParameter(L_NAME+cstr); desc = getPortletConfig().getInitParameter(L_DESC+cstr); // set description if ((desc==null) || (desc.length()<1)) desc = "follow this link"; // add new entry res += "<li>"; // add open in new window link res += "<A HREF=\""+link+"\" TARGET=\"_new\"><IMG SRC=\"images/"+EXT_LINK_IMG+"\" BORDER=\"0\" ALT=\""+name+"\"></A>"; // add link res += "<A HREF=\""+link+"\">"; // add image if ((image != null) && (image.length()>0)) res += " <IMG SRC=\""+image+"\" HSPACES=\"5\" ALT=\""+name+"\" BORDER=\"0\">  "; // add name and description res += name+"</A>    <SMALL>"+desc+"</SMALL></li>"; contains++; } else link = null; i++; } while (link != null); { } // close list if (contains > 0) res += "</ul>"; return(new StringElement(res)); } return new org.apache.jetspeed.util.JetspeedClearElement( " " ); } }