<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
  -->

<trees xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ofbiz.apache.org/Widget-Tree" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Tree http://ofbiz.apache.org/dtds/widget-tree.xsd">
    <tree name="ResponseTree" entity-name="Content" root-node-name="node-root" default-render-style="simple" default-wrap-style="responseTreeWrapper">
        <node name="node-root" entry-name="rsp">
            <entity-one entity-name="Content" use-cache="false" value-field="rsp">
                <field-map field-name="contentId" from-field="rootEntityId"/>
            </entity-one>
            <include-screen name="blogTreeLine" location="component://ecommerce/widget/blog/BlogScreens.xml"/>
            <sub-node node-name="node-body">
                <entity-condition entity-name="ContentAssocViewTo" use-cache="false">
                    <condition-list combine="and">
                        <condition-expr field-name="caContentId" operator="equals" from-field="rootEntityId"/>
                        <condition-expr field-name="caContentAssocTypeId" operator="equals" value="RESPONSE"/>
                        <condition-expr field-name="caThruDate" operator="equals" value=""/>
                    </condition-list>
                    <order-by field-name="caFromDate DESC"/>
                </entity-condition>
            </sub-node>
        </node>
        <node name="node-body" entry-name="rsp">
            <include-screen name="responseTreeLine" location="component://ecommerce/widget/blog/BlogScreens.xml"/>
            <sub-node node-name="node-body">
                <entity-condition entity-name="ContentAssocViewTo" use-cache="true">
                    <condition-list combine="and">
                        <condition-expr field-name="caContentId" operator="equals" from-field="rsp.contentId"/>
                        <condition-expr field-name="caContentAssocTypeId" operator="equals" value="RESPONSE"/>
                        <condition-expr field-name="caThruDate" operator="equals" value=""/>
                    </condition-list>
                    <order-by field-name="caFromDate DESC"/>
                </entity-condition>
            </sub-node>
        </node>
    </tree>
</trees>
