<?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.
-->

<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/widget-form.xsd">
    <!-- Person Lookup forms -->
    <form name="lookupPerson" default-title-style="tableheadtext"
        default-tooltip-style="tabletext" default-widget-style="inputBox"
        target="LookupPerson" title="" type="single">
        <!--<auto-fields-entity entity-name="Person" default-field-type="find" />-->
        <field name="partyId" title="${uiLabelMap.PartyPartyId}"><text-find/></field>
        <field name="firstName" title="${uiLabelMap.PartyFirstName}"><text-find/></field>
        <field name="lastName"  title="${uiLabelMap.PartyLastName}"><text-find/></field>
        <field name="noConditionFind"><hidden value="Y"/><!-- if this isn't there then with all fields empty no query will be done --></field> 
        <field name="submitButton" title="${uiLabelMap.CommonLookup}" widget-style="smallSubmit"><submit button-type="button"/></field>
    </form>
</forms>
        