You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Dávid Ignjič <ig...@skms.sk> on 2006/05/18 23:36:08 UTC

Portlet and custom service to generate PDF

I have problem with custom service under portlet, when i submit form and 
execute listener and i want create Ilink to service i get this error:

Failure invoking listener method 'public 
org.apache.tapestry.engine.ILink 
com.skms.InternetPreVsetkych.tapestry.reporty.CelkovyPrehlad.formSubmit(org.apache.tapestry.IRequestCycle)' 
on $CelkovyPrehlad_18@1675d70[CelkovyPrehlad]: Property 'renderResponse' 
of <OuterProxy for 
tapestry.portlet.PortletRequestGlobals(org.apache.tapestry.portlet.PortletRequestGlobals)> 
is null.

java.lang.NullPointerException
Property 'renderResponse' of <OuterProxy for 
tapestry.portlet.PortletRequestGlobals(org.apache.tapestry.portlet.PortletRequestGlobals)> 
is null.

    * $RenderResponse_10b4968ae3d._targetServiceProperty($RenderResponse_10b4968ae3d.java)
    * $RenderResponse_10b4968ae3d.createActionURL($RenderResponse_10b4968ae3d.java)
    * $RenderResponse_10b4968ae3b.createActionURL($RenderResponse_10b4968ae3b.java)
    * org.apache.tapestry.portlet.PortletLinkFactoryImpl.constructLink(PortletLinkFactoryImpl.java:49)
    * $LinkFactory_10b4968acfa.constructLink($LinkFactory_10b4968acfa.java)
    * com.skms.InternetPreVsetkych.tapestry.reporty.GenerovanieReportov.getLink(GenerovanieReportov.java:65)
    * $IEngineService_10b4968ad8f.getLink($IEngineService_10b4968ad8f.java)
    * org.apache.tapestry.services.impl.EngineServiceInnerProxy.getLink(EngineServiceInnerProxy.java:72)
    * org.apache.tapestry.services.impl.EngineServiceOuterProxy.getLink(EngineServiceOuterProxy.java:61)
    * com.skms.InternetPreVsetkych.tapestry.reporty.CelkovyPrehlad.formSubmit(CelkovyPrehlad.java:102)


Any suggestion what is wrong (in tapestry or in my config)?

        Thanks
                    David



Service:

public class GenerovanieReportov implements IEngineService {
    /**
     * Logger for this class
     */
    private static final Logger logger = Logger
            .getLogger(GenerovanieReportov.class);

    public static final String SERVICE_NAME = "generovanieReportov";   
      /** @since 4.0 */
    private RequestExceptionReporter _exceptionReporter;

    /** @since 4.0 */
    private LinkFactory _linkFactory;

    /** @since 4.0 */
    private WebResponse _response;
   
    private WebContext context;
    private WebRequest request;
   
    public void setRequest(WebRequest request) {
        this.request = request;
    }

    public ILink getLink(boolean post, Object parameter) {
            Map parameters = new HashMap();

            parameters.put(ServiceConstants.SERVICE, getName());
            if (parameter != null)
                parameters.putAll((Map)parameter);

            return _linkFactory.constructLink(this, false, parameters, 
true);
   
    }

