<?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.
-->
<entity-engine-xml>
    <PortletCategory portletCategoryId="GENERIC_PORTLET" description="Generics portlets usable for easily parametrize portalPages"/>
    <PortalPortlet portalPortletId="GenericPortalPage" portletName="Sub PortalPage" screenName="GenericPortalPage" screenLocation="component://common/widget/PortalPageScreens.xml" editFormName="GenericPortalPageParam" editFormLocation="component://common/widget/PortletEditForms.xml" description="a portlet which included a portalPage to be able to have multiple line, each line being a sub page. This portlet has 1 mandatory parameters." securityServiceName="" securityMainAction="VIEW"/>
    <PortletPortletCategory portalPortletId="GenericPortalPage" portletCategoryId="GENERIC_PORTLET"/>
    <PortalPortlet portalPortletId="FindGenericEntity" portletName="Entity List simple search criteria" screenName="FindGenericEntity" screenLocation="component://common/widget/PortalPageScreens.xml" editFormName="FindGenericEntityParam" editFormLocation="component://common/widget/PortletEditForms.xml" description="Simple search criteria, only Id (param idName) and description for entityList, result is sent to List${Entity}Area (FindGenericEntityPrtl define this area). This portel has 3 mandatory parameters." securityServiceName="" securityMainAction="VIEW"/>
    <PortletPortletCategory portalPortletId="FindGenericEntity" portletCategoryId="GENERIC_PORTLET"/>
    <PortalPortlet portalPortletId="GenericScreenlet" portletName="Screenlet with one screen" screenName="GenericScreenlet" screenLocation="component://common/widget/PortalPageScreens.xml" editFormName="GenericScreenletParam" editFormLocation="component://common/widget/PortletEditForms.xml" description="Simple portlet using screenlet, with one screen. This portlet has 3 mandatory parameters." securityServiceName="" securityMainAction="VIEW"/>
    <PortletPortletCategory portalPortletId="GenericScreenlet" portletCategoryId="GENERIC_PORTLET"/>
    <PortalPortlet portalPortletId="GenericScreenletAjax" portletName="Screenlet with one screen called by ajax" screenName="GenericScreenletAjax" screenLocation="component://common/widget/PortalPageScreens.xml" editFormName="GenericScreenletAjaxParam" editFormLocation="component://common/widget/PortletEditForms.xml" description="Simple portlet using screenlet, with one screen which was update by ajax process, so with a div. This portlet has 4 mandatory parameters." securityServiceName="" securityMainAction="VIEW"/>
    <PortletPortletCategory portalPortletId="GenericScreenletAjax" portletCategoryId="GENERIC_PORTLET"/>
    <PortalPortlet portalPortletId="GricScltAjaxWithMenu" portletName="Screenlet with one screen, and one menu called by ajax" screenName="GenericScreenletAjaxWithMenu" screenLocation="component://common/widget/PortalPageScreens.xml" editFormName="GenericScreenletAjaxWithMenuParam" editFormLocation="component://common/widget/PortletEditForms.xml" description="Simple portlet using screenlet with a menu, with one screen which was update by ajax process, so with a div. This portlet has 6 mandatory parameters." securityServiceName="" securityMainAction="VIEW"/>
    <PortletPortletCategory portalPortletId="GricScltAjaxWithMenu" portletCategoryId="GENERIC_PORTLET"/>
    <PortalPage portalPageId="_NA_" sequenceNum="000" portalPageName="For using genericPortletScreen" description="To be able to have parameters at the portlet level, not PortletPage level" ownerUserLoginId="_NA_"/>
</entity-engine-xml>
