/*
 * Arquivo criado em Feb 11, 2005 por jespdb
 */
package org.jboss.portal.theme.taglib;

import java.util.Iterator;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;

import org.jboss.portal.core.theme.Item;
import org.jboss.portal.core.theme.PageHolder;
import org.jboss.portal.core.theme.Region;
import org.jboss.portal.core.theme.RegionSet;
import org.jboss.portal.server.output.FragmentResult;

/**
 * @author Patrick Dalla Bernardina
 *
 */
public class RegionRenderTag extends BodyTagSupport {
        String regionName;
        Region region;
        
        /* 
         * page context attribute where will be saved the
         * window context of the portlet
         */
        public static final String PCTX_FRAGMENT = 
"org.jboss.portal.server.taglib.fragment";
        
        String portletRenderJsp;
        
        public String getRegionName() {
                return regionName;
        }
        
        public void setRegionName(String regionName) {
                this.regionName = regionName;

                /*
                 * extract the region from the pageHolder
                 * of the request.
                 */             
                PageHolder _page = 
(PageHolder)pageContext.getRequest().getAttribute("PAGE");
                RegionSet regions = _page.getRegions();
                region = regions.getRegion(regionName);
        }
        
        public void renderFragment(FragmentResult fragment) throws JspException{
        pageContext.getRequest().setAttribute(PCTX_FRAGMENT, fragment);
        try{
                pageContext.include(portletRenderJsp);
        }catch(Exception e){
                try{
                        if(pageContext.getOut()!=null){
                                if(e.getMessage()!=null)
                                        
pageContext.getOut().write(e.getMessage());
                        }else{
                                System.out.println(e.getMessage());
                        }
                }catch(Exception e2){
                        throw new JspException(e2);
                }
        }
        }
        
        public int doStartTag() throws JspException {
                if(portletRenderJsp==null){
                        portletRenderJsp = "/nodesk/portlet.jsp";
                }
                
                if(regionName.equals("maximized")){                     
                        PageHolder _page = 
(PageHolder)pageContext.getRequest().getAttribute("PAGE");
                FragmentResult main = _page.getMain();
                        renderFragment(main);
                } else if(region!=null){
                        if (!region.isEmpty()) {
                                for (Iterator i = region.items();i.hasNext();)
                                {
                                        Item item = (Item)i.next();
                                        FragmentResult fragment = 
item.getFragment();
                                        renderFragment(fragment);
                                }
                        }
                } 
                
                // TODO Auto-generated method stub
                return super.doStartTag();
        }
        
        public String getPortletRenderJsp() {
                return portletRenderJsp;
        }
        public void setPortletRenderJsp(String portletRenderJsp) {
                this.portletRenderJsp = portletRenderJsp;
        }
}

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3866192#3866192

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3866192


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
JBoss-Development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to