    protected final com.skms.InternetPreVsetkych.service.UcastnikService 
getUcastnikService()
     {
            try
            {
                PrincipalStore.set(getRequest().getUserPrincipal());
                SecurityStore.setMDPTRole(new Boolean 
(getRequest().isUserInRole("mdpt")));
                SecurityStore.setProvider(null);
                if (!getRequest().isUserInRole("mdpt")){
                    try {
                        GroupManager grManager = (GroupManager) 
getContext().getAttribute(CommonPortletServices.CPS_GROUP_MANAGER_COMPONENT);
                        Collection col = 
grManager.getGroupsForUser(getRequest().getUserPrincipal().getName());
                        for (Iterator iter = col.iterator(); 
iter.hasNext();) {
                            Group element = (Group) iter.next();
                            Provider provider = 
getUcastnikService().findProvider(element.getPrincipal().getName());
                            if (provider != null){
                                SecurityStore.setProvider(provider);    
                           
                            }
                        }
                    } catch (Exception e) {
                        logger.error("getUcastnikService() - e=" + e, 
e); //$NON-NLS-1$
                    }
                }
               
                return 
com.skms.InternetPreVsetkych.ServiceLocator.instance().getUcastnikService();
            }
            catch (final Throwable throwable)
            {
                throw new RuntimeException(throwable);
            }
     }   
   
   
    public void service(IRequestCycle cycle) throws IOException {
       

        try
        {
            OutputStream output = _response.getOutputStream(new 
ContentType("application/pdf"));
            String report = cycle.getParameter("report");
           
            ReportCreate rc = new ReportCreate();
            SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
            if ("ziadostNovoPripojenych".equals( report)){
                Date dateOd = df.parse(cycle.getParameter("dateOd"));
                Date dateDo = df.parse(cycle.getParameter("dateDo"));
                rc.createZiadostNovoPripojenych(dateOd, dateDo, output);
            }
            if ("celkovyPrehlad".equals( report)){
                Date dateOd = df.parse(cycle.getParameter("dateDue"));
                if (cycle.getParameter("provider") != null){
                    Provider prov = Provider.Factory.newInstance();
                    prov.setId(new Long(cycle.getParameter("provider")));
                    SecurityStore.setProvider(prov);
                }
                rc.createCelkovyPrehlad(dateOd, output);
               
            }
            if ("celkovyPrehladProvider".equals( report)){
                Date dateOd = df.parse(cycle.getParameter("dateDue"));
               
                rc.createCelkovyPrehladProvider(dateOd, output);
               
            }

           
        }
        catch (ClassCastException ex)
        {
            _exceptionReporter.reportRequestException("Report generate 
error ", ex);

            return;
        }
        catch (Throwable ex)
        {
            _exceptionReporter.reportRequestException("Error creating 
pdf stream.", ex);

            return;
        }

        return;
       
    }

    public String getName()
    {
        return SERVICE_NAME;
    }

    /** @since 4.0 */
    public void setExceptionReporter(RequestExceptionReporter 
exceptionReporter)
    {
        _exceptionReporter = exceptionReporter;
    }

    /** @since 4.0 */
    public void setLinkFactory(LinkFactory linkFactory)
    {
        _linkFactory = linkFactory;
    }

    /** @since 4.0 */
    public void setResponse(WebResponse response)
    {
        _response = response;
    }

    public void setContext(WebContext context) {
        this.context = context;
    }

    public WebContext getContext() {
        return context;
    }

    public WebRequest getRequest() {
        return request;
    }
   
}

hivemodule.xml:
<module id="com.skms.InternetPreVsetkych.tapestry.reporty" 
version="4.0.0" package="org.apache.tapestry.portlet">
 
  Add on for Tapestry that adds native Portlet support.
 
  <dependency module-id="tapestry" version="4.0.0"/>
  <dependency module-id="tapestry.portlet" version="4.0.0"/>
  <dependency module-id="hivemind.lib" version="1.1.0"/>
    
  <contribution 
configuration-id="tapestry.portlet.resolver.PageResolverRules">
      <match portlet-mode="view" page="reporty"/> 
  </contribution>

<contribution configuration-id="tapestry.state.ApplicationObjects">
  <state-object name="validation-delegate" scope="session">
    <create-instance class="org.apache.tapestry.valid.ValidationDelegate"/>
  </state-object> 
</contribution>

 <contribution configuration-id="tapestry.services.ApplicationServices">
    <service name="generovanieReportov" 
object="service:GenerovanieReportov"/>
  </contribution>

  <service-point id="GenerovanieReportov" 
interface="org.apache.tapestry.engine.IEngineService">
    <invoke-factory>
      <construct 
class="com.skms.InternetPreVsetkych.tapestry.reporty.GenerovanieReportov">
        <set-object property="exceptionReporter" 
value="infrastructure:requestExceptionReporter"/>
        <set-object property="response" value="infrastructure:response"/>
        <set-object property="linkFactory" 
value="infrastructure:linkFactory"/>
        <set-object property="request" value="infrastructure:request"/>
        <set-object property="context" value="infrastructure:context"/>
      </construct>
    </invoke-factory>
  </service-point>
 
</module>


page:

<page-specification 
class="com.skms.InternetPreVsetkych.tapestry.reporty.CelkovyPrehlad">

    <description>add a description</description>       
  
    <inject property="request" object="infrastructure:request"/>
    <inject property="context" object="infrastructure:context"/>
    <inject property="portletRequest" 
object="service:tapestry.portlet.PortletRequest"/>
    <inject property="generovanieService" 
object="engine-service:generovanieReportov"/>
  
    <property name="datum" persist="session"/>
    <property name="provider" persist="session"/>  
</page-specification>


<form jwcid="formFilter@Form" success="listener:formSubmit"  
clientValidationEnabled="ognl:true">
 <table>
     <tr>
        <td class="portlet-section-alternate"><label 
jwcid="@FieldLabel"    field="component:datumPripojenia">Dátum</label></td>
        <td class="portlet-form-field-label">
            <span displayName="Dátum" 
jwcid="datumPripojenia@DatePicker" value="ognl:datum" 
validators="validators:required[Zadajte prosím dátum]" 
translator="translator:date,pattern=dd.MM.yyyy"/>
        </td>
    </tr>
     <tr>
        <td class="portlet-section-alternate">Provider: </td>
        <td class="portlet-form-field-label">
        <select
            jwcid="provider@PropertySelection" value="ognl:provider"
            model="ognl:providerModel"
            size="1"
            displayName="Provider">
        </select>
        </td>
    </tr>
    <tr>
            <td class="portlet-section-alternate"></td>
            <td class="portlet-form-field-label">
                <input type="submit" value="Generuj" 
class="portlet-form-button" />
                  <a href="#" jwcid="@PageLink" 
page="reporty">Návrat</a>               
            </td>
    </tr>   
</table>
</form>



Class:

package com.skms.InternetPreVsetkych.tapestry.reporty;

import org.apache.log4j.Logger;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Transformer;
import org.apache.jetspeed.CommonPortletServices;
import org.apache.jetspeed.security.Group;
import org.apache.jetspeed.security.GroupManager;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.engine.IEngineService;
import org.apache.tapestry.engine.ILink;
import org.apache.tapestry.html.BasePage;
import org.apache.tapestry.web.WebContext;
import org.apache.tapestry.web.WebRequest;
import org.postgresql.jdbc2.optional.SimpleDataSource;

import com.skms.InternetPreVsetkych.PrincipalStore;
import com.skms.InternetPreVsetkych.SecurityStore;
import com.skms.InternetPreVsetkych.domain.Provider;
import com.skms.InternetPreVsetkych.tapestry.Item;
import com.skms.InternetPreVsetkych.tapestry.ItemSelectionModel;


public abstract class CelkovyPrehlad extends BasePage {
    /**
     * Logger for this class
     */
    private static final Logger logger = 
Logger.getLogger(CelkovyPrehlad.class);

    public abstract WebRequest getRequest();
    public abstract WebContext getContext();
    public abstract Date getDatum();
    public abstract Provider getProvider();

    ItemSelectionModel providerModel;
    public ItemSelectionModel getProviderModel() {
        if (providerModel == null){
            ArrayList list = new ArrayList();
            list.add(new Item("", null));
            try{
            
CollectionUtils.collect(getUcastnikService().getProviders().iterator(), 
new Transformer() {
                public Object transform(Object obj) {
                    Provider prov  = (Provider) obj;
                    return new Item(prov.getNazov(), prov.getId());
                }
            }, list);
            } catch (Exception e){
               
            }
            providerModel = new ItemSelectionModel(list);                
   
        }
        return providerModel;
    }
   
    protected final com.skms.InternetPreVsetkych.service.UcastnikService 
getUcastnikService()
     {
            try
            {
                PrincipalStore.set(getRequest().getUserPrincipal());
                SecurityStore.setMDPTRole(new Boolean 
(getRequest().isUserInRole("mdpt")));
                SecurityStore.setProvider(null);
                if (!getRequest().isUserInRole("mdpt")){
                    try {
                        GroupManager grManager = (GroupManager) 
getContext().getAttribute(CommonPortletServices.CPS_GROUP_MANAGER_COMPONENT);
                        Collection col = 
grManager.getGroupsForUser(getRequest().getUserPrincipal().getName());
                        for (Iterator iter = col.iterator(); 
iter.hasNext();) {
                            Group element = (Group) iter.next();
                            Provider provider = 
getUcastnikService().findProvider(element.getPrincipal().getName());
                            if (provider != null){
                                SecurityStore.setProvider(provider);    
                           
                            }
                        }
                    } catch (Exception e) {
                        logger.error("getUcastnikService() - e=" + e, 
e); //$NON-NLS-1$
                    }
                }
               
                return 
com.skms.InternetPreVsetkych.ServiceLocator.instance().getUcastnikService();
            }
            catch (final Throwable throwable)
            {
                throw new RuntimeException(throwable);
            }
     }   
   
    public abstract IEngineService getGenerovanieService();
    public ILink formSubmit(IRequestCycle cycle){
        HashMap map = new HashMap();
        SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
        map.put("dateDue", df.format(getDatum()));
        if (getProvider() != null){
            map.put("provider", getProvider().getId());
        }         
        return getGenerovanieService().getLink(false, map);
    }
}



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Portlet and custom service (generate url to service in ActionRequest)?

Posted by Dávid Ignjič <ig...@skms.sk>.
I thinks that problem is that i create link in service in actionRequest 
and property 'renderResponse' isn't set. I need generate redirect to my 
custom service in this action request.

how can do this ?

Thanks for response.

Dávid Ignjič wrote:
> I have problem with custom service under portlet, when i submit form 
> and execute listener and i want create Ilink to service i get this error:
>
> Failure invoking listener method 'public 
> org.apache.tapestry.engine.ILink 
> com.skms.InternetPreVsetkych.tapestry.reporty.CelkovyPrehlad.formSubmit(org.apache.tapestry.IRequestCycle)' 
> on $CelkovyPrehlad_18@1675d70[CelkovyPrehlad]: Property 
> 'renderResponse' of <OuterProxy for 
> tapestry.portlet.PortletRequestGlobals(org.apache.tapestry.portlet.PortletRequestGlobals)> 
> is null.
>
> java.lang.NullPointerException
> Property 'renderResponse' of <OuterProxy for 
> tapestry.portlet.PortletRequestGlobals(org.apache.tapestry.portlet.PortletRequestGlobals)> 
> is null.
>
>    * 
> $RenderResponse_10b4968ae3d._targetServiceProperty($RenderResponse_10b4968ae3d.java) 
>
>    * 
> $RenderResponse_10b4968ae3d.createActionURL($RenderResponse_10b4968ae3d.java) 
>
>    * 
> $RenderResponse_10b4968ae3b.createActionURL($RenderResponse_10b4968ae3b.java) 
>
>    * 
> org.apache.tapestry.portlet.PortletLinkFactoryImpl.constructLink(PortletLinkFactoryImpl.java:49) 
>
>    * 
> $LinkFactory_10b4968acfa.constructLink($LinkFactory_10b4968acfa.java)
>    * 
> com.skms.InternetPreVsetkych.tapestry.reporty.GenerovanieReportov.getLink(GenerovanieReportov.java:65) 
>
>    * 
> $IEngineService_10b4968ad8f.getLink($IEngineService_10b4968ad8f.java)
>    * 
> org.apache.tapestry.services.impl.EngineServiceInnerProxy.getLink(EngineServiceInnerProxy.java:72) 
>
>    * 
> org.apache.tapestry.services.impl.EngineServiceOuterProxy.getLink(EngineServiceOuterProxy.java:61) 
>
>    * 
> com.skms.InternetPreVsetkych.tapestry.reporty.CelkovyPrehlad.formSubmit(CelkovyPrehlad.java:102) 
>
>
>
> Any suggestion what is wrong (in tapestry or in my config)?
>
>        Thanks
>                    David
>
>
>
> Service:
>
> public class GenerovanieReportov implements IEngineService {
>    /**
>     * Logger for this class
>     */
>    private static final Logger logger = Logger
>            .getLogger(GenerovanieReportov.class);
>
>    public static final String SERVICE_NAME = "generovanieReportov";   
>      /** @since 4.0 */
>    private RequestExceptionReporter _exceptionReporter;
>
>    /** @since 4.0 */
>    private LinkFactory _linkFactory;
>
>    /** @since 4.0 */
>    private WebResponse _response;
>      private WebContext context;
>    private WebRequest request;
>      public void setRequest(WebRequest request) {
>        this.request = request;
>    }
>
>    public ILink getLink(boolean post, Object parameter) {
>            Map parameters = new HashMap();
>
>            parameters.put(ServiceConstants.SERVICE, getName());
>            if (parameter != null)
>                parameters.putAll((Map)parameter);
>
>            return _linkFactory.constructLink(this, false, parameters, 
> true);
>      }
>
>    protected final 
> com.skms.InternetPreVsetkych.service.UcastnikService getUcastnikService()
>     {
>            try
>            {
>                PrincipalStore.set(getRequest().getUserPrincipal());
>                SecurityStore.setMDPTRole(new Boolean 
> (getRequest().isUserInRole("mdpt")));
>                SecurityStore.setProvider(null);
>                if (!getRequest().isUserInRole("mdpt")){
>                    try {
>                        GroupManager grManager = (GroupManager) 
> getContext().getAttribute(CommonPortletServices.CPS_GROUP_MANAGER_COMPONENT); 
>
>                        Collection col = 
> grManager.getGroupsForUser(getRequest().getUserPrincipal().getName());
>                        for (Iterator iter = col.iterator(); 
> iter.hasNext();) {
>                            Group element = (Group) iter.next();
>                            Provider provider = 
> getUcastnikService().findProvider(element.getPrincipal().getName());
>                            if (provider != null){
>                                SecurityStore.setProvider(provider);    
>                                                      }
>                        }
>                    } catch (Exception e) {
>                        logger.error("getUcastnikService() - e=" + e, 
> e); //$NON-NLS-1$
>                    }
>                }
>                              return 
> com.skms.InternetPreVsetkych.ServiceLocator.instance().getUcastnikService(); 
>
>            }
>            catch (final Throwable throwable)
>            {
>                throw new RuntimeException(throwable);
>            }
>     }          public void service(IRequestCycle cycle) throws 
> IOException {
>      
>        try
>        {
>            OutputStream output = _response.getOutputStream(new 
> ContentType("application/pdf"));
>            String report = cycle.getParameter("report");
>                      ReportCreate rc = new ReportCreate();
>            SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
>            if ("ziadostNovoPripojenych".equals( report)){
>                Date dateOd = df.parse(cycle.getParameter("dateOd"));
>                Date dateDo = df.parse(cycle.getParameter("dateDo"));
>                rc.createZiadostNovoPripojenych(dateOd, dateDo, output);
>            }
>            if ("celkovyPrehlad".equals( report)){
>                Date dateOd = df.parse(cycle.getParameter("dateDue"));
>                if (cycle.getParameter("provider") != null){
>                    Provider prov = Provider.Factory.newInstance();
>                    prov.setId(new Long(cycle.getParameter("provider")));
>                    SecurityStore.setProvider(prov);
>                }
>                rc.createCelkovyPrehlad(dateOd, output);
>                          }
>            if ("celkovyPrehladProvider".equals( report)){
>                Date dateOd = df.parse(cycle.getParameter("dateDue"));
>                              rc.createCelkovyPrehladProvider(dateOd, 
> output);
>                          }
>
>                  }
>        catch (ClassCastException ex)
>        {
>            _exceptionReporter.reportRequestException("Report generate 
> error ", ex);
>
>            return;
>        }
>        catch (Throwable ex)
>        {
>            _exceptionReporter.reportRequestException("Error creating 
> pdf stream.", ex);
>
>            return;
>        }
>
>        return;
>          }
>
>    public String getName()
>    {
>        return SERVICE_NAME;
>    }
>
>    /** @since 4.0 */
>    public void setExceptionReporter(RequestExceptionReporter 
> exceptionReporter)
>    {
>        _exceptionReporter = exceptionReporter;
>    }
>
>    /** @since 4.0 */
>    public void setLinkFactory(LinkFactory linkFactory)
>    {
>        _linkFactory = linkFactory;
>    }
>
>    /** @since 4.0 */
>    public void setResponse(WebResponse response)
>    {
>        _response = response;
>    }
>
>    public void setContext(WebContext context) {
>        this.context = context;
>    }
>
>    public WebContext getContext() {
>        return context;
>    }
>
>    public WebRequest getRequest() {
>        return request;
>    }
>   }
>
> hivemodule.xml:
> <module id="com.skms.InternetPreVsetkych.tapestry.reporty" 
> version="4.0.0" package="org.apache.tapestry.portlet">
>
>  Add on for Tapestry that adds native Portlet support.
>
>  <dependency module-id="tapestry" version="4.0.0"/>
>  <dependency module-id="tapestry.portlet" version="4.0.0"/>
>  <dependency module-id="hivemind.lib" version="1.1.0"/>
>     <contribution 
> configuration-id="tapestry.portlet.resolver.PageResolverRules">
>      <match portlet-mode="view" page="reporty"/>  </contribution>
>
> <contribution configuration-id="tapestry.state.ApplicationObjects">
>  <state-object name="validation-delegate" scope="session">
>    <create-instance 
> class="org.apache.tapestry.valid.ValidationDelegate"/>
>  </state-object> </contribution>
>
> <contribution configuration-id="tapestry.services.ApplicationServices">
>    <service name="generovanieReportov" 
> object="service:GenerovanieReportov"/>
>  </contribution>
>
>  <service-point id="GenerovanieReportov" 
> interface="org.apache.tapestry.engine.IEngineService">
>    <invoke-factory>
>      <construct 
> class="com.skms.InternetPreVsetkych.tapestry.reporty.GenerovanieReportov"> 
>
>        <set-object property="exceptionReporter" 
> value="infrastructure:requestExceptionReporter"/>
>        <set-object property="response" value="infrastructure:response"/>
>        <set-object property="linkFactory" 
> value="infrastructure:linkFactory"/>
>        <set-object property="request" value="infrastructure:request"/>
>        <set-object property="context" value="infrastructure:context"/>
>      </construct>
>    </invoke-factory>
>  </service-point>
>
> </module>
>
>
> page:
>
> <page-specification 
> class="com.skms.InternetPreVsetkych.tapestry.reporty.CelkovyPrehlad">
>
>    <description>add a description</description>        
>    <inject property="request" object="infrastructure:request"/>
>    <inject property="context" object="infrastructure:context"/>
>    <inject property="portletRequest" 
> object="service:tapestry.portlet.PortletRequest"/>
>    <inject property="generovanieService" 
> object="engine-service:generovanieReportov"/>
>  
>    <property name="datum" persist="session"/>
>    <property name="provider" persist="session"/>  </page-specification>
>
>
> <form jwcid="formFilter@Form" success="listener:formSubmit"  
> clientValidationEnabled="ognl:true">
> <table>
>     <tr>
>        <td class="portlet-section-alternate"><label 
> jwcid="@FieldLabel"    
> field="component:datumPripojenia">Dátum</label></td>
>        <td class="portlet-form-field-label">
>            <span displayName="Dátum" 
> jwcid="datumPripojenia@DatePicker" value="ognl:datum" 
> validators="validators:required[Zadajte prosím dátum]" 
> translator="translator:date,pattern=dd.MM.yyyy"/>
>        </td>
>    </tr>
>     <tr>
>        <td class="portlet-section-alternate">Provider: </td>
>        <td class="portlet-form-field-label">
>        <select
>            jwcid="provider@PropertySelection" value="ognl:provider"
>            model="ognl:providerModel"
>            size="1"
>            displayName="Provider">
>        </select>
>        </td>
>    </tr>
>    <tr>
>            <td class="portlet-section-alternate"></td>
>            <td class="portlet-form-field-label">
>                <input type="submit" value="Generuj" 
> class="portlet-form-button" />
>                  <a href="#" jwcid="@PageLink" 
> page="reporty">Návrat</a>                          </td>
>    </tr>   </table>
> </form>
>
>
>
> Class:
>
> package com.skms.InternetPreVsetkych.tapestry.reporty;
>
> import org.apache.log4j.Logger;
>
> import java.text.SimpleDateFormat;
> import java.util.ArrayList;
> import java.util.Collection;
> import java.util.Date;
> import java.util.HashMap;
> import java.util.Iterator;
>
> import org.apache.commons.collections.CollectionUtils;
> import org.apache.commons.collections.Transformer;
> import org.apache.jetspeed.CommonPortletServices;
> import org.apache.jetspeed.security.Group;
> import org.apache.jetspeed.security.GroupManager;
> import org.apache.tapestry.IRequestCycle;
> import org.apache.tapestry.engine.IEngineService;
> import org.apache.tapestry.engine.ILink;
> import org.apache.tapestry.html.BasePage;
> import org.apache.tapestry.web.WebContext;
> import org.apache.tapestry.web.WebRequest;
> import org.postgresql.jdbc2.optional.SimpleDataSource;
>
> import com.skms.InternetPreVsetkych.PrincipalStore;
> import com.skms.InternetPreVsetkych.SecurityStore;
> import com.skms.InternetPreVsetkych.domain.Provider;
> import com.skms.InternetPreVsetkych.tapestry.Item;
> import com.skms.InternetPreVsetkych.tapestry.ItemSelectionModel;
>
>
> public abstract class CelkovyPrehlad extends BasePage {
>    /**
>     * Logger for this class
>     */
>    private static final Logger logger = 
> Logger.getLogger(CelkovyPrehlad.class);
>
>    public abstract WebRequest getRequest();
>    public abstract WebContext getContext();
>    public abstract Date getDatum();
>    public abstract Provider getProvider();
>
>    ItemSelectionModel providerModel;
>    public ItemSelectionModel getProviderModel() {
>        if (providerModel == null){
>            ArrayList list = new ArrayList();
>            list.add(new Item("", null));
>            try{
>            
> CollectionUtils.collect(getUcastnikService().getProviders().iterator(), 
> new Transformer() {
>                public Object transform(Object obj) {
>                    Provider prov  = (Provider) obj;
>                    return new Item(prov.getNazov(), prov.getId());
>                }
>            }, list);
>            } catch (Exception e){
>                          }
>            providerModel = new 
> ItemSelectionModel(list);                         }
>        return providerModel;
>    }
>      protected final 
> com.skms.InternetPreVsetkych.service.UcastnikService getUcastnikService()
>     {
>            try
>            {
>                PrincipalStore.set(getRequest().getUserPrincipal());
>                SecurityStore.setMDPTRole(new Boolean 
> (getRequest().isUserInRole("mdpt")));
>                SecurityStore.setProvider(null);
>                if (!getRequest().isUserInRole("mdpt")){
>                    try {
>                        GroupManager grManager = (GroupManager) 
> getContext().getAttribute(CommonPortletServices.CPS_GROUP_MANAGER_COMPONENT); 
>
>                        Collection col = 
> grManager.getGroupsForUser(getRequest().getUserPrincipal().getName());
>                        for (Iterator iter = col.iterator(); 
> iter.hasNext();) {
>                            Group element = (Group) iter.next();
>                            Provider provider = 
> getUcastnikService().findProvider(element.getPrincipal().getName());
>                            if (provider != null){
>                                SecurityStore.setProvider(provider);    
>                                                      }
>                        }
>                    } catch (Exception e) {
>                        logger.error("getUcastnikService() - e=" + e, 
> e); //$NON-NLS-1$
>                    }
>                }
>                              return 
> com.skms.InternetPreVsetkych.ServiceLocator.instance().getUcastnikService(); 
>
>            }
>            catch (final Throwable throwable)
>            {
>                throw new RuntimeException(throwable);
>            }
>     }        public abstract IEngineService getGenerovanieService();
>    public ILink formSubmit(IRequestCycle cycle){
>        HashMap map = new HashMap();
>        SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
>        map.put("dateDue", df.format(getDatum()));
>        if (getProvider() != null){
>            map.put("provider", getProvider().getId());
>        }                return getGenerovanieService().getLink(false, 
> map);
>    }
> }
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org