/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.portal.rendering;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.enonic.vertical.engine.handlers.MenuHandler;
import com.enonic.cms.framework.util.MimeTypeResolver;
import com.enonic.cms.core.SiteURLResolver;
import com.enonic.cms.core.portal.cache.PageCache;
import com.enonic.cms.core.portal.cache.PageCacheService;
import com.enonic.cms.core.portal.datasource.executor.DataSourceExecutorFactory;
import com.enonic.cms.core.portal.instruction.PostProcessInstructionExecutor;
import com.enonic.cms.core.portal.livetrace.LivePortalTraceService;
import com.enonic.cms.core.portal.rendering.viewtransformer.PortletXsltViewTransformer;
import com.enonic.cms.core.resource.ResourceService;
import com.enonic.cms.core.structure.SitePropertiesService;
@Component
public class WindowRendererFactory
{
@Autowired
private PageCacheService pageCacheService;
@Autowired
private ResourceService resourceService;
@Autowired
private DataSourceExecutorFactory datasourceExecutorFactory;
@Autowired
private PortletXsltViewTransformer portletXsltViewTransformer;
@Autowired
private SitePropertiesService sitePropertiesService;
@Autowired
private SiteURLResolver siteURLResolver;
@Autowired
private MimeTypeResolver mimeTypeResolver;
@Autowired
private PostProcessInstructionExecutor postProcessInstructionExecutor;
@Autowired
private LivePortalTraceService livePortalTraceService;
@Autowired
private MenuHandler menuHandler;
public WindowRenderer createPortletRenderer( WindowRendererContext windowRendererContext )
{
PageCache pageCache = pageCacheService.getPageCacheService( windowRendererContext.getSite().getKey() );
WindowRenderer windowRenderer = new WindowRenderer( windowRendererContext, menuHandler );
windowRenderer.setDataSourceExecutorFactory( datasourceExecutorFactory );
windowRenderer.setPageCache( pageCache );
windowRenderer.setPortletXsltViewTransformer( portletXsltViewTransformer );
windowRenderer.setResourceService( resourceService );
windowRenderer.setSiteURLResolver( siteURLResolver );
windowRenderer.setMimeTypeResolver( mimeTypeResolver );
windowRenderer.setSitePropertiesService( sitePropertiesService );
windowRenderer.setPostProcessInstructionExecutor( postProcessInstructionExecutor );
windowRenderer.setLiveTraceService( livePortalTraceService );
return windowRenderer;
}
}