raphael     01/05/28 08:14:16

  Modified:    src/java/org/apache/jetspeed/portal/controls
                        AbstractPortletControl.java
  Log:
  change default implementation in AbstractPortlet and AbstractPortletControl
  to check for registry media-types and mime type support
  
  Revision  Changes    Path
  1.4       +53 -1     
jakarta-jetspeed/src/java/org/apache/jetspeed/portal/controls/AbstractPortletControl.java
  
  Index: AbstractPortletControl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/portal/controls/AbstractPortletControl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AbstractPortletControl.java       2001/05/27 15:34:36     1.3
  +++ AbstractPortletControl.java       2001/05/28 15:14:15     1.4
  @@ -56,6 +56,7 @@
   
   import java.util.Map;
   import java.util.Enumeration;
  +import java.util.Iterator;
   import java.util.Vector;
   
   import org.apache.jetspeed.portal.Portlet;
  @@ -67,7 +68,12 @@
   import org.apache.jetspeed.portal.PortletController;
   import org.apache.jetspeed.portal.PortletException;
   import org.apache.jetspeed.portal.portlets.AbstractPortlet;
  +import org.apache.jetspeed.services.Registry;
  +import org.apache.jetspeed.om.newregistry.PortletControlEntry;
  +import org.apache.jetspeed.om.newregistry.MediaTypeEntry;
  +import org.apache.jetspeed.util.MimeType;
   import org.apache.turbine.util.RunData;
  +import org.apache.turbine.util.Log;
   
   import org.apache.ecs.ElementContainer;
   import org.apache.ecs.ConcreteElement;
  @@ -82,7 +88,7 @@
    * a simple portlet wherever in a PSML object tree.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Raphaël Luta</a>
  - * @version $Id: AbstractPortletControl.java,v 1.3 2001/05/27 15:34:36 raphael Exp $
  + * @version $Id: AbstractPortletControl.java,v 1.4 2001/05/28 15:14:15 raphael Exp $
    */
   public abstract class AbstractPortletControl extends AbstractPortlet
       implements PortletControl
  @@ -361,6 +367,52 @@
       {
           if (getPortlet()==null) return new ElementContainer();
           return getPortlet().getContent( rundata );
  +    }
  +
  +    /**
  +    @see Portlet.supportsType
  +    */
  +    public boolean supportsType( MimeType mimeType )
  +    {
  +        boolean allowed = true;
  +
  +        if (getPortlet()!=null)
  +        {
  +            allowed = getPortlet().supportsType( mimeType );
  +        }
  +        
  +        // the inner portlet does not support the type, return immediately...
  +        if (allowed)
  +        {
  +            // we now need to check that the control also supports the type...
  +            PortletControlEntry entry = 
  +                (PortletControlEntry)Registry.getEntry(Registry.PORTLET_CONTROL,
  +                                                   getConfig().getName() );
  +            String baseType = mimeType.toString();
  +            Log.note("Checking type for "+getConfig().getName()+" / type 
"+baseType+" => entry "+entry);
  +
  +            if (entry!=null)
  +            {
  +                Iterator i = entry.listMediaTypes();
  +    
  +                while(i.hasNext())
  +                {
  +                    String name = (String)i.next();
  +                    MediaTypeEntry media = 
(MediaTypeEntry)Registry.getEntry(Registry.MEDIA_TYPE, name);
  +                    Log.note(" Found type: "+media.getMimeType());
  +                    if (media != null)
  +                    {
  +                        if (baseType.equals(media.getMimeType())) 
  +                        {
  +                            allowed = true;
  +                            break;
  +                        }
  +                    }
  +                }
  +            }
  +        }
  +        
  +        return allowed;
       }
   
       // delegate the portletSet interface to the stored PortletSet
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to