<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

  <bean id="decoratorViewResolver" 
        class="org.vortikal.web.view.wrapper.MappingViewResolver">
    <property name="order" value="-100" />
    <property name="views">
      <map>
        <entry key="displayHTMLResource"  value-ref="displayResourceView" />
        <!--entry key="transformXmlResource" value-ref="transformXmlView" /-->
        <entry key="collectionListing" value-ref="collectionListingView" />
      </map>
    </property>
    <property name="viewWrapper" ref="decoratingViewWrapper" />
    <property name="referenceDataProviders">
      <list>
        <ref bean="decorating.manageLinkProvider" />
      </list>
    </property>
  </bean>

  <bean id="decorating.manageLinkProvider"
        class="org.vortikal.web.referencedata.provider.ResourceServiceURLProvider"
        parent="requestLocalRepositoryAware">
    <property name="modelName" value="manage" />
    <property name="urlName" value="manageURL" />
    <property name="service" ref="manageService" />
  </bean>

  <bean id="decoratingViewWrapper" class="org.vortikal.web.view.wrapper.DecoratingViewWrapper">
    <property name="templateResolver" ref="templateResolver" />
  </bean>

  <bean id="templateResolver" class="org.vortikal.web.view.wrapper.ServiceAwareTemplateResolver">
    <property name="templateManager" ref="templateManager" />
    <property name="serviceTemplatesMap">
      <map>
        <entry key-ref="webService" value="demoTemplate" />
      </map>
    </property>
  </bean>

  <bean id="demoTemplate" class="org.vortikal.web.view.wrapper.StandardDecoratorTemplate">
    <property name="templateSource" ref="demoTemplateSource" />
  </bean>

  <bean id="demoTemplateSource" class="org.vortikal.web.view.wrapper.URLTemplateSource">
    <property name="url" value="file:///${user.home}/demo-decorator.html" />
  </bean>

  <bean id="templateManager" class="org.vortikal.web.view.wrapper.BeanContextTemplateManager">
  </bean>

  <bean id="core:body" class="org.vortikal.web.view.wrapper.ModelAccessingDecoratorComponent">
    <property name="namespace" value="core" />
    <property name="key" value="body" />
  </bean>

  <bean id="core:head" class="org.vortikal.web.view.wrapper.ModelAccessingDecoratorComponent">
    <property name="namespace" value="core" />
    <property name="key" value="head" />
  </bean>

  <bean id="core:title" class="org.vortikal.web.view.wrapper.ModelAccessingDecoratorComponent">
    <property name="namespace" value="core" />
    <property name="key" value="title" />
  </bean>

  <bean id="manage:manageURL" class="org.vortikal.web.view.wrapper.ModelAccessingDecoratorComponent">
    <property name="namespace" value="manage" />
    <property name="key" value="manageURL" />
  </bean>

  <bean id="view:breadcrumb" class="org.vortikal.web.view.wrapper.ViewRenderingDecoratorComponent">
    <property name="view" ref="breadcrumbView" />
  </bean>

  <bean id="breadcrumbView" parent="freemarkerView">
    <property name="url" value="layouts/breadcrumb.ftl" />
    <property name="referenceDataProviders">
      <list>
        <ref bean="viewBreadCrumbProvider" />
      </list>
    </property>
  </bean>


</beans>
