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

-->

<Form version="1.4" maxVersion="1.4" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
  <AuxValues>
    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
  </AuxValues>

  <Layout>
    <DimensionLayout dim="0">
      <Group type="103" groupAlignment="0" attributes="0">
          <Group type="102" alignment="0" attributes="0">
              <Component id="antHomeLabel" min="-2" max="-2" attributes="0"/>
              <EmptySpace min="-2" pref="49" max="-2" attributes="0"/>
              <Group type="103" groupAlignment="0" attributes="0">
                  <Group type="102" alignment="0" attributes="0">
                      <Component id="cbAlwaysShowOutput" min="-2" max="-2" attributes="0"/>
                      <EmptySpace max="-2" attributes="0"/>
                  </Group>
                  <Group type="103" alignment="0" groupAlignment="0" attributes="0">
                      <Component id="lAntVersion" alignment="0" max="32767" attributes="0"/>
                      <Group type="102" alignment="0" attributes="0">
                          <Component id="tfAntHome" min="-2" pref="397" max="-2" attributes="0"/>
                          <EmptySpace max="-2" attributes="0"/>
                          <Component id="bAntHome" min="-2" max="-2" attributes="0"/>
                          <EmptySpace max="-2" attributes="0"/>
                          <Component id="bAntHomeDefault" min="-2" max="-2" attributes="0"/>
                          <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
                      </Group>
                      <Group type="102" attributes="0">
                          <Group type="103" groupAlignment="0" attributes="0">
                              <Component id="cbReuseOutput" alignment="0" min="-2" max="-2" attributes="0"/>
                              <Component id="cbSaveFiles" alignment="0" min="-2" max="-2" attributes="0"/>
                          </Group>
                          <EmptySpace max="32767" attributes="0"/>
                      </Group>
                  </Group>
              </Group>
          </Group>
          <Group type="102" alignment="0" attributes="0">
              <Group type="103" groupAlignment="0" attributes="0">
                  <Component id="verbosityLabel" alignment="0" min="-2" max="-2" attributes="0"/>
                  <Component id="classpathLabel" alignment="0" min="-2" max="-2" attributes="0"/>
                  <Component id="propertiesLabel" alignment="0" min="-2" max="-2" attributes="0"/>
              </Group>
              <EmptySpace min="-2" pref="16" max="-2" attributes="0"/>
              <Group type="103" groupAlignment="0" attributes="0">
                  <Component id="propertiesPanel" alignment="0" max="32767" attributes="0"/>
                  <Component id="cbVerbosity" min="-2" max="-2" attributes="0"/>
                  <Component id="classpathPanel" alignment="0" max="32767" attributes="0"/>
              </Group>
          </Group>
      </Group>
    </DimensionLayout>
    <DimensionLayout dim="1">
      <Group type="103" groupAlignment="0" attributes="0">
          <Group type="102" alignment="0" attributes="0">
              <Group type="103" groupAlignment="3" max="-2" attributes="0">
                  <Component id="antHomeLabel" alignment="3" min="-2" max="-2" attributes="0"/>
                  <Component id="bAntHomeDefault" alignment="3" min="-2" max="-2" attributes="0"/>
                  <Component id="bAntHome" alignment="3" min="-2" max="-2" attributes="0"/>
                  <Component id="tfAntHome" alignment="3" min="-2" max="-2" attributes="0"/>
              </Group>
              <EmptySpace min="-2" max="-2" attributes="0"/>
              <Component id="lAntVersion" min="-2" pref="15" max="-2" attributes="0"/>
              <EmptySpace min="-2" max="-2" attributes="0"/>
              <Component id="cbSaveFiles" min="-2" max="-2" attributes="0"/>
              <EmptySpace min="-2" max="-2" attributes="0"/>
              <Component id="cbReuseOutput" min="-2" max="-2" attributes="0"/>
              <EmptySpace min="-2" max="-2" attributes="0"/>
              <Component id="cbAlwaysShowOutput" min="-2" max="-2" attributes="0"/>
              <EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
              <Group type="103" groupAlignment="3" attributes="0">
                  <Component id="cbVerbosity" alignment="3" min="-2" max="-2" attributes="0"/>
                  <Component id="verbosityLabel" alignment="3" min="-2" max="-2" attributes="0"/>
              </Group>
              <EmptySpace min="-2" max="-2" attributes="0"/>
              <Group type="103" groupAlignment="0" attributes="0">
                  <Component id="classpathLabel" min="-2" max="-2" attributes="0"/>
                  <Component id="classpathPanel" min="-2" pref="175" max="-2" attributes="0"/>
              </Group>
              <Group type="103" groupAlignment="0" attributes="0">
                  <Group type="102" attributes="0">
                      <EmptySpace min="-2" pref="7" max="-2" attributes="0"/>
                      <Component id="propertiesLabel" min="-2" max="-2" attributes="0"/>
                  </Group>
                  <Group type="102" alignment="0" attributes="0">
                      <EmptySpace type="unrelated" max="-2" attributes="0"/>
                      <Component id="propertiesPanel" min="-2" pref="120" max="-2" attributes="0"/>
                  </Group>
              </Group>
              <EmptySpace min="0" pref="0" max="-2" attributes="0"/>
          </Group>
      </Group>
    </DimensionLayout>
  </Layout>
  <SubComponents>
    <Component class="javax.swing.JLabel" name="antHomeLabel">
      <Properties>
        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
          <ComponentRef name="tfAntHome"/>
        </Property>
        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
          <ResourceString bundle="org/apache/tools/ant/module/Bundle.properties" key="Ant_Home" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
        </Property>
      </Properties>
      <AuxValues>
        <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/>
        <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/>
      </AuxValues>
    </Component>
    <Component class="javax.swing.JTextField" name="tfAntHome">
    </Component>
    <Component class="javax.swing.JButton" name="bAntHome">
      <Properties>
        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
          <ResourceString bundle="org/apache/tools/ant/module/Bundle.properties" key="Ant_Home_Button" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
        </Property>
      </Properties>
    </Component>
    <Component class="javax.swing.JButton" name="bAntHomeDefault">
      <Properties>
        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
          <ResourceString bundle="org/apache/tools/ant/module/Bundle.properties" key="Ant_Home_Default_Button" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
        </Property>
      </Properties>
      <Events>
        <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bAntHomeDefaultActionPerformed"/>
      </Events>
    </Component>
    <Component class="javax.swing.JLabel" name="lAntVersion">
      <Properties>
        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
          <Color blue="ff" green="ff" id="white" palette="1" red="ff" type="palette"/>
        </Property>
        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
          <ResourceString bundle="org/apache/tools/ant/module/Bundle.properties" key="AntCustomizer.lAntVersion.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
        </Property>
      </Properties>
    </Component>
    <Component class="javax.swing.JCheckBox" name="cbSaveFiles">
      <Properties>
        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
          <ResourceString bundle="org/apache/tools/ant/module/Bundle.properties" key="Save_Files" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
        </Property>
        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
          </Border>
        </Property>
      </Properties>
    </Component>
    <Component class="javax.swing.JCheckBox" name="cbReuseOutput">
      <Properties>
        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
          <ResourceString bundle="org/apache/tools/ant/module/Bundle.properties" key="Reuse_Output" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
        </Property>
        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
          </Border>
        </Property>
      </Properties>
    </Component>
    <Component class="javax.swing.JCheckBox" name="cbAlwaysShowOutput">
      <Properties>
        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
          <ResourceString bundle="org/apache/tools/ant/module/Bundle.properties" key="Always_Show_Output" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
        </Property>
        <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
          <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInfo">
            <EmptyBorder bottom="0" left="0" right="0" top="0"/>
          </Border>
        </Property>
      </Properties>
    </Component>
    <Component class="javax.swing.JComboBox" name="cbVerbosity">
      <Properties>
        <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
          <StringArray count="1">
            <StringItem index="0" value="Normal"/>
          </StringArray>
        </Property>
      </Properties>
    </Component>
    <Component class="javax.swing.JLabel" name="verbosityLabel">
      <Properties>
        <Property name="labelFor" type="java.awt.Component" editor="org.netbeans.modules.form.ComponentChooserEditor">
          <ComponentRef name="cbVerbosity"/>
        </Property>
        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
          <ResourceString bundle="org/apache/tools/ant/module/Bundle.properties" key="Verbosity" replaceFormat="NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
        </Property>
      </Properties>
      <AuxValues>
        <AuxValue name="JavaCodeGenerator_VariableLocal" type="java.lang.Boolean" value="true"/>
        <AuxValue name="JavaCodeGenerator_VariableModifier" type="java.lang.Integer" value="0"/>
      </AuxValues>
    </Component>
    <Component class="javax.swing.JLabel" name="classpathLabel">
      <Properties>
        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
          <ResourceString bundle="org/apache/tools/ant/module/Bundle.properties" key="AntCustomizer.classpathLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
        </Property>
      </Properties>
    </Component>
    <Container class="javax.swing.JPanel" name="classpathPanel">
      <Properties>
        <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
          <Color blue="cc" green="0" red="99" type="rgb"/>
        </Property>
        <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
          <Color blue="cc" green="0" red="99" type="rgb"/>
        </Property>
      </Properties>

      <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
    </Container>
    <Component class="javax.swing.JLabel" name="propertiesLabel">
      <Properties>
        <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
          <ResourceString bundle="org/apache/tools/ant/module/Bundle.properties" key="AntCustomizer.propertiesLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
        </Property>
      </Properties>
    </Component>
    <Container class="javax.swing.JPanel" name="propertiesPanel">

      <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/>
    </Container>
  </SubComponents>
</Form>
