/* * Copyright 2000-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; //Element Construction Set import org.apache.ecs.html.A; import org.apache.ecs.html.Table; import org.apache.ecs.html.TD; import org.apache.ecs.html.TR; import org.apache.ecs.ConcreteElement; //Jetspeed stuff import org.apache.jetspeed.portal.Portlet; import org.apache.jetspeed.portal.PortletConfig; import org.apache.jetspeed.portal.PortletException; import org.apache.jetspeed.portal.PortletURIManager; import org.apache.jetspeed.services.PortletFactory; import org.apache.jetspeed.services.Registry; import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; import org.apache.jetspeed.om.registry.PortletEntry; //turbine import org.apache.turbine.util.RunData; //standard java stuff import java.util.*; /** * Handles enumerating Portlets that are also applications * * @author <a href="mailto:burton@apache.org">Kevin A. Burton</a> * @author <a href="mailto:sgala@hisitech.com">Santiago Gala</a> * @version $Id: ApplicationsPortlet.java,v 1.39 2004/02/23 04:03:34 jford Exp $ */ public class ApplicationsPortlet extends AbstractPortlet { /** * Static initialization of the logger for this class */ private static final JetspeedLogger logger = JetspeedLogFactoryService.getLogger(ApplicationsPortlet.class.getName()); /* SGP: here we cache Applications */ private Vector applications = new Vector(); /** */ public void init() throws PortletException { PortletConfig config = this.getPortletConfig(); this.setTitle( "Applications" ); this.setDescription( "A list of Applications that are installed within Jetspeed" ); logger.info( "Jetspeed: initializing the ApplicationsPortlet: BEGIN " ); Enumeration portlets = Registry.get( Registry.PORTLET ).getEntries(); while ( portlets.hasMoreElements() ) { PortletEntry entry = (PortletEntry)portlets.nextElement(); if ( entry.isApplication() ) { applications.addElement(entry); } } logger.info( "Jetspeed: initializing the ApplicationsPortlet: END " ); } /** */ public ConcreteElement getContent( RunData data ) { Table table = new Table(); Enumeration portlets = applications.elements(); while ( portlets.hasMoreElements() ) { PortletEntry entry = (PortletEntry)portlets.nextElement(); String url = PortletURIManager.getPortletMaxURI( entry, data ).toString(); Portlet portlet = null; try { portlet = PortletFactory.getPortlet(entry.getName(), "0"); } catch (PortletException e) { continue; } A anchor = new A( url ).addElement( portlet.getTitle() ); table.addElement( new TR().addElement( new TD().addElement( anchor ) ) ); table.addElement( new TR().addElement( new TD().addElement( portlet.getDescription() ) ) ); } return table; } public boolean getAllowEdit( RunData rundata ) { return false; } public boolean getAllowMaximize( RunData rundata ) { return true; } }