Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/buildNumber.properties
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/buildNumber.properties	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/buildNumber.properties	(revision 347)
@@ -0,0 +1,2 @@
+#Tue Jul 10 03:15:45 CEST 2018
+buildNumber=68
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/plugin-persistence.def
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/plugin-persistence.def	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/plugin-persistence.def	(revision 347)
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<!--
+Definitions of plugin persistence org.gvsig.editing.  
+ -->
+<definitions>
+  <version>1.0.0</version>
+  <classes>
+    <class name="org.gvsig.customize.app.mainplugin">
+      <description>Persistence for the customize plugin</description>
+      <fields>
+        <field name="configureLocale" Label="Apply locale" type="Boolean" defaultValue="true" mandatory="false" group="Apply options">
+          <description>Apply default locale in next startup</description>
+        </field>
+        <field name="configureProjection" Label="Apply projection" type="Boolean" defaultValue="true" mandatory="false" group="Apply options">
+          <description>Apply default proyection in next startup</description>
+        </field>
+        <field name="configureHTTPPproxy" Label="Apply proxy configuration" type="Boolean" defaultValue="true" mandatory="false" group="Apply options">
+          <description>Apply default proyection in next startup</description>
+        </field>
+        <field name="configureOGCServers_WMS" Label="Apply WMS servers" type="Boolean" defaultValue="true" mandatory="false" group="Apply options">
+          <description>Apply default WMS servers in next startup</description>
+        </field>
+        <field name="configureOGCServers_WMTS" Label="Apply WMTS servers" type="Boolean" defaultValue="true" mandatory="false" group="Apply options">
+          <description>Apply default WMTS servers in next startup</description>
+        </field>
+        <field name="configureOGCServers_WCS" Label="Apply WCS servers" type="Boolean" defaultValue="true" mandatory="false" group="Apply options">
+          <description>Apply default WCS servers in next startup</description>
+        </field>
+        <field name="configureOGCServers_WFS" Label="Apply WFS servers" type="Boolean" defaultValue="true" mandatory="false" group="Apply options">
+          <description>Apply default WFS servers in next startup</description>
+        </field>
+        <field name="installAdditionalComponents" Label="Install additional components" type="Boolean" defaultValue="true" mandatory="false" group="Apply options">
+          <description>Install additional components if required</description>
+        </field>
+        
+        <field name="showCustomizeTools" Label="Show customize tools" type="Boolean" defaultValue="true" mandatory="false" group="Apply options">
+          <description>Show the tools to customize and create distributions</description>
+        </field>
+        
+        <field name="distributionID" Label="Distribution identifier" type="String" defaultValue="" mandatory="false" group="Create distribution">
+          <description>Identifier to use to generate the distribution, only letters and numbers</description>
+        </field>
+        <field name="onlineInstaller" Label="Online installer" type="File" defaultValue="" mandatory="false" group="Create distribution">
+          <description>Last online installer used to generate the distribution</description>
+        </field>        
+        <field name="packageSet" Label="Package set" type="File" defaultValue="" mandatory="false" group="Create distribution">
+          <description>Last package set used to generate the distribution</description>
+        </field>        
+        <field name="WorkingFolder" Label="Working folder" type="File" defaultValue="" mandatory="false" group="Create distribution">
+          <description>Last working folder used to generate the distribution</description>
+        </field>        
+        <field name="includeCustomizePlugin" Label="Include customize plugin" type="Boolean" defaultValue="true" mandatory="false" group="Create distribution">
+          <description>Last value used for the flag of include customize plugins used to generate the distribution</description>
+        </field>        
+      </fields>
+    </class>
+  </classes>
+</definitions>  
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/i18n/text.properties
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/i18n/text.properties	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/i18n/text.properties	(revision 347)
@@ -0,0 +1,11 @@
+_Configuring_installation=Configurando la instalaci\u00f3n
+_Close=Cerrar
+_Terminating_installation=Terminando la instalaci\u00f3n
+_Preparing_additional_components_installation=Preparando la instalaci\u00f3n de componentes adicionales
+_Searching_available_packages=Buscando los paquetes disponibles
+_Installing_{0}=Instalando {0}
+_Installation_terminated=Instalaci\u00f3n terminada
+_Additional_components_installed_succesfully_Restart_applicaction=Componentes adicionales instalados correctamente. Reinicie la aplicaci\u00f3n.
+_Additional_components_installed_succesfully=Componentes adicionales instalados correctamente.
+_Problems_installing_additional_components=Han habido problemas instalando los componentes adicionales.
+_Installing_additional_components=Instalando componentes adicionales
\ No newline at end of file
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties	(revision 347)
@@ -0,0 +1,11 @@
+_Configuring_installation=Configuring installation
+_Close=Close
+_Terminating_installation=Terminating installation
+_Preparing_additional_components_installation=Preparing additional components installation
+_Searching_available_packages=Searching available packages
+_Installing_{0}=Installing {0}
+_Installation_terminated=Installation terminated
+_Additional_components_installed_succesfully_Restart_applicaction=Additional components installed succesfully. Restart_applicaction.
+_Additional_components_installed_succesfully=Additional components installed succesfully.
+_Problems_installing_additional_components=Problems installing additional components.
+_Installing_additional_components=Installing additional components
\ No newline at end of file
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/theme/andami-theme.xml
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/theme/andami-theme.xml	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/theme/andami-theme.xml	(revision 347)
@@ -0,0 +1,47 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+<AndamiProperties>
+    <ApplicationImages>
+        <SplashImages>
+            <Splash
+                path="splash.png"
+                timer="10000"
+                x="225" y="50"
+                fontsize="16" color="80,170,240"
+                version="${version}.${buildNumber} ${state}"/>
+        </SplashImages>		
+        <!--
+        <BackgroundImage path="wallpaper.png"/>
+        -->
+        <!--
+        <BackgroundColor color="0,0,0"/>
+        -->
+        <WallpaperType value="CENTERED"/>
+        <Icon path="icon16x16.png"/>
+    </ApplicationImages>
+    <ApplicationName value="gvSIG ${version}.${buildNumber} ${state}"/>
+    <priority value="1000"/>
+</AndamiProperties>
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/theme/wallpaper.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/theme/wallpaper.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/theme/splash.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/theme/splash.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/theme/icon16x16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/theme/icon16x16.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/configure.form
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/configure.form	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/configure.form	(revision 347)
@@ -0,0 +1,316 @@
+<?xml version="1.0"?>
+<definitions>
+  <version>1.0.0</version>
+  <classes>
+
+    <class name="ScriptAction">
+      <description></description>
+      <fields>
+        <field name="name" label="Name" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+        <field name="script" label="Script name" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+        <field name="label" label="Label" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+        <field name="icon" label="Icon name" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+        <field name="position" label="Position" type="long" defaultValue="0" mandatory="false">
+          <description></description>
+        </field>
+
+        <field name="tip" label="Tip" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+      </fields>
+    </class>
+
+    <class name="ViewTocAction">
+      <description></description>
+      <fields>
+        <field name="name" label="Action name" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+        <field name="group" label="Group" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+        <field name="grouporder" label="Group order" type="integer" defaultValue="0" mandatory="false">
+          <description></description>
+        </field>
+
+      </fields>
+    </class>
+
+    <class name="ToolAction">
+      <description></description>
+      <fields>
+        <field name="name" label="Action name" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+        <field name="toolbarName" label="Toolbar name" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+      </fields>
+    </class>
+
+    <class name="MenuAction">
+      <description></description>
+      <fields>
+        <field name="name" label="Action name" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+        <field name="text" label="Menu entry" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+
+      </fields>
+    </class>
+
+    <class name="ServerURL">
+      <description></description>
+      <fields>
+        <field name="remove" label="Remove" type="Boolean" defaultValue="false" mandatory="false">
+          <description></description>
+            <tags>
+                    <value name="dynform.width" value="30" />
+            </tags>
+        </field>
+
+        <field name="url" label="URL" type="String" defaultValue="" mandatory="false">
+            <description></description>
+        </field>
+
+      </fields>
+    </class>
+
+    <class name="ProxyConfiguration">
+      <description></description>
+      <fields>
+        <field name="host" label="Host" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+        <field name="port" label="Port" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+        <field name="username" label="User name" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+        <field name="password" label="Password" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+        <field name="nonProxyHosts" label="Non proxy hosts" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+        <field name="promptUserAndPassword" label="Prompt user and password" type="boolean" defaultValue="false" mandatory="false">
+          <description></description>
+        </field>
+        <field name="enabled" label="Enabled" type="boolean" defaultValue="false" mandatory="false">
+          <description></description>
+        </field>
+      </fields>
+    </class>
+
+    <class name="CRSConfiguration">
+      <description></description>
+      <fields>
+        <field name="default_projection" label="Default projection" type="CRS" defaultValue="EPSG:4326" mandatory="false">
+          <description>Default projection to use in gvSIG</description>
+        </field>
+        <field name="recent11" label="Recent projection 1" type="Object" classOfValue="org.cresques.cts.IProjection" type="CRS" defaultValue="" mandatory="false">
+          <description>Projection to add to recent used projections</description>
+        </field>
+        <field name="recent2" label="Recent projection 2" type="CRS" defaultValue="" mandatory="false">
+          <description>Projection to add to recent used projections</description>
+        </field>
+        <field name="recent3" label="Recent projection 3" type="CRS" defaultValue="" mandatory="false">
+          <description>Projection to add to recent used projections</description>
+        </field>
+        <field name="recent4" label="Recent projection 4" type="CRS" defaultValue="" mandatory="false">
+          <description>Projection to add to recent used projections</description>
+        </field>
+      </fields>
+    </class>
+
+    <class name="ThemeConfiguration">
+      <description></description>
+      <fields>
+        <field name="applicationname" label="Application title" type="String" defaultValue="gvSIG ${version}.${buildNumber} ${state}" mandatory="false">
+          <description></description>
+        </field>
+        <field name="icon" label="Icon image" type="File" defaultValue="icon16x16.png" mandatory="false">
+          <description></description>
+        </field>
+        <field name="splash_image" label="Splash image" type="File" defaultValue="splash.png" mandatory="false">
+          <description></description>
+        </field>
+        <field name="splash_version" label="Version" type="String" defaultValue="${version}.${buildNumber} ${state}" mandatory="false">
+          <description></description>
+        </field>
+        <field name="splash_x" label="Version position X" type="Integer" defaultValue="225" mandatory="false">
+          <description></description>
+        </field>
+        <field name="splash_y" label="Version position Y" type="Integer" defaultValue="50" mandatory="false">
+          <description></description>
+        </field>
+        <field name="splash_font_size" label="Version font size" type="integer" defaultValue="16" mandatory="false">
+          <description></description>
+        </field>
+        <field name="splash_font_color" label="Version font color" type="String" defaultValue="80,170,240" mandatory="false">
+          <description></description>
+        </field>
+
+        <field name="wallpaper_image" label="Wallpaper image" type="File" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+        <field name="wallpaper_mode" label="Wallpaper mode" type="String" defaultValue="CENTERED" mandatory="false">
+            <description></description>
+            <availableValues>
+                    <value label="Centered">CENTERED</value>
+                    <value label="Expand">EXPAND</value>
+                    <value label="Mosaic">MOSAIC</value>
+            </availableValues>
+        </field>
+        <field name="background_color" label="Background color" type="String" defaultValue="" mandatory="false">
+          <description></description>
+        </field>
+      </fields>
+    </class>
+
+    <class name="Configuration">
+      <description>Customize plugin configuration</description>
+      <fields>
+        <field name="default_locale" label="Default locale" type="String" subtype="locale" defaultValue="" mandatory="false" group="Locale">
+          <description>Default locale to use in gvSIG</description>
+        </field>
+
+        <field name="crs" type="DynObject" classOfValue="CRSConfiguration" defaultValue="" mandatory="false" group="CRS">
+          <description></description>
+            <tags>
+                    <value name="dynform.label.empty" value="true" />
+            </tags>
+        </field>
+
+        <field name="httpproxy" type="DynObject" classOfValue="ProxyConfiguration" defaultValue="" mandatory="false" group="Proxy">
+          <description></description>
+            <tags>
+                    <value name="dynform.label.empty" value="true" />
+            </tags>
+        </field>
+
+        <field name="wmsUrls" label="WMS URLs" type="List" subtype="DynObject" typeOfItems="DynObject" classOfItems="ServerURL" defaultValue="" mandatory="false" group="WMS">
+            <description></description>
+            <tags>
+                    <value name="dynform.height" value="300" />
+                    <value name="ViewMode" value="SimpleTable" />
+                    <value name="dynform.label.empty" value="true" />
+            </tags>
+        </field>
+
+        <field name="wmtsUrls" label="WMTS URLs" type="List" subtype="DynObject" typeOfItems="DynObject" classOfItems="ServerURL" defaultValue="" mandatory="false" group="WMTS">
+            <description></description>
+            <tags>
+                    <value name="dynform.height" value="300" />
+                    <value name="ViewMode" value="SimpleTable" />
+                    <value name="dynform.label.empty" value="true" />
+            </tags>
+        </field>
+
+        <field name="wcsUrls" label="WCS URLs" type="List" subtype="DynObject" typeOfItems="DynObject" classOfItems="ServerURL" defaultValue="" mandatory="false" group="WCS">
+            <description></description>
+            <tags>
+                    <value name="dynform.height" value="300" />
+                    <value name="ViewMode" value="SimpleTable" />
+                    <value name="dynform.label.empty" value="true" />
+            </tags>
+        </field>
+
+        <field name="wfsUrls" label="WFS URLs" type="List" subtype="DynObject" typeOfItems="DynObject" classOfItems="ServerURL" defaultValue="" mandatory="false" group="WFS">
+            <description></description>
+            <tags>
+                    <value name="dynform.height" value="300" />
+                    <value name="ViewMode" value="SimpleTable" />
+                    <value name="dynform.label.empty" value="true" />
+            </tags>
+        </field>
+
+        <field name="theme" type="DynObject" classOfValue="ThemeConfiguration" defaultValue="" mandatory="false" group="Theme">
+          <description></description>
+            <tags>
+                    <value name="dynform.label.empty" value="true" />
+            </tags>
+        </field>
+
+        <field name="scriptActions" type="List" subtype="DynObject" typeOfItems="DynObject" classOfItems="ScriptAction"
+                mandatory="false" defaultValue="" group="Script actions">
+                <description></description>
+                <tags>
+                        <value name="dynform.label.empty" value="true" />
+                        <value name="dynform.border.empty" value="true" />
+                        <value name="allowNew" value="true" />
+                        <value name="allowDelete" value="true" />
+                        <value name="allowUpdate" value="true" />
+                        <value name="allowSearch" value="false" />
+                        <value name="allowClose" value="false" />
+                </tags>
+        </field>
+
+        <field name="viewTocActions" type="List" subtype="DynObject" typeOfItems="DynObject" classOfItems="ViewTocAction"
+                mandatory="false" defaultValue="" group="View TOC actions">
+                <description></description>
+                <tags>
+                        <value name="dynform.label.empty" value="true" />
+                        <value name="dynform.border.empty" value="true" />
+                        <value name="allowNew" value="true" />
+                        <value name="allowDelete" value="true" />
+                        <value name="allowUpdate" value="true" />
+                        <value name="allowSearch" value="false" />
+                        <value name="allowClose" value="false" />
+                </tags>
+        </field>
+
+        <field name="toolActions" type="List" subtype="DynObject" typeOfItems="DynObject" classOfItems="ToolAction"
+                mandatory="false" defaultValue="" group="Tool actions">
+                <description></description>
+                <tags>
+                        <value name="dynform.label.empty" value="true" />
+                        <value name="dynform.border.empty" value="true" />
+                        <value name="allowNew" value="true" />
+                        <value name="allowDelete" value="true" />
+                        <value name="allowUpdate" value="true" />
+                        <value name="allowSearch" value="false" />
+                        <value name="allowClose" value="false" />
+                </tags>
+        </field>
+
+        <field name="menuActions" type="List" subtype="DynObject" typeOfItems="DynObject" classOfItems="MenuAction"
+                mandatory="false" defaultValue="" group="Menu actions">
+                <description></description>
+                <tags>
+                        <value name="dynform.label.empty" value="true" />
+                        <value name="dynform.border.empty" value="true" />
+                        <value name="dynform.action.new" value="true" />
+                        <value name="allowNew" value="true" />
+                        <value name="allowDelete" value="true" />
+                        <value name="allowUpdate" value="true" />
+                        <value name="allowSearch" value="false" />
+                        <value name="allowClose" value="false" />
+                </tags>
+        </field>
+
+      </fields>
+    </class>
+  </classes>
+</definitions>  
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/config.xml
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/config.xml	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/resources-plugin/config.xml	(revision 347)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<plugin-config>
+    <libraries library-dir="lib/"/>
+    <depends plugin-name="org.gvsig.app.mainplugin"/>
+    <resourceBundle name="text"/>
+    <extensions>
+
+        <extension class-name="org.gvsig.customize.CustomizeExtension" active="true">
+
+            <action 
+                name="tools-customize-create-distribution" 
+                label="_Create_distribution"
+                tooltip="_Create_distribution" 
+                action-command="tools-customize-create-distribution"
+                icon="tools-customize-create-distribution" 
+                position="900400050" 
+                accelerator="" 
+            />
+            <action 
+                name="tools-customize-edit-configuration" 
+                label="_Edit_configuration"
+                tooltip="_Edit_configuration" 
+                action-command="tools-customize-edit-configuration"
+                icon="tools-customize-edit-configuration" 
+                position="900400060" 
+                accelerator="" 
+            />
+            <menu
+                name="tools-customize-edit-configuration" 
+                text="tools/Customize/_Edit_configuration"
+            />
+            <menu
+                name="tools-customize-create-distribution" 
+                text="tools/Customize/_Create_distribution"
+            />
+        </extension>  
+    </extensions>
+</plugin-config>
+
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml	(revision 347)
@@ -0,0 +1,67 @@
+<!--
+
+    gvSIG. Desktop Geographic Information System.
+
+    Copyright (C) 2007-2013 gvSIG Association.
+
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License
+    as published by the Free Software Foundation; either version 3
+    of the License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+    MA  02110-1301, USA.
+
+    For any additional information, do not hesitate to contact us
+    at info AT gvsig.com, or visit our website www.gvsig.com.
+
+-->
+<assembly>
+  <id>gvsig-plugin-package</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <baseDirectory>${project.artifactId}</baseDirectory>
+  <includeBaseDirectory>true</includeBaseDirectory>
+  <files>
+    <file>
+      <source>target/${project.artifactId}-${project.version}.jar</source>
+      <outputDirectory>lib</outputDirectory>
+    </file>
+    <file>
+      <source>target/package.info</source>
+    </file>
+  </files>
+
+  <fileSets>
+    <fileSet>
+      <directory>src/main/resources-plugin</directory>
+      <outputDirectory>.</outputDirectory>
+    </fileSet>
+  </fileSets>
+  
+
+<!--
+    Si le quito los comentarios y dejo la seccion includes vacia, me incluye
+    si o si, todas depedencias, como si no hiciese caso del parametro 
+    useTransitiveDependencies
+  <dependencySets>
+    <dependencySet>
+      <useProjectArtifact>false</useProjectArtifact>
+      <useTransitiveDependencies>false</useTransitiveDependencies>
+      <outputDirectory>lib</outputDirectory>
+      <includes>
+      </includes>
+    </dependencySet>
+  </dependencySets>
+-->
+
+</assembly>
+
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/InstallPackagesPanel.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/InstallPackagesPanel.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/InstallPackagesPanel.java	(revision 347)
@@ -0,0 +1,93 @@
+
+package org.gvsig.customize;
+
+import java.awt.BorderLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.SwingUtilities;
+import javax.swing.Timer;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.observer.Observable;
+import org.gvsig.tools.observer.Observer;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.task.JTaskStatus;
+import org.gvsig.tools.task.TaskStatus;
+
+
+public class InstallPackagesPanel extends InstallPackagesPanelLayout {
+    private TaskStatus taskStatus;
+    private JTaskStatus jtaskStatus;
+//    private Timer autoCloseTimer = null;
+    
+    public InstallPackagesPanel(TaskStatus taskStatus) {
+        this.taskStatus = taskStatus;
+        initComponents();
+    }
+
+    private void initComponents() {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        
+        this.lblTitle.setText(i18nManager.getTranslation("_Configuring_installation"));
+        
+        this.butClose.setEnabled(false);
+        this.butClose.setText(i18nManager.getTranslation("_Close"));
+        this.butClose.addActionListener(new ActionListener() {
+
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doClose();
+            }
+        });
+
+        this.jtaskStatus = ToolsSwingLocator.getTaskStatusSwingManager().createJTaskStatus();
+        
+        this.pnlProgress.setLayout(new BorderLayout());
+        this.pnlProgress.add(this.jtaskStatus, BorderLayout.CENTER);
+        
+        this.taskStatus.addObserver(new Observer() {
+            @Override
+            public void update(Observable o, Object o1) {
+                if( SwingUtilities.isEventDispatchThread() ) {
+                    doCheckTaskStatus();
+                } else {
+                    SwingUtilities.invokeLater(new Runnable() {
+                        @Override
+                        public void run() {
+                            doCheckTaskStatus();
+                        }
+                    });
+                }
+            }
+        });
+        this.jtaskStatus.bind(taskStatus);
+    }
+    
+    public void message(String message) {
+        this.lblMessage.setText(message);
+    }
+
+    private void doCheckTaskStatus() {
+        if( this.taskStatus.isRunning() ) {
+            return;
+        }
+        this.butClose.setEnabled(true);
+//        autoCloseTimer = new Timer(15000, new ActionListener() {
+//
+//            @Override
+//            public void actionPerformed(ActionEvent e) {
+//                doClose();
+//            }
+//        });
+//        autoCloseTimer.setRepeats(false);
+//        autoCloseTimer.start();        
+    }
+    
+    private void doClose() {
+//        if( this.autoCloseTimer!=null ) {
+//            this.autoCloseTimer.stop();
+//            this.autoCloseTimer = null;
+//        }
+        this.setVisible(false);
+    }
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionBuilder.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionBuilder.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionBuilder.java	(revision 347)
@@ -0,0 +1,221 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.gvsig.customize;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URI;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.io.FileUtils;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.PluginsLocator;
+import org.gvsig.andami.PluginsManager;
+import org.gvsig.installer.lib.api.InstallerLocator;
+import org.gvsig.installer.lib.api.InstallerManager;
+import org.gvsig.installer.lib.api.PackageInfo;
+import org.gvsig.installer.lib.api.creation.MakePackageService;
+import org.gvsig.installer.lib.api.creation.MakePackageServiceException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class DistributionBuilder {
+
+    private static final Logger logger = LoggerFactory.getLogger(DistributionBuilder.class);
+    private static final String PCKGNAME= "package.gvspks";
+
+    private String distributionId;
+    private File onlineInstaller;
+    private File workingFolder;
+    private File customizePackagePath;
+    private MessageBar messagebar;
+    private boolean includeCustomizePlugin;
+    private File packagesetFolder;
+
+    public DistributionBuilder(MessageBar messagebar) {
+        this.messagebar = messagebar;
+    }
+
+    private void message(String msg) {
+        this.messagebar.message(msg);
+    }
+
+    public void setDistributionId(String distributionId) {
+        this.distributionId = distributionId;
+    }
+
+    public void setOnlineInstaller(File onlineInstaller) {
+        this.onlineInstaller = onlineInstaller;
+    }
+
+    public void setWorkingFolder(File workingFolder) {
+        this.workingFolder = workingFolder;
+    }
+
+    void setIncludeCustomizePlugin(boolean includeCustomizePlugin) {
+        this.includeCustomizePlugin = includeCustomizePlugin;
+    }
+
+    public boolean build() {
+        try {
+            String target_name = this.onlineInstaller.getName().replace("online", this.distributionId);
+            File target = new File(this.workingFolder, target_name);
+
+            message("Creating package set...");
+            File packageSet = new File(this.workingFolder, "packages.gvspks");
+            createPackageset(packageSet);
+
+            if (this.includeCustomizePlugin) {
+                message("Building customize plugin...");
+                this.buildCustomizePlugin();
+
+                message("Adding customized plugin to package set...");
+                this.addToZip(packageSet, customizePackagePath);
+            }
+
+            message("Coping online installer...");
+            FileUtils.copyFile(this.onlineInstaller, target);
+
+            message("Adding package set to the installer...");
+            addPackagetoZip(target, packageSet);
+
+            message("Installer created.");
+        } catch (Exception ex) {
+            message("Can't build the distribution.\n" + ex.getMessage());
+            logger.warn("Can't build the distribution.");
+            logger.warn("working folder:" + this.workingFolder.getAbsolutePath());
+            logger.warn("online installer:" + this.onlineInstaller.getAbsolutePath());
+            return false;
+        }
+        return true;
+    }
+
+    private void addPackagetoZip(File zipFile, File packageFile) throws IOException{
+        FileSystem zipfs = null;
+        try {
+        Map<String, Object> env = new HashMap<>();
+        env.put("create", "true");
+        env.put("useTempFile", Boolean.TRUE);
+        Path zipPath = Paths.get(zipFile.getAbsolutePath());
+        URI uriZip = URI.create("jar:file:" + zipPath.toUri().getPath());
+        zipfs = FileSystems.newFileSystem(uriZip,env);
+        Path pathInZipfile = zipfs.getPath("/"+PCKGNAME);
+        // copy a file into the zip file
+        Files.copy( packageFile.toPath(),pathInZipfile,
+                StandardCopyOption.REPLACE_EXISTING );
+        message("Package set added to the installer.");
+        } catch (Exception e) {
+            logger.warn("Impossible to add ("+packageFile.getAbsolutePath()+") to ("+zipFile.getAbsolutePath()+")",e);
+        } finally{
+            if (zipfs != null) {
+                try {
+                    zipfs.close();
+                } catch (IOException ex) {
+                }
+            }
+        }
+    }
+
+    private void createPackageset(File zipfile) {
+        Map<String, String> env = new HashMap<>();
+        env.put("create", "true");
+
+        FileSystem zipfs = null;
+        try {
+            Path zippath = Paths.get(zipfile.getAbsolutePath());
+            final URI uri = URI.create("jar:file:" + zippath.toUri().getPath());
+            zipfs = FileSystems.newFileSystem(uri, env);
+            File[] packages = packagesetFolder.listFiles();
+            for (File newEntry : packages) {
+                Path externalFile = Paths.get(newEntry.getAbsoluteFile().toURI());
+                Path pathInZipfile = zipfs.getPath("/" + newEntry.getName());
+                Files.copy(externalFile, pathInZipfile, StandardCopyOption.REPLACE_EXISTING);
+            }
+            zipfs.close();
+        } catch (Exception ex) {
+            logger.warn("Can't create packageset ("+zipfile.getAbsolutePath()+")",ex);
+        } finally {
+            if (zipfs != null) {
+                try {
+                    zipfs.close();
+                } catch (IOException ex) {
+                }
+            }
+        }
+
+    }
+
+    private void buildCustomizePlugin() throws FileNotFoundException, MakePackageServiceException, IOException {
+        FileOutputStream fos = null;
+        try {
+            PluginsManager pluginsManager = PluginsLocator.getManager();
+            PluginServices plugin = pluginsManager.getPlugin(CustomizeExtension.class);
+            InstallerManager installManager = InstallerLocator.getInstallerManager();
+
+            FileUtils.copyFileToDirectory(
+                    new File(packagesetFolder,"defaultPackages"),
+                    plugin.getPluginDirectory()
+            );
+
+            PackageInfo pkginfo = pluginsManager.getPackageInfo(CustomizeExtension.class);
+            String pkgfilename = installManager.getPackageFileName(pkginfo);
+            customizePackagePath = new File(this.workingFolder, pkgfilename);
+
+            MakePackageService maker = installManager.createMakePackage(plugin.getPluginDirectory(), pkginfo);
+            fos = new FileOutputStream(customizePackagePath);
+            maker.createPackage(fos);
+        } finally {
+            if (fos != null) {
+                fos.close();
+            }
+        }
+
+    }
+
+    private void addToZip(File zipfile, File newEntry) {
+        Map<String, String> env = new HashMap<>();
+        env.put("create", "true");
+
+        FileSystem zipfs = null;
+        try {
+            Path zippath = Paths.get(zipfile.getAbsolutePath());
+            final URI uri = URI.create("jar:file:" + zippath.toUri().getPath());
+            zipfs = FileSystems.newFileSystem(uri, env);
+            Path externalFile = Paths.get(newEntry.getAbsoluteFile().toURI());
+            Path pathInZipfile = zipfs.getPath("/" + newEntry.getName());
+            Files.copy(externalFile, pathInZipfile, StandardCopyOption.REPLACE_EXISTING);
+            zipfs.close();
+        } catch (IOException ex) {
+
+        } finally {
+            if (zipfs != null) {
+                try {
+                    zipfs.close();
+                } catch (IOException ex) {
+                }
+            }
+        }
+
+    }
+
+    void setPackageSet(File packageSet) {
+        this.packagesetFolder = packageSet;
+    }
+
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/HttpProxyLoginDialogLayout.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/HttpProxyLoginDialogLayout.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/HttpProxyLoginDialogLayout.java	(revision 347)
@@ -0,0 +1,108 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.gvsig.customize;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class HttpProxyLoginDialogLayout extends javax.swing.JPanel {
+
+    /**
+     * Creates new form HttpProxyLoginLayout
+     */
+    public HttpProxyLoginDialogLayout() {
+        initComponents();
+    }
+
+    /**
+     * This method is called from within the constructor to initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+        java.awt.GridBagConstraints gridBagConstraints;
+
+        lblTitle = new javax.swing.JLabel();
+        lblName = new javax.swing.JLabel();
+        txtName = new javax.swing.JTextField();
+        lblPassword = new javax.swing.JLabel();
+        botLogin = new javax.swing.JButton();
+        botCancel = new javax.swing.JButton();
+        txtPassword = new javax.swing.JPasswordField();
+
+        setBorder(javax.swing.BorderFactory.createEmptyBorder(10, 10, 10, 10));
+        setAlignmentX(1.0F);
+        setAlignmentY(1.0F);
+        java.awt.GridBagLayout layout = new java.awt.GridBagLayout();
+        layout.columnWidths = new int[] {0, 5, 0, 5, 0, 5, 0};
+        layout.rowHeights = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0};
+        setLayout(layout);
+
+        lblTitle.setText("Identificacion de usuario para acceso a internet");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 2;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+        add(lblTitle, gridBagConstraints);
+
+        lblName.setText("Nombre de usuario:");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 6;
+        gridBagConstraints.gridwidth = 3;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        add(lblName, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 8;
+        gridBagConstraints.gridwidth = 3;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        add(txtName, gridBagConstraints);
+
+        lblPassword.setText("Clave:");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 12;
+        gridBagConstraints.gridwidth = 3;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        add(lblPassword, gridBagConstraints);
+
+        botLogin.setText("Aceptar");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 18;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
+        add(botLogin, gridBagConstraints);
+
+        botCancel.setText("Cancelar");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 18;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
+        add(botCancel, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 14;
+        gridBagConstraints.gridwidth = 3;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        add(txtPassword, gridBagConstraints);
+    }// </editor-fold>//GEN-END:initComponents
+
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    protected javax.swing.JButton botCancel;
+    protected javax.swing.JButton botLogin;
+    protected javax.swing.JLabel lblName;
+    protected javax.swing.JLabel lblPassword;
+    protected javax.swing.JLabel lblTitle;
+    protected javax.swing.JTextField txtName;
+    protected javax.swing.JPasswordField txtPassword;
+    // End of variables declaration//GEN-END:variables
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/JListWithCheckbox.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/JListWithCheckbox.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/JListWithCheckbox.java	(revision 347)
@@ -0,0 +1,497 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.gvsig.customize;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.beans.Transient;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.Vector;
+import javax.accessibility.AccessibleContext;
+import javax.swing.DefaultListSelectionModel;
+import javax.swing.JCheckBox;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.ListCellRenderer;
+import javax.swing.ListModel;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.plaf.ListUI;
+import javax.swing.text.Position;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class JListWithCheckbox extends JList {
+
+    private static final Logger logger = LoggerFactory.getLogger(JListWithCheckbox.class);
+
+
+    public class CheckListCellRenderer extends JPanel implements ListCellRenderer {
+
+        private ListCellRenderer delegate;
+        private ListSelectionModel selectionModel;
+        private JCheckBox checkBox = new JCheckBox();
+
+        public CheckListCellRenderer(ListCellRenderer renderer, ListSelectionModel selectionModel) {
+            this.delegate = renderer;
+            this.selectionModel = selectionModel;
+            this.setLayout(new BorderLayout());
+            this.setOpaque(false);
+            this.checkBox.setOpaque(false);
+            checkBoxWidth = this.checkBox.getPreferredSize().width;
+        }
+
+        public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+            Component renderer = delegate.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
+            checkBox.setSelected(selectionModel.isSelectedIndex(index));
+            removeAll();
+            add(checkBox, BorderLayout.WEST);
+            add(renderer, BorderLayout.CENTER);
+            return this;
+        }
+    }
+
+    private int checkBoxWidth = 0;
+    private final JList wrappedList;
+    private ListSelectionModel checkedsModel = new DefaultListSelectionModel();
+    private Set<ListSelectionListener> checkedsListeners;
+        
+    public JListWithCheckbox(final JList wrappedList) {
+        this.wrappedList = wrappedList;
+        this.checkedsModel.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+        this.checkedsListeners = new HashSet<ListSelectionListener>();
+        
+        this.wrappedList.setCellRenderer(
+                new CheckListCellRenderer(
+                        this.wrappedList.getCellRenderer(),
+                        this.checkedsModel
+                )
+        );
+        this.wrappedList.addMouseListener(new MouseAdapter() {
+            public void mouseClicked(MouseEvent me) {
+                int index = wrappedList.locationToIndex(me.getPoint());
+                if (index < 0) {
+                    return;
+                }
+                if (me.getX() > wrappedList.getCellBounds(index, index).x + checkBoxWidth) {
+                    return;
+                }
+                toggleCheck(index);
+            }
+        });
+        this.checkedsModel.addListSelectionListener(new ListSelectionListener() {
+            @Override
+            public void valueChanged(ListSelectionEvent lse) {
+                wrappedList.repaint();
+                //fireCheckedsListeners(lse);
+            }
+        });
+        
+    }
+
+    public void toggleCheck(int index) {
+        if (index < 0) {
+            return;
+        }
+        if (this.checkedsModel.isSelectedIndex(index)) {
+            this.checkedsModel.removeSelectionInterval(index, index);
+        } else {
+            this.checkedsModel.addSelectionInterval(index, index);
+        }
+        // FIXME: isAdjusting is set to false always
+        fireCheckedsListeners(new ListSelectionEvent(this, index, index, false));
+    }
+
+    @Override
+    public ListUI getUI() {
+        return this.wrappedList.getUI();
+    }
+
+    @Override
+    public void setUI(ListUI ui) {
+        this.wrappedList.setUI(ui);
+    }
+
+    @Override
+    public void updateUI() {
+        if( this.wrappedList!= null ) {
+            this.wrappedList.updateUI();
+        }
+    }
+
+    @Override
+    public String getUIClassID() {
+        return this.wrappedList.getUIClassID();
+    }
+
+    @Override
+    public Object getPrototypeCellValue() {
+        return this.wrappedList.getPrototypeCellValue();
+    }
+
+    @Override
+    public void setPrototypeCellValue(Object prototypeCellValue) {
+        this.wrappedList.setPrototypeCellValue(prototypeCellValue);
+    }
+
+    @Override
+    public int getFixedCellWidth() {
+        return this.wrappedList.getFixedCellWidth();
+    }
+
+    @Override
+    public void setFixedCellWidth(int width) {
+        this.wrappedList.setFixedCellWidth(width);
+    }
+
+    @Override
+    public int getFixedCellHeight() {
+        return this.wrappedList.getFixedCellHeight();
+    }
+
+    @Override
+    public void setFixedCellHeight(int height) {
+        this.wrappedList.setFixedCellHeight(height);
+    }
+
+    @Transient
+    @Override
+    public ListCellRenderer getCellRenderer() {
+        return this.wrappedList.getCellRenderer();
+    }
+
+    @Override
+    public void setCellRenderer(ListCellRenderer cellRenderer) {
+        this.wrappedList.setCellRenderer(cellRenderer);
+    }
+
+    @Override
+    public Color getSelectionForeground() {
+        return this.wrappedList.getSelectionForeground();
+    }
+
+    @Override
+    public void setSelectionForeground(Color selectionForeground) {
+        this.wrappedList.setSelectionForeground(selectionForeground);
+    }
+
+    @Override
+    public Color getSelectionBackground() {
+        return this.wrappedList.getSelectionBackground();
+    }
+
+    @Override
+    public void setSelectionBackground(Color selectionBackground) {
+        this.wrappedList.setSelectionBackground(selectionBackground);
+    }
+
+    @Override
+    public int getVisibleRowCount() {
+        return this.wrappedList.getVisibleRowCount();
+    }
+
+    @Override
+    public void setVisibleRowCount(int visibleRowCount) {
+        this.wrappedList.setVisibleRowCount(visibleRowCount);
+    }
+
+    @Override
+    public int getLayoutOrientation() {
+        return this.wrappedList.getLayoutOrientation();
+    }
+
+    @Override
+    public void setLayoutOrientation(int layoutOrientation) {
+        this.wrappedList.setLayoutOrientation(layoutOrientation);
+    }
+
+    @Override
+    public int getFirstVisibleIndex() {
+        return this.wrappedList.getFirstVisibleIndex();
+    }
+
+    @Override
+    public int getLastVisibleIndex() {
+        return this.wrappedList.getLastVisibleIndex();
+    }
+
+    @Override
+    public void ensureIndexIsVisible(int index) {
+        this.wrappedList.ensureIndexIsVisible(index);
+    }
+
+    @Override
+    public void setDragEnabled(boolean b) {
+        this.wrappedList.setDragEnabled(b);
+    }
+
+    @Override
+    public boolean getDragEnabled() {
+        return this.wrappedList.getDragEnabled();
+    }
+//
+//    public final void setDropMode(DropMode dropMode) {
+//        this.wrappedList.setDropMode(dropMode);
+//    }
+//
+//    public final DropMode getDropMode() {
+//        
+//    }
+//
+//    public final DropLocation getDropLocation() {
+//        
+//    }
+
+    @Override
+    public int getNextMatch(String prefix, int startIndex, Position.Bias bias) {
+        return this.wrappedList.getNextMatch(prefix, startIndex, bias);
+    }
+
+    @Override
+    public String getToolTipText(MouseEvent event) {
+        return this.wrappedList.getToolTipText(event);
+    }
+
+    @Override
+    public int locationToIndex(Point location) {
+        return this.wrappedList.locationToIndex(location);
+    }
+
+    @Override
+    public Point indexToLocation(int index) {
+        return this.wrappedList.indexToLocation(index);
+    }
+
+    @Override
+    public Rectangle getCellBounds(int index0, int index1) {
+        return this.wrappedList.getCellBounds(index0, index1);
+    }
+
+    @Override
+    public ListModel getModel() {
+        return this.wrappedList.getModel();
+    }
+
+    @Override
+    public void setModel(ListModel model) {
+        this.wrappedList.setModel(model);
+    }
+
+    @Override
+    public void setListData(Object[] listData) {
+        this.wrappedList.setListData(listData);
+    }
+
+    @Override
+    public void setListData(Vector listData) {
+        this.wrappedList.setListData(listData);
+    }
+
+    @Override
+    public ListSelectionModel getSelectionModel() {
+        return this.wrappedList.getSelectionModel();
+    }
+
+    public ListSelectionModel getCheckedModel() {
+        return this.checkedsModel;
+    }
+
+    @Override
+    public void addListSelectionListener(ListSelectionListener listener) {
+        this.wrappedList.addListSelectionListener(listener);
+    }
+    
+    public void addChecksListener(ListSelectionListener listener) {
+       this.checkedsListeners.add(listener);
+    }
+    
+    @Override
+    public void removeListSelectionListener(ListSelectionListener listener) {
+        this.wrappedList.removeListSelectionListener(listener);
+    }    
+    
+    public void removeChecksListener(ListSelectionListener listener) {
+        this.checkedsListeners.remove(listener);
+    }
+
+    @Override
+    public ListSelectionListener[] getListSelectionListeners() {
+        return this.wrappedList.getListSelectionListeners();
+    }
+
+    public ListSelectionListener[] getChecksListeners() {
+        return this.checkedsListeners.toArray(new ListSelectionListener[1]);
+    }
+
+    protected void fireCheckedsListeners(ListSelectionEvent event) {
+        Iterator<ListSelectionListener> it = this.checkedsListeners.iterator();
+        while(it.hasNext()) {
+            ListSelectionListener listener = it.next();
+            try {
+                listener.valueChanged(event);
+            } catch(Throwable th) {
+                logger.warn("Problems calling check listener ("+listener+").",th);
+            }
+        }
+    }
+    
+    @Override
+    public void setSelectionModel(ListSelectionModel selectionModel) {
+        this.wrappedList.setSelectionModel(selectionModel);
+    }
+
+    @Override
+    public void setSelectionMode(int selectionMode) {
+        this.wrappedList.setSelectionMode(selectionMode);
+    }
+
+    @Override
+    public int getSelectionMode() {
+        return this.wrappedList.getSelectionMode();
+    }
+
+    @Override
+    public int getAnchorSelectionIndex() {
+        return this.wrappedList.getAnchorSelectionIndex();
+    }
+
+    @Override
+    public int getLeadSelectionIndex() {
+        return this.wrappedList.getLeadSelectionIndex();
+    }
+
+    @Override
+    public int getMinSelectionIndex() {
+        return this.wrappedList.getMinSelectionIndex();
+    }
+
+    @Override
+    public int getMaxSelectionIndex() {
+        return this.wrappedList.getMaxSelectionIndex();
+    }
+
+    @Override
+    public boolean isSelectedIndex(int index) {
+        return this.wrappedList.isSelectedIndex(index);
+    }
+
+    @Override
+    public boolean isSelectionEmpty() {
+        return this.wrappedList.isSelectionEmpty();
+    }
+
+    @Override
+    public void clearSelection() {
+        this.wrappedList.clearSelection();
+    }
+
+    @Override
+    public void setSelectionInterval(int anchor, int lead) {
+        this.wrappedList.setSelectionInterval(anchor, lead);
+    }
+
+    @Override
+    public void addSelectionInterval(int anchor, int lead) {
+        this.wrappedList.addSelectionInterval(anchor, lead);
+    }
+
+    @Override
+    public void removeSelectionInterval(int index0, int index1) {
+        this.wrappedList.removeSelectionInterval(index0, index1);
+    }
+
+    @Override
+    public void setValueIsAdjusting(boolean b) {
+        this.wrappedList.setValueIsAdjusting(b);
+    }
+
+    @Override
+    public boolean getValueIsAdjusting() {
+        return this.wrappedList.getValueIsAdjusting();
+    }
+
+    @Transient
+    @Override
+    public int[] getSelectedIndices() {
+        return this.wrappedList.getSelectedIndices();
+    }
+
+    @Override
+    public void setSelectedIndex(int index) {
+        this.wrappedList.setSelectedIndex(index);
+    }
+
+    @Override
+    public void setSelectedIndices(int[] indices) {
+        this.wrappedList.setSelectedIndices(indices);
+    }
+
+    @Deprecated
+    @Override
+    public Object[] getSelectedValues() {
+        return this.wrappedList.getSelectedValues();
+    }
+
+    @Override
+    public List getSelectedValuesList() {
+        return this.wrappedList.getSelectedValuesList();
+    }
+
+    @Override
+    public int getSelectedIndex() {
+        return this.wrappedList.getSelectedIndex();
+    }
+
+    @Override
+    public Object getSelectedValue() {
+        return this.wrappedList.getSelectedValue();
+    }
+
+    @Override
+    public void setSelectedValue(Object anObject, boolean shouldScroll) {
+        this.wrappedList.setSelectedValue(anObject, shouldScroll);
+    }
+
+    @Override
+    public Dimension getPreferredScrollableViewportSize() {
+        return this.wrappedList.getPreferredScrollableViewportSize();
+    }
+
+    @Override
+    public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) {
+        return this.wrappedList.getScrollableUnitIncrement(visibleRect, orientation, direction);
+    }
+
+    @Override
+    public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) {
+        return this.wrappedList.getScrollableBlockIncrement(visibleRect, orientation, direction);
+    }
+
+    @Override
+    public boolean getScrollableTracksViewportWidth() {
+        return this.wrappedList.getScrollableTracksViewportWidth();
+    }
+
+    @Override
+    public boolean getScrollableTracksViewportHeight() {
+        return this.wrappedList.getScrollableTracksViewportHeight();
+    }
+
+    @Override
+    public AccessibleContext getAccessibleContext() {
+        return this.wrappedList.getAccessibleContext();
+    }
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/HttpProxyLoginDialog.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/HttpProxyLoginDialog.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/HttpProxyLoginDialog.java	(revision 347)
@@ -0,0 +1,83 @@
+
+
+package org.gvsig.customize;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager;
+
+
+public class HttpProxyLoginDialog extends HttpProxyLoginDialogLayout {
+    private boolean cancelled = true;
+    
+    public HttpProxyLoginDialog() {
+        initComponents();
+    }
+    
+    private void initComponents() {
+        this.botLogin.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                doLogin();
+            }
+        });
+        this.botCancel.addActionListener(new ActionListener() {
+            public void actionPerformed(ActionEvent e) {
+                doCancel();
+            }
+        });
+        translate();
+    }
+    
+    protected void doLogin() {
+        this.setVisible(false);
+        this.cancelled = false;
+    }
+    
+    protected void doCancel() {
+        this.setVisible(false);
+        this.cancelled = true;
+    }
+    
+    public boolean login() {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        WindowManager winmanager = ToolsSwingLocator.getWindowManager();
+        winmanager.showWindow(
+                this, 
+                i18nManager.getTranslation("_Proxy_authentication"), 
+                WindowManager.MODE.DIALOG
+        );
+        return ! this.cancelled;
+    }
+    
+    public String getUserName() {
+        return this.txtName.getText();
+    }
+    
+    public String getPassword() {
+        return this.txtPassword.getText();
+    }
+    
+    public boolean canelled() {
+        return this.cancelled;
+    }
+
+    void setUserName(String userName) {
+        this.txtName.setText(userName);
+    }
+
+    void setPassword(String password) {
+        this.txtPassword.setText(password);
+    }
+
+    private void translate() {
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        lblTitle.setText(i18nManager.getTranslation("_User_information_to_access_internet"));
+        lblName.setText(i18nManager.getTranslation("_User_name")+":");
+        lblPassword.setText(i18nManager.getTranslation("_Password")+":");
+        botLogin.setText(i18nManager.getTranslation("_Accept"));
+        botCancel.setText(i18nManager.getTranslation("_Cancel"));
+    }
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionParametersPanelLayout.form
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionParametersPanelLayout.form	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionParametersPanelLayout.form	(revision 347)
@@ -0,0 +1,2960 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.8" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <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="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <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="4"/>
+    <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,-15,0,0,1,-9"/>
+  </AuxValues>
+  <SubComponents>
+    <Component class="javax.swing.Box$Filler" name="filler1">
+      <Properties>
+        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[2, 2]"/>
+        </Property>
+        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[2, 2]"/>
+        </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[2, 2]"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.RigidArea"/>
+      </AuxValues>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="8" gridY="6" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.Box$Filler" name="filler2">
+      <Properties>
+        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[2, 2]"/>
+        </Property>
+        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[2, 2]"/>
+        </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[2, 2]"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.RigidArea"/>
+      </AuxValues>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Container class="javax.swing.JTabbedPane" name="jTabbedPane1">
+      <AccessibilityProperties>
+        <Property name="AccessibleContext.accessibleName" type="java.lang.String" value="tab2"/>
+      </AccessibilityProperties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="2" gridWidth="5" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.1" weightY="0.1"/>
+        </Constraint>
+      </Constraints>
+
+      <Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
+      <SubComponents>
+        <Container class="javax.swing.JPanel" name="jPanel2">
+          <Constraints>
+            <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
+              <JTabbedPaneConstraints tabName="General">
+                <Property name="tabTitle" type="java.lang.String" value="General"/>
+              </JTabbedPaneConstraints>
+            </Constraint>
+          </Constraints>
+          <SubComponents>
+            <Component class="javax.swing.Box$Filler" name="filler3">
+              <Properties>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.RigidArea"/>
+              </AuxValues>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JLabel" name="lblOnlineInstaller">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Online installer"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="2" gridY="4" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JTextField" name="txtOnlineInstaller">
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="4" gridY="4" gridWidth="5" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.1" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JButton" name="butBrowseOnlineInstaller">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Browse..."/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="10" gridY="4" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JLabel" name="lblDistributionId">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Distribution id"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="2" gridY="2" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JTextField" name="txtDistributionId">
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="4" gridY="2" gridWidth="7" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.5" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JLabel" name="lblPackageSet">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Package set"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="2" gridY="6" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JTextField" name="txtPackageSet">
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="4" gridY="6" gridWidth="5" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.1" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JButton" name="butBrowsePackageSet">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Browse..."/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="10" gridY="6" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JLabel" name="lblWorkingFolder">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Working folder"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="2" gridY="8" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JTextField" name="txtWorkingFolder">
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="4" gridY="8" gridWidth="5" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.1" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JButton" name="butBrowseWorkingFolder">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Browse..."/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="10" gridY="8" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JLabel" name="lblIncludeCustomizePlugin">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Include Customize Plugin"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="2" gridY="10" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JCheckBox" name="chkIncludeCustomizePlugin">
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="4" gridY="10" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.Box$Filler" name="filler7">
+              <Properties>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.RigidArea"/>
+              </AuxValues>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="12" gridY="12" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.Box$Filler" name="filler4">
+              <Properties>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[0, 32767]"/>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.VerticalGlue"/>
+              </AuxValues>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="0" gridY="12" gridWidth="1" gridHeight="1" fill="3" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.4"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+          </SubComponents>
+          <LayoutCode>
+            <CodeStatement>
+              <CodeExpression id="1_jPanel2Layout">
+                <CodeVariable name="jPanel2Layout" type="4096" declaredType="java.awt.GridBagLayout"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagLayout" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="1_jPanel2Layout"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="1_jPanel2Layout"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="columnWidths" class="java.awt.GridBagLayout"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="2">
+                  <ExpressionOrigin>
+                    <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+                      <PropertyValue value="[0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0]"/>
+                    </Value>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="1_jPanel2Layout"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="rowHeights" class="java.awt.GridBagLayout"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="3">
+                  <ExpressionOrigin>
+                    <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+                      <PropertyValue value="[0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0]"/>
+                    </Value>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2">
+                <CodeVariable name="jPanel2" type="8196" declaredType="javax.swing.JPanel"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="ComponentRef">
+                    <ComponentRef name="jPanel2"/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="setLayout" class="java.awt.Container" parameterTypes="java.awt.LayoutManager"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="1_jPanel2Layout"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="5_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints" type="20480" declaredType="java.awt.GridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="5_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="5_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="6">
+                  <ExpressionOrigin>
+                    <Value type="int" value="0"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="5_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="7">
+                  <ExpressionOrigin>
+                    <Value type="int" value="0"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="8_filler3">
+                  <CodeVariable name="filler3" type="8196" declaredType="javax.swing.Box$Filler"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="filler3"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="5_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="9_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="9_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="9_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="10">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="9_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="11">
+                  <ExpressionOrigin>
+                    <Value type="int" value="4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="9_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="12">
+                  <ExpressionOrigin>
+                    <Value type="int" value="21"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="13_lblOnlineInstaller">
+                  <CodeVariable name="lblOnlineInstaller" type="8196" declaredType="javax.swing.JLabel"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="lblOnlineInstaller"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="9_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="14_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="14_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="14_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="15">
+                  <ExpressionOrigin>
+                    <Value type="int" value="4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="14_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="16">
+                  <ExpressionOrigin>
+                    <Value type="int" value="4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="14_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="17">
+                  <ExpressionOrigin>
+                    <Value type="int" value="5"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="14_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="18">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="14_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="19">
+                  <ExpressionOrigin>
+                    <Value type="double" value="0.1"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="20_txtOnlineInstaller">
+                  <CodeVariable name="txtOnlineInstaller" type="8196" declaredType="javax.swing.JTextField"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="txtOnlineInstaller"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="14_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="21_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="21_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="21_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="22">
+                  <ExpressionOrigin>
+                    <Value type="int" value="10"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="21_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="23">
+                  <ExpressionOrigin>
+                    <Value type="int" value="4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="24_butBrowseOnlineInstaller">
+                  <CodeVariable name="butBrowseOnlineInstaller" type="8196" declaredType="javax.swing.JButton"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="butBrowseOnlineInstaller"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="21_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="25_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="25_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="25_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="26">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="25_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="27">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="25_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="28">
+                  <ExpressionOrigin>
+                    <Value type="int" value="21"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="29_lblDistributionId">
+                  <CodeVariable name="lblDistributionId" type="8196" declaredType="javax.swing.JLabel"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="lblDistributionId"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="25_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="30_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="30_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="30_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="31">
+                  <ExpressionOrigin>
+                    <Value type="int" value="4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="30_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="32">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="30_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="33">
+                  <ExpressionOrigin>
+                    <Value type="int" value="7"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="30_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="34">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="30_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="35">
+                  <ExpressionOrigin>
+                    <Value type="double" value="0.5"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="36_txtDistributionId">
+                  <CodeVariable name="txtDistributionId" type="8196" declaredType="javax.swing.JTextField"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="txtDistributionId"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="30_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="37_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="37_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="37_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="38">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="37_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="39">
+                  <ExpressionOrigin>
+                    <Value type="int" value="6"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="37_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="40">
+                  <ExpressionOrigin>
+                    <Value type="int" value="21"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="41_lblPackageSet">
+                  <CodeVariable name="lblPackageSet" type="8196" declaredType="javax.swing.JLabel"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="lblPackageSet"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="37_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="42_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="42_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="42_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="43">
+                  <ExpressionOrigin>
+                    <Value type="int" value="4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="42_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="44">
+                  <ExpressionOrigin>
+                    <Value type="int" value="6"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="42_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="45">
+                  <ExpressionOrigin>
+                    <Value type="int" value="5"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="42_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="46">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="42_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="47">
+                  <ExpressionOrigin>
+                    <Value type="double" value="0.1"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="48_txtPackageSet">
+                  <CodeVariable name="txtPackageSet" type="8196" declaredType="javax.swing.JTextField"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="txtPackageSet"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="42_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="49_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="49_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="49_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="50">
+                  <ExpressionOrigin>
+                    <Value type="int" value="10"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="49_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="51">
+                  <ExpressionOrigin>
+                    <Value type="int" value="6"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="52_butBrowsePackageSet">
+                  <CodeVariable name="butBrowsePackageSet" type="8196" declaredType="javax.swing.JButton"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="butBrowsePackageSet"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="49_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="53_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="53_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="53_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="54">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="53_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="55">
+                  <ExpressionOrigin>
+                    <Value type="int" value="8"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="53_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="56">
+                  <ExpressionOrigin>
+                    <Value type="int" value="21"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="57_lblWorkingFolder">
+                  <CodeVariable name="lblWorkingFolder" type="8196" declaredType="javax.swing.JLabel"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="lblWorkingFolder"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="53_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="58_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="58_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="58_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="59">
+                  <ExpressionOrigin>
+                    <Value type="int" value="4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="58_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="60">
+                  <ExpressionOrigin>
+                    <Value type="int" value="8"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="58_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="61">
+                  <ExpressionOrigin>
+                    <Value type="int" value="5"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="58_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="62">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="58_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="63">
+                  <ExpressionOrigin>
+                    <Value type="double" value="0.1"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="64_txtWorkingFolder">
+                  <CodeVariable name="txtWorkingFolder" type="8196" declaredType="javax.swing.JTextField"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="txtWorkingFolder"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="58_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="65_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="65_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="65_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="66">
+                  <ExpressionOrigin>
+                    <Value type="int" value="10"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="65_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="67">
+                  <ExpressionOrigin>
+                    <Value type="int" value="8"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="68_butBrowseWorkingFolder">
+                  <CodeVariable name="butBrowseWorkingFolder" type="8196" declaredType="javax.swing.JButton"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="butBrowseWorkingFolder"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="65_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="69_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="69_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="69_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="70">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="69_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="71">
+                  <ExpressionOrigin>
+                    <Value type="int" value="10"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="69_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="72">
+                  <ExpressionOrigin>
+                    <Value type="int" value="21"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="73_lblIncludeCustomizePlugin">
+                  <CodeVariable name="lblIncludeCustomizePlugin" type="8196" declaredType="javax.swing.JLabel"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="lblIncludeCustomizePlugin"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="69_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="74_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="74_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="74_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="75">
+                  <ExpressionOrigin>
+                    <Value type="int" value="4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="74_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="76">
+                  <ExpressionOrigin>
+                    <Value type="int" value="10"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="74_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="77">
+                  <ExpressionOrigin>
+                    <Value type="int" value="21"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="78_chkIncludeCustomizePlugin">
+                  <CodeVariable name="chkIncludeCustomizePlugin" type="8196" declaredType="javax.swing.JCheckBox"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="chkIncludeCustomizePlugin"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="74_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="79_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="79_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="79_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="80">
+                  <ExpressionOrigin>
+                    <Value type="int" value="12"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="79_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="81">
+                  <ExpressionOrigin>
+                    <Value type="int" value="12"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="82_filler7">
+                  <CodeVariable name="filler7" type="8196" declaredType="javax.swing.Box$Filler"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="filler7"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="79_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="83_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="83_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="83_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="84">
+                  <ExpressionOrigin>
+                    <Value type="int" value="0"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="83_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="85">
+                  <ExpressionOrigin>
+                    <Value type="int" value="12"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="83_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="86">
+                  <ExpressionOrigin>
+                    <Value type="int" value="3"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="83_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="weighty" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="87">
+                  <ExpressionOrigin>
+                    <Value type="double" value="0.4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="4_jPanel2"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="88_filler4">
+                  <CodeVariable name="filler4" type="8196" declaredType="javax.swing.Box$Filler"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="filler4"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="83_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+          </LayoutCode>
+        </Container>
+        <Container class="javax.swing.JPanel" name="jPanel1">
+          <Constraints>
+            <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
+              <JTabbedPaneConstraints tabName="Package set">
+                <Property name="tabTitle" type="java.lang.String" value="Package set"/>
+              </JTabbedPaneConstraints>
+            </Constraint>
+          </Constraints>
+          <SubComponents>
+            <Component class="javax.swing.Box$Filler" name="filler6">
+              <Properties>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.RigidArea"/>
+              </AuxValues>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JButton" name="butAddPackage">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Add"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="8" gridY="8" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JButton" name="butRemovePackage">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Remove"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="10" gridY="8" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Container class="javax.swing.JScrollPane" name="jScrollPane2">
+              <AuxValues>
+                <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+              </AuxValues>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="2" gridY="6" gridWidth="9" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.1" weightY="0.1"/>
+                </Constraint>
+              </Constraints>
+
+              <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+              <SubComponents>
+                <Component class="javax.swing.JList" name="lstPackages">
+                </Component>
+              </SubComponents>
+            </Container>
+            <Component class="javax.swing.JLabel" name="lblPackagesToInclude">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Packages to include in the distribution"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="2" gridY="2" gridWidth="5" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JLabel" name="lblCheckToInstallByDefault">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Check the pacakges to install by default"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="2" gridY="4" gridWidth="5" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.Box$Filler" name="filler9">
+              <Properties>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[32767, 0]"/>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalGlue"/>
+              </AuxValues>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="2" gridY="8" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.2" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.Box$Filler" name="filler10">
+              <Properties>
+                <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+                <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+                <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+                  <Dimension value="[4, 4]"/>
+                </Property>
+              </Properties>
+              <AuxValues>
+                <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.RigidArea"/>
+              </AuxValues>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="12" gridY="10" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JButton" name="butCheckAll">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Check all"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="6" gridY="8" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+            <Component class="javax.swing.JButton" name="butUncheckAll">
+              <Properties>
+                <Property name="text" type="java.lang.String" value="Uncheck all"/>
+              </Properties>
+              <Constraints>
+                <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+                  <GridBagConstraints gridX="4" gridY="8" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+                </Constraint>
+              </Constraints>
+            </Component>
+          </SubComponents>
+          <LayoutCode>
+            <CodeStatement>
+              <CodeExpression id="89_jPanel1Layout">
+                <CodeVariable name="jPanel1Layout" type="4096" declaredType="java.awt.GridBagLayout"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagLayout" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="89_jPanel1Layout"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="89_jPanel1Layout"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="columnWidths" class="java.awt.GridBagLayout"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="90">
+                  <ExpressionOrigin>
+                    <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+                      <PropertyValue value="[0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0]"/>
+                    </Value>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="89_jPanel1Layout"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="rowHeights" class="java.awt.GridBagLayout"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="91">
+                  <ExpressionOrigin>
+                    <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+                      <PropertyValue value="[0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0]"/>
+                    </Value>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1">
+                <CodeVariable name="jPanel1" type="8196" declaredType="javax.swing.JPanel"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="ComponentRef">
+                    <ComponentRef name="jPanel1"/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="setLayout" class="java.awt.Container" parameterTypes="java.awt.LayoutManager"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="89_jPanel1Layout"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="93_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="93_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="93_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="94">
+                  <ExpressionOrigin>
+                    <Value type="int" value="0"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="93_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="95">
+                  <ExpressionOrigin>
+                    <Value type="int" value="0"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="96_filler6">
+                  <CodeVariable name="filler6" type="8196" declaredType="javax.swing.Box$Filler"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="filler6"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="93_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="97_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="97_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="97_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="98">
+                  <ExpressionOrigin>
+                    <Value type="int" value="8"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="97_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="99">
+                  <ExpressionOrigin>
+                    <Value type="int" value="8"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="100_butAddPackage">
+                  <CodeVariable name="butAddPackage" type="8196" declaredType="javax.swing.JButton"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="butAddPackage"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="97_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="101_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="101_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="101_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="102">
+                  <ExpressionOrigin>
+                    <Value type="int" value="10"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="101_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="103">
+                  <ExpressionOrigin>
+                    <Value type="int" value="8"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="104_butRemovePackage">
+                  <CodeVariable name="butRemovePackage" type="8196" declaredType="javax.swing.JButton"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="butRemovePackage"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="101_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="105_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="105_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="105_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="106">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="105_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="107">
+                  <ExpressionOrigin>
+                    <Value type="int" value="6"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="105_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="108">
+                  <ExpressionOrigin>
+                    <Value type="int" value="9"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="105_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="109">
+                  <ExpressionOrigin>
+                    <Value type="int" value="1"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="105_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="110">
+                  <ExpressionOrigin>
+                    <Value type="double" value="0.1"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="105_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="weighty" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="111">
+                  <ExpressionOrigin>
+                    <Value type="double" value="0.1"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="112_jScrollPane2">
+                  <CodeVariable name="jScrollPane2" type="8196" declaredType="javax.swing.JScrollPane"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="jScrollPane2"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="105_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="113_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="113_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="113_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="114">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="113_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="115">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="113_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="116">
+                  <ExpressionOrigin>
+                    <Value type="int" value="5"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="113_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="117">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="118_lblPackagesToInclude">
+                  <CodeVariable name="lblPackagesToInclude" type="8196" declaredType="javax.swing.JLabel"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="lblPackagesToInclude"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="113_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="119_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="119_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="119_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="120">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="119_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="121">
+                  <ExpressionOrigin>
+                    <Value type="int" value="4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="119_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="122">
+                  <ExpressionOrigin>
+                    <Value type="int" value="5"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="119_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="123">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="124_lblCheckToInstallByDefault">
+                  <CodeVariable name="lblCheckToInstallByDefault" type="8196" declaredType="javax.swing.JLabel"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="lblCheckToInstallByDefault"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="119_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="125_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="125_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="125_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="126">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="125_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="127">
+                  <ExpressionOrigin>
+                    <Value type="int" value="8"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="125_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="128">
+                  <ExpressionOrigin>
+                    <Value type="int" value="2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="125_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="129">
+                  <ExpressionOrigin>
+                    <Value type="double" value="0.2"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="130_filler9">
+                  <CodeVariable name="filler9" type="8196" declaredType="javax.swing.Box$Filler"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="filler9"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="125_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="131_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="131_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="131_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="132">
+                  <ExpressionOrigin>
+                    <Value type="int" value="12"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="131_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="133">
+                  <ExpressionOrigin>
+                    <Value type="int" value="10"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="134_filler10">
+                  <CodeVariable name="filler10" type="8196" declaredType="javax.swing.Box$Filler"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="filler10"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="131_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="135_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="135_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="135_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="136">
+                  <ExpressionOrigin>
+                    <Value type="int" value="6"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="135_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="137">
+                  <ExpressionOrigin>
+                    <Value type="int" value="8"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="138_butCheckAll">
+                  <CodeVariable name="butCheckAll" type="8196" declaredType="javax.swing.JButton"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="butCheckAll"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="135_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="139_gridBagConstraints">
+                <CodeVariable name="gridBagConstraints"/>
+                <ExpressionOrigin>
+                  <ExpressionProvider type="CodeConstructor">
+                    <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+                  </ExpressionProvider>
+                </ExpressionOrigin>
+              </CodeExpression>
+              <StatementProvider type="CodeExpression">
+                <CodeExpression id="139_gridBagConstraints"/>
+              </StatementProvider>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="139_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="140">
+                  <ExpressionOrigin>
+                    <Value type="int" value="4"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="139_gridBagConstraints"/>
+              <StatementProvider type="CodeField">
+                <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="141">
+                  <ExpressionOrigin>
+                    <Value type="int" value="8"/>
+                  </ExpressionOrigin>
+                </CodeExpression>
+              </Parameters>
+            </CodeStatement>
+            <CodeStatement>
+              <CodeExpression id="92_jPanel1"/>
+              <StatementProvider type="CodeMethod">
+                <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+              </StatementProvider>
+              <Parameters>
+                <CodeExpression id="142_butUncheckAll">
+                  <CodeVariable name="butUncheckAll" type="8196" declaredType="javax.swing.JButton"/>
+                  <ExpressionOrigin>
+                    <ExpressionProvider type="ComponentRef">
+                      <ComponentRef name="butUncheckAll"/>
+                    </ExpressionProvider>
+                  </ExpressionOrigin>
+                </CodeExpression>
+                <CodeExpression id="139_gridBagConstraints"/>
+              </Parameters>
+            </CodeStatement>
+          </LayoutCode>
+        </Container>
+      </SubComponents>
+    </Container>
+    <Component class="javax.swing.JButton" name="butClose">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Close"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="4" gridY="4" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JButton" name="butCreate">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Create"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="6" gridY="4" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.Box$Filler" name="filler5">
+      <Properties>
+        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[32767, 0]"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalGlue"/>
+      </AuxValues>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="4" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.3" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JLabel" name="lblMessages">
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="6" gridWidth="5" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+  </SubComponents>
+  <LayoutCode>
+    <CodeStatement>
+      <CodeExpression id="143_layout">
+        <CodeVariable name="layout" type="4096" declaredType="java.awt.GridBagLayout"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagLayout" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="143_layout"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="143_layout"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="columnWidths" class="java.awt.GridBagLayout"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="144">
+          <ExpressionOrigin>
+            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+              <PropertyValue value="[0, 5, 0, 5, 0, 5, 0, 5, 0]"/>
+            </Value>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="143_layout"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="rowHeights" class="java.awt.GridBagLayout"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="145">
+          <ExpressionOrigin>
+            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+              <PropertyValue value="[0, 5, 0, 5, 0, 5, 0]"/>
+            </Value>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="146">
+        <ExpressionOrigin>
+          <ExpressionProvider type="ComponentRef">
+            <ComponentRef name="."/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="setLayout" class="java.awt.Container" parameterTypes="java.awt.LayoutManager"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="143_layout"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="147_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="147_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="147_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="148">
+          <ExpressionOrigin>
+            <Value type="int" value="8"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="147_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="149">
+          <ExpressionOrigin>
+            <Value type="int" value="6"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="146"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="150_filler1">
+          <CodeVariable name="filler1" type="8196" declaredType="javax.swing.Box$Filler"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="filler1"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="147_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="151_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="151_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="151_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="152">
+          <ExpressionOrigin>
+            <Value type="int" value="0"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="151_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="153">
+          <ExpressionOrigin>
+            <Value type="int" value="0"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="146"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="96_filler6"/>
+        <CodeExpression id="151_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="154_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="154_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="154_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="155">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="154_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="156">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="154_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="157">
+          <ExpressionOrigin>
+            <Value type="int" value="5"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="154_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="158">
+          <ExpressionOrigin>
+            <Value type="int" value="1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="154_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="159">
+          <ExpressionOrigin>
+            <Value type="double" value="0.1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="154_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="weighty" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="160">
+          <ExpressionOrigin>
+            <Value type="double" value="0.1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="146"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="161_jTabbedPane1">
+          <CodeVariable name="jTabbedPane1" type="8196" declaredType="javax.swing.JTabbedPane"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="jTabbedPane1"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="154_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="162_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="162_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="162_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="163">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="162_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="164">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="146"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="165_butClose">
+          <CodeVariable name="butClose" type="8196" declaredType="javax.swing.JButton"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="butClose"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="162_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="166_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="166_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="166_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="167">
+          <ExpressionOrigin>
+            <Value type="int" value="6"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="166_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="168">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="146"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="169_butCreate">
+          <CodeVariable name="butCreate" type="8196" declaredType="javax.swing.JButton"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="butCreate"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="166_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="170_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="170_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="170_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="171">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="170_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="172">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="170_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="173">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="170_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="174">
+          <ExpressionOrigin>
+            <Value type="double" value="0.3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="146"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="175_filler5">
+          <CodeVariable name="filler5" type="8196" declaredType="javax.swing.Box$Filler"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="filler5"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="170_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="176_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="176_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="176_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="177">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="176_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="178">
+          <ExpressionOrigin>
+            <Value type="int" value="6"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="176_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="179">
+          <ExpressionOrigin>
+            <Value type="int" value="5"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="176_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="180">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="146"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="181_lblMessages">
+          <CodeVariable name="lblMessages" type="8196" declaredType="javax.swing.JLabel"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="lblMessages"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="176_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+  </LayoutCode>
+</Form>
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/CustomizeTask.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/CustomizeTask.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/CustomizeTask.java	(revision 347)
@@ -0,0 +1,752 @@
+package org.gvsig.customize;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import javax.swing.JComponent;
+import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.BooleanUtils;
+import org.apache.commons.lang3.LocaleUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.cresques.cts.IProjection;
+import org.gvsig.andami.LocaleManager;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.PluginsLocator;
+import org.gvsig.andami.PluginsManager;
+import org.gvsig.andami.actioninfo.ActionInfo;
+import org.gvsig.andami.actioninfo.ActionInfoManager;
+import org.gvsig.andami.firewall.FirewallConfiguration;
+import org.gvsig.andami.persistence.serverData.ServerDataPersistence;
+import org.gvsig.andami.ui.mdiFrame.MainFrame;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.app.project.ProjectManager;
+import org.gvsig.app.project.ProjectPreferences;
+import org.gvsig.app.project.documents.view.ViewManager;
+import org.gvsig.installer.lib.api.InstallerLocator;
+import org.gvsig.installer.lib.api.InstallerManager;
+import org.gvsig.installer.lib.api.PackageInfo;
+import org.gvsig.installer.lib.api.execution.InstallPackageService;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.observer.ObservableHelper;
+import org.gvsig.tools.packageutils.PackageManager;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager;
+import org.gvsig.tools.task.SimpleTaskStatus;
+import org.gvsig.tools.task.impl.BaseTaskStatus;
+import org.gvsig.utils.swing.jcomboServer.ServerData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class CustomizeTask implements Runnable {
+
+    private final static Logger logger = LoggerFactory.getLogger(CustomizeExtension.class);
+
+    private static final String PROXY_SECTION = "httpproxy";
+    private static final String CRS_SECTION = "crs";
+    private static final String THEME_SECTION = "theme";
+
+    private int errorCount = 0;
+    private DynObject pluginProperties = null;
+    private Class scriptingExtension = null;
+    private PluginServices plugin = null;
+
+    public CustomizeTask() {
+    }
+
+    private void showWindow(final JComponent component, final String title, final WindowManager.MODE mode) {
+        if (!SwingUtilities.isEventDispatchThread()) {
+            SwingUtilities.invokeLater(new Runnable() {
+                @Override
+                public void run() {
+                    showWindow(component, title, mode);
+                }
+            });
+            try {
+                Thread.sleep(10);
+            } catch (InterruptedException ex) {
+                // Do nothing
+            }
+            return;
+        }
+        ToolsSwingLocator.getWindowManager().showWindow(
+                component,
+                title,
+                mode
+        );
+    }
+
+    private static class MyServerData {
+
+        private final ServerDataPersistence serversDataPersistence;
+
+        public MyServerData(ServerDataPersistence serversDataPersistence) {
+            this.serversDataPersistence = serversDataPersistence;
+        }
+
+        public List<ServerData> getServerData() {
+            return this.serversDataPersistence.getServerData();
+        }
+
+        public void remove(String serverAddress) {
+            if (StringUtils.isBlank(serverAddress)) {
+                return;
+            }
+            Iterator<ServerData> it = getServerData().iterator();
+            while (it.hasNext()) {
+                ServerData x = it.next();
+                if (serverAddress.equalsIgnoreCase(x.getServerAddress())) {
+                    it.remove();
+                    return;
+                }
+            }
+        }
+
+        public void add(String server, String protocol) {
+            if (StringUtils.isBlank(server)) {
+                return;
+            }
+            this.add(new ServerData(server, protocol));
+        }
+
+        public void add(ServerData server) {
+            String address = server.getServerAddress().trim();
+            for (int i = 0; i < getServerData().size(); i++) {
+                ServerData sd = getServerData().get(i);
+                if (sd.getServerAddress().trim().equals(address)) {
+                    getServerData().set(i, server);
+                    return;
+                }
+            }
+            getServerData().add(server);
+        }
+
+        public boolean contains(String serverAddress) {
+            if (StringUtils.isBlank(serverAddress)) {
+                return false;
+            }
+            serverAddress = serverAddress.trim();
+            for (int i = 0; i < getServerData().size(); i++) {
+                String address = getServerData().get(i).getServerAddress().trim();
+                if (serverAddress.equalsIgnoreCase(address)) {
+                    return true;
+                }
+            }
+            return false;
+        }
+    }
+
+    private PluginServices getPlugin() {
+        if (this.plugin == null) {
+            PluginsManager pluginsManager = PluginsLocator.getManager();
+            this.plugin = pluginsManager.getPlugin(this);
+        }
+        return this.plugin;
+    }
+
+    protected PluginServices getPlugin(String name) {
+        PluginsManager pluginsManager = PluginsLocator.getManager();
+        return pluginsManager.getPlugin(name);
+    }
+
+    private Class getScriptingExtension() {
+        if (this.scriptingExtension == null) {
+            try {
+                this.scriptingExtension = Class.forName("org.gvsig.scripting.app.extension.ScriptingExtension");
+            } catch (Throwable ex) {
+                return null;
+            }
+        }
+        return this.scriptingExtension;
+    }
+
+    protected void errors_add(String message, Throwable th) {
+        errorCount++;
+        logger.warn(message, th);
+    }
+
+    protected int errors_count() {
+        return errorCount;
+    }
+
+    protected void errors_reset() {
+        this.errorCount = 0;
+    }
+
+    protected DynObject getPluginProperties() {
+        if (this.pluginProperties == null) {
+            this.pluginProperties = this.getPlugin().getPluginProperties();
+        }
+        return this.pluginProperties;
+    }
+
+    protected void setProperty(String name, Object value) {
+        this.getPluginProperties().setDynValue(name, value);
+    }
+
+    protected Object getProperty(String name) {
+        return this.getPluginProperties().getDynValue(name);
+    }
+
+    protected String getPropertyString(String name) {
+        return (String) this.getProperty(name);
+    }
+
+    protected int getPropertyInt(String name) {
+        return ((Integer) this.getProperty(name)).intValue();
+    }
+
+    protected boolean getPropertyBoolean(String name) {
+        return ((Boolean) this.getProperty(name)).booleanValue();
+    }
+
+    protected void setValue(DynObject config, String section, String option, String value) {
+        Object subconfig = config.getDynValue(section);
+        if (subconfig instanceof DynObject) {
+            ((DynObject) subconfig).setDynValue(option, value);
+        } else {
+            config.setDynValue(option, value);
+        }
+    }
+
+    protected String getValue(DynObject config, String section, String option, String defaultValue) {
+        String value = null;
+        Object subconfig = null;
+        if (!StringUtils.isBlank(section)) {
+            subconfig = config.getDynValue(section);
+        }
+        if (subconfig instanceof DynObject) {
+            Object v = ((DynObject) subconfig).getDynValue(option);
+            if (v != null) {
+                value = v.toString();
+            }
+        } else {
+            Object v = config.getDynValue(option);
+            if (v != null) {
+                value = v.toString();
+            }
+        }
+        if (StringUtils.isBlank(value)) {
+            return defaultValue;
+        }
+        if (THEME_SECTION.equalsIgnoreCase(section)) {
+            return value;
+        }
+        if (value.contains("${")) {
+            value = expand(config, section, value);
+        }
+        return value;
+    }
+    private static final Pattern VARIABLE = Pattern.compile("[$][{]([a-zA-Z0-9_/]+)[}]");
+
+    private String expand(DynObject config, String section, String s) {
+        String s2 = s;
+        String v = null;
+        Matcher m = VARIABLE.matcher(s);
+        while (m.find()) {
+            String name = m.group(1);
+            String[] ss = name.split("/");
+            switch (ss.length) {
+                case 2:
+                    v = getValue(config, ss[0], ss[1], "");
+                    break;
+                case 1:
+                    v = getValue(config, section, ss[0], "");
+                    break;
+                default:
+                    v = name;
+            }
+            s2 = m.replaceFirst(v);
+            m = VARIABLE.matcher(s2);
+        }
+
+        return s2;
+    }
+
+    private void configureLocale(DynObject config) {
+        if (!BooleanUtils.isTrue((Boolean) getProperty("configureLocale"))) {
+            return;
+        }
+        try {
+            LocaleManager localeManager = PluginsLocator.getLocaleManager();
+            String localeCode = getValue(config, null, "default_locale", null);
+            if( localeCode != null ) {
+                Locale locale = LocaleUtils.toLocale(localeCode);
+                localeManager.setCurrentLocale(locale);
+
+                logger.info("Set default locale to '" + localeCode + "'.");
+                setProperty("configureLocale", Boolean.FALSE);
+            }
+        } catch (Exception ex) {
+            errors_add("Can't apply locale configuration.", ex);
+        }
+    }
+
+    private void configureHttpproxy(DynObject config) {
+        if (!BooleanUtils.isTrue((Boolean) getProperty("configureHTTPPproxy"))) {
+            return;
+        }
+        try {
+            FirewallConfiguration conf = getFirewallConfiguration();
+            String host = getValue(config, "httpproxy", "host", "");
+            String port = getValue(config, "httpproxy", "port", "");
+            String nonProxyHosts = getValue(config, "httpproxy", "nonProxyHosts", "");
+            String userName = getValue(config, "httpproxy", "username", "");
+            String password = getValue(config, "httpproxy", "password", "");
+            String enabled = getValue(config, "httpproxy", "enabled", "false");
+            conf.setHost(host, port);
+            conf.setNonProxyHosts(nonProxyHosts);
+            if (!StringUtils.isBlank(userName)) {
+                conf.setUserName(userName);
+            }
+            if (!StringUtils.isBlank(password)) {
+                conf.setPassword(password);
+            }
+            conf.setEnabled(BooleanUtils.toBoolean(enabled));
+            conf.apply();
+            logger.info("Set httpproxy host:port to '" + host + ":" + port + "', enabled " + BooleanUtils.toBoolean(enabled) + ".");
+            setProperty("configureHTTPPproxy", Boolean.FALSE);
+        } catch (Exception ex) {
+            errors_add("Can't apply proxy configuration.", ex);
+        }
+    }
+
+    private FirewallConfiguration getFirewallConfiguration() {
+        FirewallConfiguration conf = (FirewallConfiguration) ToolsLocator.getInstance().get(ToolsLocator.FIREWALL_MANAGER_NAME);
+//        FirewallConfiguration conf = PluginsLocator.getManager().getFirewallConfiguration();
+        return conf;
+    }
+
+    private boolean configureHttpproxyUser(DynObject config) {
+        try {
+            FirewallConfiguration conf = getFirewallConfiguration();
+            String userName = conf.getUserName();
+            String password = conf.getPassword();
+
+            HttpProxyLoginDialog dialog = new HttpProxyLoginDialog();
+            if (StringUtils.isBlank(userName)) {
+                userName = getValue(config, "httpproxy", "username", "");
+            }
+            if (StringUtils.isBlank(password)) {
+                password = getValue(config, "httpproxy", "password", "");
+            }
+
+            dialog.setUserName(userName);
+            dialog.setPassword(password);
+            if (dialog.login()) {
+                conf.setUserName(dialog.getUserName());
+                conf.setPassword(dialog.getPassword());
+                conf.setEnabled(true);
+                conf.apply();
+            } else {
+                conf.setUserName(dialog.getUserName());
+                conf.setPassword("");
+                conf.setEnabled(false);
+                conf.apply();
+            }
+            logger.info("Set httpproxy user to '" + conf.getUserName() + "'.");
+            logger.info("Set httpproxy password.");
+            // Set values in config to allow variable sustitution
+            setValue(config, "httpproxy", "username", conf.getUserName());
+            setValue(config, "httpproxy", "password", conf.getPassword());
+            return true;
+        } catch (Exception ex) {
+            errors_add("Can't apply username/password proxy configuration.", ex);
+            return false;
+        }
+    }
+
+    private void configureCRS(DynObject config) {
+        if (!BooleanUtils.isTrue((Boolean) getProperty("configureProjection"))) {
+            return;
+        }
+        try {
+            ProjectManager projectManager = ApplicationLocator.getProjectManager();
+            ProjectPreferences projectPreferences = projectManager.getProjectPreferences();
+            DynObject crsOptions = (DynObject) config.getDynValue("CRS");
+            IProjection proj = (IProjection) crsOptions.getDynValue("default_projection");
+            projectPreferences.setDefaultProjection(proj.getFullCode());
+            logger.info("Set default projection to '" + proj.getFullCode() + "'.");
+            setProperty("configureProjection", Boolean.FALSE);
+        } catch (Exception ex) {
+            errors_add("Can't apply CRS configuration.", ex);
+        }
+    }
+
+    private void configureServers(String protocol, String pluginName, List<DynObject> servers) {
+        if (!getPropertyBoolean("configureOGCServers_" + protocol)) {
+            return;
+        }
+        if( servers==null ) {
+            logger.info("No servers specifieds for protocol "+protocol+".");
+            return;
+        }
+        if (pluginName == null) {
+            logger.info("Skip '" + pluginName + "' servers configurations..");
+            return;
+        }
+        PluginServices plugin = getPlugin(pluginName);
+        if (plugin == null) {
+            logger.info("Skip '" + pluginName + "' servers configurations. Plugin not installed.");
+            return;
+        }
+        ServerDataPersistence serversDataPersistence = (ServerDataPersistence) plugin.getPluginProperties().getDynValue("Servers");
+        if (serversDataPersistence == null) {
+            serversDataPersistence = new ServerDataPersistence(protocol);
+            plugin.getPluginProperties().setDynValue("Servers", serversDataPersistence);
+        }
+        MyServerData serversData = new MyServerData(serversDataPersistence);
+
+        for (int i = 0; i < servers.size(); i++) {
+            String server = (String) servers.get(i).getDynValue("url");
+            boolean remove = BooleanUtils.isTrue((Boolean) servers.get(i).getDynValue("remove"));
+            if (remove) {
+                serversData.remove(server);
+                logger.info("Remove '" + protocol + "' server '" + server + "'.");
+            } else {
+                if (!serversData.contains(server)) {
+                    serversData.add(server, protocol);
+                    logger.info("Insert '" + protocol + "' server '" + server + "'.");
+                }
+            }
+        }
+        plugin.savePluginProperties();
+        logger.info("Save properties of plugin '" + pluginName + "'.");
+        setProperty("configureOGCServers_" + protocol, Boolean.FALSE);
+
+    }
+
+    private void createActionsScripts(DynObject config) {
+        List<DynObject> scriptActions = (List<DynObject>) config.getDynValue("scriptActions");
+        if (scriptActions == null) {
+            return;
+        }
+        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
+
+        for (int i = 0; i < scriptActions.size(); i++) {
+            DynObject scriptAction = scriptActions.get(i);
+            String name = (String) scriptAction.getDynValue("name");
+            ActionInfo action = actionManager.getAction(name);
+            if (action == null) {
+                String script = (String) scriptAction.getDynValue("script");
+                String label = (String) scriptAction.getDynValue("label");
+                String icon = (String) scriptAction.getDynValue("icon");
+                long position = ((Long) (scriptAction.getDynValue("position"))).longValue();
+                String tip = (String) scriptAction.getDynValue("tip");
+                createActionScript(name, script, label, icon, position, tip);
+            } else {
+                logger.info("Can't create action script, action '" + name + "' already defined.");
+            }
+        }
+    }
+
+    private void addTOCActions(DynObject config) {
+        List<DynObject> viewTOCActions = (List<DynObject>) config.getDynValue("viewTocActions");
+        if (viewTOCActions == null) {
+            return;
+        }
+        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
+        ProjectManager projectManager = ApplicationLocator.getProjectManager();
+        ViewManager viewManager = (ViewManager) projectManager.getDocumentManager(ViewManager.TYPENAME);
+        for (int i = 0; i < viewTOCActions.size(); i++) {
+            DynObject viewTOCAction = viewTOCActions.get(i);
+            String name = (String) viewTOCAction.getDynValue("name");
+            ActionInfo action = actionManager.getAction(name);
+            if (action != null) {
+                String group = (String) viewTOCAction.getDynValue("group");
+                int grouporder = ((Long) (viewTOCAction.getDynValue("grouporder"))).intValue();
+                viewManager.addTOCContextAction(action, group, grouporder);
+            } else {
+                logger.info("Can't add context menu entry to the view TOC. Action '" + name + "' don't exists.");
+            }
+        }
+    }
+
+    private void addMenuActions(DynObject config) {
+        List<DynObject> menuActions = (List<DynObject>) config.getDynValue("menuActions");
+        if (menuActions == null) {
+            return;
+        }
+        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
+        ApplicationManager application = ApplicationLocator.getManager();
+        for (int i = 0; i < menuActions.size(); i++) {
+            DynObject menuAction = menuActions.get(i);
+            String name = (String) menuAction.getDynValue("name");
+            ActionInfo action = actionManager.getAction(name);
+            if (action != null) {
+                String text = (String) menuAction.getDynValue("text");
+                application.addMenu(action, text);
+            } else {
+                logger.info("Can't add menu entry. Action '" + name + "' don't exists.");
+            }
+        }
+    }
+
+    private void addToolActions(DynObject config) {
+        List<DynObject> toolActions = (List<DynObject>) config.getDynValue("toolActions");
+        if (toolActions == null) {
+            return;
+        }
+        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
+        ApplicationManager application = ApplicationLocator.getManager();
+        for (int i = 0; i < toolActions.size(); i++) {
+            DynObject toolAction = toolActions.get(i);
+            String name = (String) toolAction.getDynValue("name");
+            ActionInfo action = actionManager.getAction(name);
+            if (action != null) {
+                String toolbarName = (String) toolAction.getDynValue("toolbarName");
+                application.addTool(action, toolbarName);
+            } else {
+                logger.info("Can't add tool entry. Action '" + name + "' don't exists.");
+            }
+        }
+    }
+
+    private ActionInfo createActionScript(String actionName, String scriptName, String label, String iconName, long position, String tip) {
+        ActionInfoManager actionManager = PluginsLocator.getActionInfoManager();
+
+        Class scriptingExtension = this.getScriptingExtension();
+        if (scriptingExtension == null) {
+            logger.warn("Can't create action script '" + actionName + "', can't locate scripting extension");
+            return null;
+        }
+        if (StringUtils.isBlank(iconName)) {
+            iconName = null;
+        }
+        if (StringUtils.isBlank(tip)) {
+            tip = actionName;
+        }
+
+        ActionInfo action = actionManager.createAction(scriptingExtension, actionName, label, scriptName, iconName, null, position, tip);
+        return actionManager.registerAction(action);
+    }
+
+    @Override
+    public void run() {
+
+        errors_reset();
+
+        MainFrame mainWindow = PluginsLocator.getMainFrame();
+
+        try {
+            Configuration configManager = new Configuration();
+            DynObject config = configManager.load();
+
+            if (config == null) {
+                PluginsLocator.getMainFrame().messageDialog(
+                        "_No_se_ha_podido_acceder_a_la_configuracion_de_personalizacion_Consulte_el_registro_de_errores_si_precisa_mas_informacion",
+                        "_Atencion",
+                        JOptionPane.WARNING_MESSAGE
+                );
+                return;
+            }
+
+            configureLocale(config);
+            configureHttpproxy(config);
+            DynObject httpProxyConfiguration = (DynObject) config.getDynValue("httpproxy");
+            if (((Boolean) (httpProxyConfiguration.getDynValue("promptUserAndPassword"))).booleanValue()) {
+                configureHttpproxyUser(config);
+            }
+
+            configureCRS(config);
+
+            mainWindow.message("_Updating_server_information", JOptionPane.INFORMATION_MESSAGE);
+            configureServers(
+                    "WMS",
+                    "org.gvsig.raster.wms.app.wmsclient",
+                    (List<DynObject>) config.getDynValue("wmsUrls")
+            );
+            configureServers(
+                    "WMTS",
+                    "org.gvsig.raster.wmts.app.wmtsclient",
+                    (List<DynObject>) config.getDynValue("wmtsUrls")
+            );
+            configureServers(
+                    "WCS",
+                    "org.gvsig.raster.wcs.app.wcsclient",
+                    (List<DynObject>) config.getDynValue("wcsUrls")
+            );
+            configureServers(
+                    "WFS",
+                    "org.gvsig.wfs.app.mainplugin",
+                    (List<DynObject>) config.getDynValue("wfsUrls")
+            );
+
+
+//
+//            configureAllPlugins(config);
+//
+            createActionsScripts(config);
+
+            addTOCActions(config);
+            addMenuActions(config);
+            addToolActions(config);
+
+        } catch (Exception ex) {
+            errors_add("Problems apply defaut configuration.", ex);
+        }
+
+        if (errors_count() > 0) {
+            mainWindow.messageDialog(
+                    "_Se_han_producido_errores_actualizando_la_configuracion_por_defecto_Consulte_el_registro_de_errores_si_precisa_mas_informacion",
+                    "_Setting_custom_configuration",
+                    JOptionPane.WARNING_MESSAGE
+            );
+        }
+        installAdditionalPackages();
+        mainWindow.message(null, JOptionPane.INFORMATION_MESSAGE);
+    }
+
+    private Set loadDefaultPackages(File packages) throws IOException {
+        Set defaultPackages = new HashSet<String>();
+
+        List<String> lines = FileUtils.readLines(packages);
+        defaultPackages.clear();
+        for (String line : lines) {
+            line = line.trim();
+            if (line.startsWith("#") || line.startsWith(";")) {
+                continue;
+            }
+            defaultPackages.add(line.toLowerCase());
+        }
+        return defaultPackages;
+    }
+
+    /**
+     * Workaround to bug in SimpleTaskStatus of gvSIG 2.2.0
+     */
+    private static class MyTaskStatus extends BaseTaskStatus {
+
+        public MyTaskStatus(String title) {
+            super(title);
+        }
+
+        public MyTaskStatus(String tittle, long minValue, long maxValue) {
+            super(tittle, minValue, maxValue);
+        }
+
+        public void message(String message) {
+            this.lastModification = new Date();
+            super.message(message);
+        }
+
+    }
+
+    private void installAdditionalPackages() {
+        if (!BooleanUtils.isTrue((Boolean) getProperty("installAdditionalComponents"))) {
+            return;
+        }
+
+        File defaultPackagesFile = new File(getPlugin().getPluginDirectory(), "defaultPackages");
+        if (!defaultPackagesFile.exists()) {
+            logger.info("Skip additional package instalation (don't exists " + defaultPackagesFile.getAbsolutePath() + ").");
+            return;
+        }
+
+        I18nManager i18nManager = ToolsLocator.getI18nManager();
+        boolean needRestart = false;
+        SimpleTaskStatus taskStatus = new MyTaskStatus(i18nManager.getTranslation("_Installing_additional_components"));
+        InstallPackagesPanel dialog = new InstallPackagesPanel(taskStatus);
+        try {
+            taskStatus.add();
+            taskStatus.setAutoremove(true);
+
+            showWindow(
+                    dialog,
+                    i18nManager.getTranslation("_Terminating_installation"),
+                    WindowManager.MODE.WINDOW
+            );
+            taskStatus.message(i18nManager.getTranslation("_Preparing_additional_components_installation"));
+
+            PluginsManager pluginsManmager = PluginsLocator.getManager();
+            InstallerManager installerManager = InstallerLocator.getInstallerManager();
+            InstallPackageService installer = null;
+            List<PackageInfo> packagesToInstall = new ArrayList<PackageInfo>();
+            Set<String> defaultSelectedPacakgeCodes = loadDefaultPackages(
+                    defaultPackagesFile
+            );
+
+            installer = installerManager.getInstallPackageService();
+
+            taskStatus.message(i18nManager.getTranslation("_Searching_available_packages"));
+            installer.addBundlesFromDirectory(pluginsManmager.getInstallFolder(),taskStatus);
+
+            taskStatus.message(i18nManager.getTranslation("_Filtering_packages"));
+            for (String packageCode : defaultSelectedPacakgeCodes) {
+                PackageInfo pkg = installer.getPackageInfo(packageCode);
+                if (pkg != null) {
+                    File folder = installerManager.getAddonFolder(pkg.getCode());
+                    if (folder == null) {
+                        packagesToInstall.add(pkg);
+                    }
+                }
+            }
+            if (!packagesToInstall.isEmpty()) {
+                taskStatus.setRangeOfValues(1, packagesToInstall.size());
+                for (int i = 0; i < packagesToInstall.size(); i++) {
+                    PackageInfo pkg = packagesToInstall.get(i);
+                    taskStatus.setCurValue(i + 1);
+                    taskStatus.message(i18nManager.getTranslation("_Installing_{0}",
+                            new String[] { pkg.getCode() }
+                    ));
+                    try {
+                        logger.info("install package '" + pkg.getCode() + "'.");
+                        installer.installPackage(pluginsManmager.getApplicationFolder(), pkg);
+                        if (needRestart(installer,pkg)) {
+                            needRestart = true;
+                        }
+                    } catch (Throwable th) {
+                        logger.warn("can't install package '" + pkg.getCode() + "'.", th);
+                    }
+                }
+                taskStatus.message(i18nManager.getTranslation("_Installation_terminated"));
+                taskStatus.terminate();
+                setProperty("installAdditionalComponents", Boolean.FALSE);
+                if (needRestart) {
+                    dialog.message(i18nManager.getTranslation("_Additional_components_installed_succesfully_Restart_applicaction"));
+                } else {
+                    dialog.message(i18nManager.getTranslation("_Additional_components_installed_succesfully"));
+                }
+            } else {
+                taskStatus.message(i18nManager.getTranslation("_Installation_terminated"));
+                taskStatus.terminate();
+                dialog.message(i18nManager.getTranslation("_Additional_components_installed_succesfully"));
+            }
+            setProperty("installAdditionalComponents", Boolean.FALSE);
+        } catch (Throwable th) {
+            taskStatus.cancel();
+            dialog.message(i18nManager.getTranslation("_Problems_installing_additional_components"));
+            logger.warn("can't install additional packages.", th);
+
+        } finally {
+            taskStatus.remove();
+        }
+    }
+
+    private boolean needRestart(InstallPackageService installer, PackageInfo pkg) {
+//        return installer.needRestart(pkg);
+        if( "plugin".equalsIgnoreCase(pkg.getType()) ) {
+            return true;
+        } else if( "symbols".equalsIgnoreCase(pkg.getType()) ) {
+            return false;
+        } else if( "jCRS_EPSG".equalsIgnoreCase(pkg.getType()) ) {
+            return true;
+        } else {
+            return true;
+        }
+
+    }
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/InstallPackagesPanelLayout.form
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/InstallPackagesPanelLayout.form	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/InstallPackagesPanelLayout.form	(revision 347)
@@ -0,0 +1,701 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.8" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+  <Properties>
+    <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+      <Dimension value="[400, 115]"/>
+    </Property>
+  </Properties>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <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="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <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="4"/>
+    <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-107,0,0,1,-112"/>
+  </AuxValues>
+  <SubComponents>
+    <Component class="javax.swing.JLabel" name="lblTitle">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Configuring installation"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="2" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.3" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.Box$Filler" name="filler1">
+      <Properties>
+        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[4, 4]"/>
+        </Property>
+        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[4, 4]"/>
+        </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[4, 4]"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.RigidArea"/>
+      </AuxValues>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="4" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.Box$Filler" name="filler2">
+      <Properties>
+        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[4, 4]"/>
+        </Property>
+        <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[4, 4]"/>
+        </Property>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[4, 4]"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.RigidArea"/>
+      </AuxValues>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Container class="javax.swing.JPanel" name="pnlProgress">
+      <Properties>
+        <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[300, 80]"/>
+        </Property>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="4" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+
+      <Layout>
+        <DimensionLayout dim="0">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <EmptySpace min="0" pref="382" max="32767" attributes="0"/>
+          </Group>
+        </DimensionLayout>
+        <DimensionLayout dim="1">
+          <Group type="103" groupAlignment="0" attributes="0">
+              <EmptySpace min="0" pref="80" max="32767" attributes="0"/>
+          </Group>
+        </DimensionLayout>
+      </Layout>
+    </Container>
+    <Component class="javax.swing.JButton" name="butClose">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Close"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="8" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.Box$Filler" name="filler3">
+      <Properties>
+        <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+          <Dimension value="[0, 32767]"/>
+        </Property>
+      </Properties>
+      <AuxValues>
+        <AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.VerticalGlue"/>
+      </AuxValues>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="4" gridY="10" gridWidth="1" gridHeight="1" fill="3" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.1"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JLabel" name="lblMessage">
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="6" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="21" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+  </SubComponents>
+  <LayoutCode>
+    <CodeStatement>
+      <CodeExpression id="1_layout">
+        <CodeVariable name="layout" type="4096" declaredType="java.awt.GridBagLayout"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagLayout" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="1_layout"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="1_layout"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="columnWidths" class="java.awt.GridBagLayout"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="2">
+          <ExpressionOrigin>
+            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+              <PropertyValue value="[0, 5, 0, 5, 0]"/>
+            </Value>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="1_layout"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="rowHeights" class="java.awt.GridBagLayout"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="3">
+          <ExpressionOrigin>
+            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+              <PropertyValue value="[0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0]"/>
+            </Value>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4">
+        <ExpressionOrigin>
+          <ExpressionProvider type="ComponentRef">
+            <ComponentRef name="."/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="setLayout" class="java.awt.Container" parameterTypes="java.awt.LayoutManager"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="1_layout"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints" type="20480" declaredType="java.awt.GridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="5_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="6">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="7">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="8">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="9">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="weightx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="10">
+          <ExpressionOrigin>
+            <Value type="double" value="0.3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="11_lblTitle">
+          <CodeVariable name="lblTitle" type="8196" declaredType="javax.swing.JLabel"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="lblTitle"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="5_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="12_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="12_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="12_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="13">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="12_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="14">
+          <ExpressionOrigin>
+            <Value type="int" value="0"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="15_filler1">
+          <CodeVariable name="filler1" type="8196" declaredType="javax.swing.Box$Filler"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="filler1"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="12_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="16_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="16_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="16_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="17">
+          <ExpressionOrigin>
+            <Value type="int" value="0"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="16_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="18">
+          <ExpressionOrigin>
+            <Value type="int" value="0"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="19_filler2">
+          <CodeVariable name="filler2" type="8196" declaredType="javax.swing.Box$Filler"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="filler2"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="16_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="20_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="20_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="20_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="21">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="20_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="22">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="20_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="23">
+          <ExpressionOrigin>
+            <Value type="int" value="1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="24_pnlProgress">
+          <CodeVariable name="pnlProgress" type="8196" declaredType="javax.swing.JPanel"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="pnlProgress"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="20_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="25_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="25_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="25_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="26">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="25_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="27">
+          <ExpressionOrigin>
+            <Value type="int" value="8"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="25_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="28">
+          <ExpressionOrigin>
+            <Value type="int" value="22"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="29_butClose">
+          <CodeVariable name="butClose" type="8196" declaredType="javax.swing.JButton"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="butClose"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="25_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="30_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="30_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="30_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="31">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="30_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="32">
+          <ExpressionOrigin>
+            <Value type="int" value="10"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="30_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="33">
+          <ExpressionOrigin>
+            <Value type="int" value="3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="30_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="weighty" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="34">
+          <ExpressionOrigin>
+            <Value type="double" value="0.1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="35_filler3">
+          <CodeVariable name="filler3" type="8196" declaredType="javax.swing.Box$Filler"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="filler3"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="30_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="36_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="36_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="36_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="37">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="36_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="38">
+          <ExpressionOrigin>
+            <Value type="int" value="6"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="36_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="39">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="36_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="40">
+          <ExpressionOrigin>
+            <Value type="int" value="21"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="41_lblMessage">
+          <CodeVariable name="lblMessage" type="8196" declaredType="javax.swing.JLabel"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="lblMessage"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="36_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+  </LayoutCode>
+</Form>
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/Configuration.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/Configuration.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/Configuration.java	(revision 347)
@@ -0,0 +1,255 @@
+package org.gvsig.customize;
+
+import java.awt.Dimension;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+import javax.swing.JOptionPane;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.PluginsLocator;
+import org.gvsig.andami.PluginsManager;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.fmap.mapcontrol.swing.dynobject.DynObjectEditor;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynClass;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.dynobject.DynObjectManager;
+import org.gvsig.tools.persistence.PersistenceManager;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.xml.XMLPersistenceManager;
+import org.gvsig.tools.service.ServiceException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Configuration {
+
+    private final static Logger logger = LoggerFactory.getLogger(CustomizeExtension.class);
+    private Map<String, DynClass> definitions;
+
+    public Configuration() {
+        this.definitions = null;
+    }
+
+    public void edit() {
+        ApplicationManager application = ApplicationLocator.getManager();
+        final DynObject config = load();
+        if (config == null) {
+            application.messageDialog("Can't show the configuration dialog.\nSee the error log for more information.", "Warning", JOptionPane.WARNING_MESSAGE);
+            return;
+        }
+//        try {
+            final DynObjectEditor editor = new DynObjectEditor(config, false);
+            editor.setPreferredSize(new Dimension(800, 400));
+            editor.setOnClose(new Runnable() {
+                public void run() {
+                    if (editor.isCanceled()) {
+                        return;
+                    }
+                    save(config);
+                }
+            });
+            editor.editObject(false);
+
+//        } catch (ServiceException ex) {
+//            logger.warn("Can't edit customize configuration", ex);
+//            application.messageDialog("Can't show the configuration dialog.\nSee the error log for more information.", "Warning", JOptionPane.WARNING_MESSAGE);
+//        }
+
+    }
+
+    private File getConfigurationFile() {
+            PluginsManager pluginManager = PluginsLocator.getManager();
+            PluginServices plugin = pluginManager.getPlugin(CustomizeExtension.class);
+            //
+            // El fichero de configuracion NO puede estar en el home del usuario.
+            // Siempre estara en la carpeta de la instalacion del plugin.
+            File configFile = new File(plugin.getPluginDirectory(), "configure.dat");        
+            return configFile;
+    }
+    
+    public DynObject load() {
+        FileInputStream is = null;
+        try {
+            Map<String, DynClass> definitions = getDefinitions();
+            if (definitions == null) {
+                return null;
+            }
+            DynClass def = definitions.get("Configuration");
+            if (def == null) {
+                logger.warn("Can't find definition 'Configuration'.");
+                return null;
+            }
+            DynObject config = null;
+            File configFile = getConfigurationFile();
+            if (configFile.exists()) {
+                is = new FileInputStream(configFile);
+                PersistenceManager pman = ToolsLocator.getPersistenceManager();//new XMLPersistenceManager();
+                config = (DynObject) pman.getObject(is);
+            } else {
+                config = this.create();
+            }
+            return config;
+        } catch (Exception ex) {
+            logger.warn("Can't load configuration file.", ex);
+            return null;
+        } finally {
+            IOUtils.closeQuietly(is);
+        }
+    }
+
+    public Map<String, DynClass> getDefinitions() {
+        if (this.definitions == null) {
+            this.definitions = this.loadDefinitions();
+        }
+        return this.definitions;
+    }
+
+    private Map<String, DynClass> loadDefinitions() {
+        InputStream formIs = null;
+
+        try {
+            DynObjectManager dynObjectManager = null;
+            String resourceName = "configure.form";
+            Map<String, DynClass> definitions = null;
+            try {
+                dynObjectManager = ToolsLocator.getDynObjectManager();
+                formIs = this.getClass().getResourceAsStream("/" + resourceName);
+                definitions = dynObjectManager.importDynClassDefinitions(formIs, this.getClass().getClassLoader());
+            } catch (Exception ex) {
+                logger.warn("Can't load form definition from '" + resourceName + "'.", ex);
+                return null;
+            }
+            for (DynClass definition : definitions.values()) {
+                if (!dynObjectManager.has(definition.getFullName())) {
+                    dynObjectManager.add(definition);
+                }
+            }
+            return definitions;
+        } catch (Exception ex) {
+            logger.warn("Can't load definitions for the configuration file.", ex);
+            return null;
+        } finally {
+            IOUtils.closeQuietly(formIs);
+        }
+    }
+
+    public DynObject create() {
+        DynObjectManager dynObjectManager = null;
+        dynObjectManager = ToolsLocator.getDynObjectManager();
+
+        Map<String, DynClass> definitions = getDefinitions();
+        if (definitions == null) {
+            return null;
+        }
+        DynObject config = dynObjectManager.createDynObject(definitions.get("Configuration"));
+        DynObject crs = dynObjectManager.createDynObject(definitions.get("CRSConfiguration"));
+        DynObject httpproxy = dynObjectManager.createDynObject(definitions.get("ProxyConfiguration"));
+        DynObject theme = dynObjectManager.createDynObject(definitions.get("ThemeConfiguration"));
+
+        config.setDynValue("crs", crs);
+        config.setDynValue("httpproxy", httpproxy);
+        config.setDynValue("theme", theme);
+
+        return config;
+    }
+
+    public void save(DynObject config) {
+        FileOutputStream os = null;
+        try {
+            os = new FileOutputStream(getConfigurationFile());
+            PersistenceManager pman = ToolsLocator.getPersistenceManager();//new XMLPersistenceManager();
+            PersistentState state = pman.getState(config);
+            pman.saveState(state, os);
+            updateAndamiTheme((DynObject) config.getDynValue("theme"));
+        } catch (Exception ex) {
+            logger.warn("Can't save configuration file.", ex);
+        } finally {
+            IOUtils.closeQuietly(os);
+        }
+    }
+
+    private void updateAndamiTheme(DynObject config) {
+        try {
+            StringBuffer writer = new StringBuffer();
+            writer.append("<AndamiProperties>\n");
+            writer.append("  <ApplicationImages>\n");
+            writer.append("    <SplashImages>\n");
+            writer.append("      <Splash\n");
+            writer.append("        path=\"splash.png\"\n");
+            writer.append("        timer=\"10000\" \n");
+            writer.append("        x=\"").append(config.getDynValue("splash_x")).append("\" \n");
+            writer.append("        y=\"").append(config.getDynValue("splash_y")).append("\" \n");
+            writer.append("        fontsize=\"").append(config.getDynValue("splash_font_size")).append("\" \n");
+            writer.append("        color=\"").append(config.getDynValue("splash_font_color")).append("\" \n");
+            writer.append("        version=\"").append(config.getDynValue("splash_version")).append("\"/>\n");
+            writer.append("    </SplashImages>\n");
+
+            if (config.getDynValue("wallpaper_image") == null) {
+                writer.append("<!--\n");
+                writer.append("   <BackgroundImage path=\"wallpaper.png\"/>\n");
+                writer.append("-->\n");
+            } else {
+                writer.append("   <BackgroundImage path=\"wallpaper.png\"/>\n");
+            }
+
+            if (StringUtils.isEmpty((String) config.getDynValue("background_color"))) {
+                writer.append("<!--\n");
+                writer.append("   <BackgroundColor color=\"0,0,0\"/>\n");
+                writer.append("-->\n");
+            } else {
+                writer.append("   <BackgroundColor color=\"").append(config.getDynValue("background_color")).append("\"/>\n");
+            }
+
+            writer.append("   <WallpaperType value=\"").append(config.getDynValue("wallpaper_mode")).append("\"/>\n");
+            writer.append("   <Icon path=\"icon16x16.png\"/>\n");
+            writer.append("  </ApplicationImages>\n");
+            writer.append("<ApplicationName value=\"").append(config.getDynValue("applicationname")).append("\"/>\n");
+            writer.append("<priority value=\"1000\"/>\n");
+            writer.append("</AndamiProperties>\n");
+
+            PluginsManager pluginManager = PluginsLocator.getManager();
+            PluginServices plugin = pluginManager.getPlugin(CustomizeExtension.class);
+            File andamiThemeFolder = new File(plugin.getPluginDirectory(), "theme").getAbsoluteFile();
+            File andamiThemeFile = new File(andamiThemeFolder, "andami-theme.xml");
+            FileUtils.write(andamiThemeFile, writer.toString());
+
+            File file = (File) config.getDynValue("splash_image");
+            if (!file.isAbsolute()) {
+                file = new File(andamiThemeFolder, file.getPath());
+            }
+            File targetFile = new File(andamiThemeFolder, "splash.png");
+            if (!file.equals(targetFile)) {
+                FileUtils.copyFile(file, targetFile);
+            }
+
+            file = (File) config.getDynValue("wallpaper_image");
+            if (file != null) {
+                if (!file.isAbsolute()) {
+                    file = new File(andamiThemeFolder, file.getPath());
+                }
+                targetFile = new File(andamiThemeFolder, "wallpaper.png");
+                if (!file.equals(targetFile)) {
+                    FileUtils.copyFile(file, targetFile);
+                }
+            }
+            file = (File) config.getDynValue("icon");
+            if (!file.isAbsolute()) {
+                file = new File(andamiThemeFolder, file.getPath());
+            }
+            targetFile = new File(andamiThemeFolder, "icon16x16.png");
+            if (!file.equals(targetFile)) {
+                FileUtils.copyFile(file, targetFile);
+            }
+        } catch (IOException ex) {
+            logger.warn("Can't update gvSIG theme", ex);
+        }
+    }
+
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/MessageBar.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/MessageBar.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/MessageBar.java	(revision 347)
@@ -0,0 +1,7 @@
+package org.gvsig.customize;
+
+
+public interface MessageBar {
+    
+    public void message(String msg);
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/HttpProxyLoginDialogLayout.form
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/HttpProxyLoginDialogLayout.form	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/HttpProxyLoginDialogLayout.form	(revision 347)
@@ -0,0 +1,686 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.8" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+  <Properties>
+    <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="10" left="10" right="10" top="10"/>
+      </Border>
+    </Property>
+    <Property name="alignmentX" type="float" value="1.0"/>
+    <Property name="alignmentY" type="float" value="1.0"/>
+  </Properties>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <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="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <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="4"/>
+    <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,0,-87,0,0,1,-65"/>
+  </AuxValues>
+  <SubComponents>
+    <Component class="javax.swing.JLabel" name="lblTitle">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Identificacion de usuario para acceso a internet"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="2" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JLabel" name="lblName">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Nombre de usuario:"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="6" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JTextField" name="txtName">
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="8" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JLabel" name="lblPassword">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Clave:"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="12" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JButton" name="botLogin">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Aceptar"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="4" gridY="18" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="22" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JButton" name="botCancel">
+      <Properties>
+        <Property name="text" type="java.lang.String" value="Cancelar"/>
+      </Properties>
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="18" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="13" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+    <Component class="javax.swing.JPasswordField" name="txtPassword">
+      <Constraints>
+        <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+          <GridBagConstraints gridX="2" gridY="14" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="0" insetsLeft="0" insetsBottom="0" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+        </Constraint>
+      </Constraints>
+    </Component>
+  </SubComponents>
+  <LayoutCode>
+    <CodeStatement>
+      <CodeExpression id="1_layout">
+        <CodeVariable name="layout" type="4096" declaredType="java.awt.GridBagLayout"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagLayout" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="1_layout"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="1_layout"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="columnWidths" class="java.awt.GridBagLayout"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="2">
+          <ExpressionOrigin>
+            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+              <PropertyValue value="[0, 5, 0, 5, 0, 5, 0]"/>
+            </Value>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="1_layout"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="rowHeights" class="java.awt.GridBagLayout"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="3">
+          <ExpressionOrigin>
+            <Value type="[I" editor="org.netbeans.modules.form.layoutsupport.delegates.GridBagLayoutSupport$IntArrayPropertyEditor">
+              <PropertyValue value="[0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0]"/>
+            </Value>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4">
+        <ExpressionOrigin>
+          <ExpressionProvider type="ComponentRef">
+            <ComponentRef name="."/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="setLayout" class="java.awt.Container" parameterTypes="java.awt.LayoutManager"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="1_layout"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints" type="20480" declaredType="java.awt.GridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="5_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="6">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="7">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="5_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="8">
+          <ExpressionOrigin>
+            <Value type="int" value="1"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="9_lblTitle">
+          <CodeVariable name="lblTitle" type="8196" declaredType="javax.swing.JLabel"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="lblTitle"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="5_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="10_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="10_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="10_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="11">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="10_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="12">
+          <ExpressionOrigin>
+            <Value type="int" value="6"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="10_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="13">
+          <ExpressionOrigin>
+            <Value type="int" value="3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="10_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="14">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="15_lblName">
+          <CodeVariable name="lblName" type="8196" declaredType="javax.swing.JLabel"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="lblName"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="10_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="16_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="16_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="16_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="17">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="16_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="18">
+          <ExpressionOrigin>
+            <Value type="int" value="8"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="16_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="19">
+          <ExpressionOrigin>
+            <Value type="int" value="3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="16_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="20">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="21_txtName">
+          <CodeVariable name="txtName" type="8196" declaredType="javax.swing.JTextField"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="txtName"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="16_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="22_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="22_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="22_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="23">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="22_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="24">
+          <ExpressionOrigin>
+            <Value type="int" value="12"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="22_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="25">
+          <ExpressionOrigin>
+            <Value type="int" value="3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="22_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="26">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="27_lblPassword">
+          <CodeVariable name="lblPassword" type="8196" declaredType="javax.swing.JLabel"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="lblPassword"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="22_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="28_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="28_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="28_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="29">
+          <ExpressionOrigin>
+            <Value type="int" value="4"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="28_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="30">
+          <ExpressionOrigin>
+            <Value type="int" value="18"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="28_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="31">
+          <ExpressionOrigin>
+            <Value type="int" value="22"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="32_botLogin">
+          <CodeVariable name="botLogin" type="8196" declaredType="javax.swing.JButton"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="botLogin"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="28_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="33_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="33_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="33_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="34">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="33_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="35">
+          <ExpressionOrigin>
+            <Value type="int" value="18"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="33_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="anchor" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="36">
+          <ExpressionOrigin>
+            <Value type="int" value="13"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="37_botCancel">
+          <CodeVariable name="botCancel" type="8196" declaredType="javax.swing.JButton"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="botCancel"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="33_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="38_gridBagConstraints">
+        <CodeVariable name="gridBagConstraints"/>
+        <ExpressionOrigin>
+          <ExpressionProvider type="CodeConstructor">
+            <CodeConstructor class="java.awt.GridBagConstraints" parameterTypes=""/>
+          </ExpressionProvider>
+        </ExpressionOrigin>
+      </CodeExpression>
+      <StatementProvider type="CodeExpression">
+        <CodeExpression id="38_gridBagConstraints"/>
+      </StatementProvider>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="38_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridx" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="39">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="38_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridy" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="40">
+          <ExpressionOrigin>
+            <Value type="int" value="14"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="38_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="gridwidth" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="41">
+          <ExpressionOrigin>
+            <Value type="int" value="3"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="38_gridBagConstraints"/>
+      <StatementProvider type="CodeField">
+        <CodeField name="fill" class="java.awt.GridBagConstraints"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="42">
+          <ExpressionOrigin>
+            <Value type="int" value="2"/>
+          </ExpressionOrigin>
+        </CodeExpression>
+      </Parameters>
+    </CodeStatement>
+    <CodeStatement>
+      <CodeExpression id="4"/>
+      <StatementProvider type="CodeMethod">
+        <CodeMethod name="add" class="java.awt.Container" parameterTypes="java.awt.Component, java.lang.Object"/>
+      </StatementProvider>
+      <Parameters>
+        <CodeExpression id="43_txtPassword">
+          <CodeVariable name="txtPassword" type="8196" declaredType="javax.swing.JPasswordField"/>
+          <ExpressionOrigin>
+            <ExpressionProvider type="ComponentRef">
+              <ComponentRef name="txtPassword"/>
+            </ExpressionProvider>
+          </ExpressionOrigin>
+        </CodeExpression>
+        <CodeExpression id="38_gridBagConstraints"/>
+      </Parameters>
+    </CodeStatement>
+  </LayoutCode>
+</Form>
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/CustomizeExtension.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/CustomizeExtension.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/CustomizeExtension.java	(revision 347)
@@ -0,0 +1,126 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.gvsig.customize;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JOptionPane;
+import org.gvsig.andami.PluginsLocator;
+import org.gvsig.andami.PluginsManager;
+import org.gvsig.andami.plugins.Extension;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.customize.locale.JDynFormFieldLocaleFactory;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynform.spi.DynFormSPILocator;
+import org.gvsig.tools.dynform.spi.DynFormSPIManager;
+import org.gvsig.tools.packageutils.PackageManager;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author usuario
+ */
+public class CustomizeExtension extends Extension {
+
+    private final static Logger logger = LoggerFactory.getLogger(CustomizeExtension.class);
+
+    @Override
+    public void initialize() {
+        PluginsManager pluginsManager = PluginsLocator.getManager();
+        pluginsManager.addStartupTask("Customize", new CustomizeTask(), false, 2000);
+        DynFormSPIManager manager = DynFormSPILocator.getDynFormSPIManager();
+        if( manager != null ) {
+            manager.addServiceFactory(new JDynFormFieldLocaleFactory());
+        }
+    }
+
+    @Override
+    public void execute(String actionCommand) {
+        if ("tools-customize-create-distribution".equalsIgnoreCase(actionCommand)) {
+            final DistributionParametersPanel panel = new DistributionParametersPanel();
+            panel.setCloseAndCreateVisible(true);
+            panel.addActionListener(new ActionListener() {
+                @Override
+                public void actionPerformed(ActionEvent ae) {
+                    doCreateDistributionTask(panel);
+                }
+            });
+            WindowManager windowManager = ToolsSwingLocator.getWindowManager();
+            windowManager.showWindow(panel, "Create distribution", WindowManager.MODE.WINDOW);
+        } else if ("tools-customize-edit-configuration".equalsIgnoreCase(actionCommand)) {
+            Configuration config = new Configuration();
+            config.edit();
+        }
+    }
+
+
+
+    private void doCreateDistributionTask(final DistributionParametersPanel panel) {
+        ApplicationManager application = ApplicationLocator.getManager();
+
+        if( panel.getOnlineInstaller()==null ) {
+            application.messageDialog(
+                    "Shall specify the online installer to use",
+                    "Parameter required",
+                    JOptionPane.WARNING_MESSAGE);
+            return;
+        }
+        if( panel.getWorkingFolder()==null ) {
+            application.messageDialog(
+                    "Shall specify the working folder to use",
+                    "Parameter required",
+                    JOptionPane.WARNING_MESSAGE);
+            return;
+        }
+//        if( panel.getPackageSet()==null ) {
+//            application.messageDialog(
+//                    "Shall specify the package set to use",
+//                    "Parameter required",
+//                    JOptionPane.WARNING_MESSAGE);
+//            return;
+//        }
+        if( panel.getDistributionId()==null ) {
+            application.messageDialog(
+                    "Shall specify the identifier of the new distribution",
+                    "Parameter required",
+                    JOptionPane.WARNING_MESSAGE);
+            return;
+        }
+
+        panel.setCloseAndCreateEnabled(false);
+
+        final DistributionBuilder builder = new DistributionBuilder(panel);
+        builder.setDistributionId(panel.getDistributionId());
+        builder.setOnlineInstaller(panel.getOnlineInstaller());
+        builder.setPackageSet(panel.getPackageSetFolder());
+        builder.setWorkingFolder(panel.getWorkingFolder());
+        builder.setIncludeCustomizePlugin(panel.getIncludeCustomizePlugin());
+
+        Thread task = new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    builder.build();
+                } finally {
+                    panel.setCloseAndCreateEnabled(true);
+                }
+            }
+        });
+        task.start();
+    }
+
+    public boolean isEnabled() {
+        return true;
+    }
+
+    public boolean isVisible() {
+        return true;
+    }
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/locale/JDynFormFieldLocale.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/locale/JDynFormFieldLocale.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/locale/JDynFormFieldLocale.java	(revision 347)
@@ -0,0 +1,85 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright (C) 2007-2013 gvSIG Association.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.customize.locale;
+
+import java.util.Locale;
+import java.util.Set;
+import javax.swing.JComboBox;
+import org.apache.commons.lang3.StringUtils;
+import org.gvsig.andami.LocaleManager;
+import org.gvsig.andami.PluginsLocator;
+import org.gvsig.tools.dynform.spi.dynformfield.AbstractJDynFormFieldWithValueList;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.dynobject.DynObjectValueItem;
+import org.gvsig.tools.service.spi.ServiceManager;
+
+public class JDynFormFieldLocale extends AbstractJDynFormFieldWithValueList {
+	
+	public JDynFormFieldLocale(DynObject parameters,
+			ServiceManager serviceManager) {
+		super(parameters, serviceManager);
+	}
+	
+	protected String getDefaultValue(){
+		return "";
+	}
+
+	public Object getValue() {
+		Object value = null;
+		String s = this.getValueFromJComponent();
+		if( StringUtils.isBlank(s) ) {
+			Object x = this.getDefinition().getDefaultValue();
+			if( x != null ) {
+                            value = x.toString();
+			}
+		} else {
+			value = s;
+		}
+		return value;
+	}
+        
+        @Override
+	public void initComponent() {
+            LocaleManager localeManager = PluginsLocator.getLocaleManager();
+            Set<Locale> localesSet = localeManager.getInstalledLocales();
+            DynObjectValueItem[] locales = new DynObjectValueItem[localesSet.size()];
+            int i=0;
+            for( Locale locale : localesSet ) {
+                locales[i++] = new DynObjectValueItem(
+                        locale.toString(), 
+                        localeManager.getLocaleDisplayName(locale)
+                );
+            }
+            this.contents = new JComboBox(locales);
+            if( locales.length>0 ) {
+                    this.getJComboBox().setSelectedIndex(0);
+            }
+            this.contents.addFocusListener(this);
+            if( this.getDefinition().isReadOnly() ) {
+                    this.getJComboBox().setEditable(false);
+            }
+            this.setValue(this.assignedValue);
+	}
+	
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/locale/JDynFormFieldLocaleFactory.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/locale/JDynFormFieldLocaleFactory.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/locale/JDynFormFieldLocaleFactory.java	(revision 347)
@@ -0,0 +1,76 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright (C) 2007-2013 gvSIG Association.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * For any additional information, do not hesitate to contact us
+ * at info AT gvsig.com, or visit our website www.gvsig.com.
+ */
+package org.gvsig.customize.locale;
+
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dataTypes.DataTypes;
+import org.gvsig.tools.dynform.spi.DynFormSPILocator;
+import org.gvsig.tools.dynform.spi.DynFormSPIManager;
+import org.gvsig.tools.dynform.spi.JDynFormFieldFactory;
+import org.gvsig.tools.dynobject.DynField;
+import org.gvsig.tools.dynobject.DynObject;
+import org.gvsig.tools.dynobject.DynObjectManager;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.service.Service;
+import org.gvsig.tools.service.ServiceException;
+import org.gvsig.tools.service.spi.ServiceManager;
+
+public class JDynFormFieldLocaleFactory implements JDynFormFieldFactory {
+
+	private String name = null;
+	private DynStruct parametersDefinition = null;
+	
+	public String getName() {
+		if( name == null ) {
+			DynFormSPIManager manager = DynFormSPILocator.getDynFormSPIManager();
+			this.name = manager.makeServiceName(DataTypes.STRING, "locale");
+		}
+		return this.name;
+	}
+
+
+	public Service create(DynObject parameters, ServiceManager serviceManager)
+			throws ServiceException {
+		return new JDynFormFieldLocale(parameters, serviceManager);
+	}
+
+	public DynObject createParameters() {
+		return ToolsLocator.getDynObjectManager().createDynObject(parametersDefinition);
+	}
+
+	public void initialize() {
+		if( this.parametersDefinition == null ) {
+			String serviceName = this.getName();
+    		DynObjectManager manager = ToolsLocator.getDynObjectManager();
+    		this.parametersDefinition = manager.createDynClass(
+    				serviceName, "Parameters definition for locale fields in dynamic forms");
+    		this.parametersDefinition.addDynFieldObject(DynFormSPIManager.FIELD_FIELDDEFINITION)
+				.setClassOfValue(DynField.class).setMandatory(true);
+    		this.parametersDefinition.addDynFieldObject(DynFormSPIManager.FIELD_VALUE)
+				.setClassOfValue(DynField.class).setMandatory(true);
+		}
+	}
+
+
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionParametersPanelLayout.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionParametersPanelLayout.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionParametersPanelLayout.java	(revision 347)
@@ -0,0 +1,334 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.gvsig.customize;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class DistributionParametersPanelLayout extends javax.swing.JPanel {
+
+    /**
+     * Creates new form DistributionPanelLayout
+     */
+    public DistributionParametersPanelLayout() {
+        initComponents();
+    }
+
+    /**
+     * This method is called from within the constructor to initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+        java.awt.GridBagConstraints gridBagConstraints;
+
+        filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(2, 2), new java.awt.Dimension(2, 2), new java.awt.Dimension(2, 2));
+        filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(2, 2), new java.awt.Dimension(2, 2), new java.awt.Dimension(2, 2));
+        jTabbedPane1 = new javax.swing.JTabbedPane();
+        jPanel2 = new javax.swing.JPanel();
+        filler3 = new javax.swing.Box.Filler(new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4));
+        lblOnlineInstaller = new javax.swing.JLabel();
+        txtOnlineInstaller = new javax.swing.JTextField();
+        butBrowseOnlineInstaller = new javax.swing.JButton();
+        lblDistributionId = new javax.swing.JLabel();
+        txtDistributionId = new javax.swing.JTextField();
+        lblPackageSet = new javax.swing.JLabel();
+        txtPackageSet = new javax.swing.JTextField();
+        butBrowsePackageSet = new javax.swing.JButton();
+        lblWorkingFolder = new javax.swing.JLabel();
+        txtWorkingFolder = new javax.swing.JTextField();
+        butBrowseWorkingFolder = new javax.swing.JButton();
+        lblIncludeCustomizePlugin = new javax.swing.JLabel();
+        chkIncludeCustomizePlugin = new javax.swing.JCheckBox();
+        filler7 = new javax.swing.Box.Filler(new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4));
+        filler4 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
+        jPanel1 = new javax.swing.JPanel();
+        filler6 = new javax.swing.Box.Filler(new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4));
+        butAddPackage = new javax.swing.JButton();
+        butRemovePackage = new javax.swing.JButton();
+        jScrollPane2 = new javax.swing.JScrollPane();
+        lstPackages = new javax.swing.JList();
+        lblPackagesToInclude = new javax.swing.JLabel();
+        lblCheckToInstallByDefault = new javax.swing.JLabel();
+        filler9 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
+        filler10 = new javax.swing.Box.Filler(new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4));
+        butCheckAll = new javax.swing.JButton();
+        butUncheckAll = new javax.swing.JButton();
+        butClose = new javax.swing.JButton();
+        butCreate = new javax.swing.JButton();
+        filler5 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 0));
+        lblMessages = new javax.swing.JLabel();
+
+        java.awt.GridBagLayout layout = new java.awt.GridBagLayout();
+        layout.columnWidths = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0};
+        layout.rowHeights = new int[] {0, 5, 0, 5, 0, 5, 0};
+        setLayout(layout);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 8;
+        gridBagConstraints.gridy = 6;
+        add(filler1, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 0;
+        gridBagConstraints.gridy = 0;
+        add(filler6, gridBagConstraints);
+
+        java.awt.GridBagLayout jPanel2Layout = new java.awt.GridBagLayout();
+        jPanel2Layout.columnWidths = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0};
+        jPanel2Layout.rowHeights = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0};
+        jPanel2.setLayout(jPanel2Layout);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 0;
+        gridBagConstraints.gridy = 0;
+        jPanel2.add(filler3, gridBagConstraints);
+
+        lblOnlineInstaller.setText("Online installer");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 4;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        jPanel2.add(lblOnlineInstaller, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 4;
+        gridBagConstraints.gridwidth = 5;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.weightx = 0.1;
+        jPanel2.add(txtOnlineInstaller, gridBagConstraints);
+
+        butBrowseOnlineInstaller.setText("Browse...");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 10;
+        gridBagConstraints.gridy = 4;
+        jPanel2.add(butBrowseOnlineInstaller, gridBagConstraints);
+
+        lblDistributionId.setText("Distribution id");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 2;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        jPanel2.add(lblDistributionId, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 2;
+        gridBagConstraints.gridwidth = 7;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.weightx = 0.5;
+        jPanel2.add(txtDistributionId, gridBagConstraints);
+
+        lblPackageSet.setText("Package set");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 6;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        jPanel2.add(lblPackageSet, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 6;
+        gridBagConstraints.gridwidth = 5;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.weightx = 0.1;
+        jPanel2.add(txtPackageSet, gridBagConstraints);
+
+        butBrowsePackageSet.setText("Browse...");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 10;
+        gridBagConstraints.gridy = 6;
+        jPanel2.add(butBrowsePackageSet, gridBagConstraints);
+
+        lblWorkingFolder.setText("Working folder");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 8;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        jPanel2.add(lblWorkingFolder, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 8;
+        gridBagConstraints.gridwidth = 5;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.weightx = 0.1;
+        jPanel2.add(txtWorkingFolder, gridBagConstraints);
+
+        butBrowseWorkingFolder.setText("Browse...");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 10;
+        gridBagConstraints.gridy = 8;
+        jPanel2.add(butBrowseWorkingFolder, gridBagConstraints);
+
+        lblIncludeCustomizePlugin.setText("Include Customize Plugin");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 10;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        jPanel2.add(lblIncludeCustomizePlugin, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 10;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        jPanel2.add(chkIncludeCustomizePlugin, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 12;
+        gridBagConstraints.gridy = 12;
+        jPanel2.add(filler7, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 0;
+        gridBagConstraints.gridy = 12;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
+        gridBagConstraints.weighty = 0.4;
+        jPanel2.add(filler4, gridBagConstraints);
+
+        jTabbedPane1.addTab("General", jPanel2);
+
+        java.awt.GridBagLayout jPanel1Layout = new java.awt.GridBagLayout();
+        jPanel1Layout.columnWidths = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0};
+        jPanel1Layout.rowHeights = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0};
+        jPanel1.setLayout(jPanel1Layout);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 0;
+        gridBagConstraints.gridy = 0;
+        jPanel1.add(filler6, gridBagConstraints);
+
+        butAddPackage.setText("Add");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 8;
+        gridBagConstraints.gridy = 8;
+        jPanel1.add(butAddPackage, gridBagConstraints);
+
+        butRemovePackage.setText("Remove");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 10;
+        gridBagConstraints.gridy = 8;
+        jPanel1.add(butRemovePackage, gridBagConstraints);
+
+        jScrollPane2.setViewportView(lstPackages);
+
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 6;
+        gridBagConstraints.gridwidth = 9;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+        gridBagConstraints.weightx = 0.1;
+        gridBagConstraints.weighty = 0.1;
+        jPanel1.add(jScrollPane2, gridBagConstraints);
+
+        lblPackagesToInclude.setText("Packages to include in the distribution");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 2;
+        gridBagConstraints.gridwidth = 5;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        jPanel1.add(lblPackagesToInclude, gridBagConstraints);
+
+        lblCheckToInstallByDefault.setText("Check the pacakges to install by default");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 4;
+        gridBagConstraints.gridwidth = 5;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        jPanel1.add(lblCheckToInstallByDefault, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 8;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.weightx = 0.2;
+        jPanel1.add(filler9, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 12;
+        gridBagConstraints.gridy = 10;
+        jPanel1.add(filler10, gridBagConstraints);
+
+        butCheckAll.setText("Check all");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 6;
+        gridBagConstraints.gridy = 8;
+        jPanel1.add(butCheckAll, gridBagConstraints);
+
+        butUncheckAll.setText("Uncheck all");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 8;
+        jPanel1.add(butUncheckAll, gridBagConstraints);
+
+        jTabbedPane1.addTab("Package set", jPanel1);
+
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 2;
+        gridBagConstraints.gridwidth = 5;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+        gridBagConstraints.weightx = 0.1;
+        gridBagConstraints.weighty = 0.1;
+        add(jTabbedPane1, gridBagConstraints);
+        jTabbedPane1.getAccessibleContext().setAccessibleName("tab2");
+
+        butClose.setText("Close");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 4;
+        add(butClose, gridBagConstraints);
+
+        butCreate.setText("Create");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 6;
+        gridBagConstraints.gridy = 4;
+        add(butCreate, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 4;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.weightx = 0.3;
+        add(filler5, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 6;
+        gridBagConstraints.gridwidth = 5;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        add(lblMessages, gridBagConstraints);
+    }// </editor-fold>//GEN-END:initComponents
+
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    protected javax.swing.JButton butAddPackage;
+    protected javax.swing.JButton butBrowseOnlineInstaller;
+    protected javax.swing.JButton butBrowsePackageSet;
+    protected javax.swing.JButton butBrowseWorkingFolder;
+    protected javax.swing.JButton butCheckAll;
+    protected javax.swing.JButton butClose;
+    protected javax.swing.JButton butCreate;
+    protected javax.swing.JButton butRemovePackage;
+    protected javax.swing.JButton butUncheckAll;
+    protected javax.swing.JCheckBox chkIncludeCustomizePlugin;
+    protected javax.swing.Box.Filler filler1;
+    protected javax.swing.Box.Filler filler10;
+    protected javax.swing.Box.Filler filler2;
+    protected javax.swing.Box.Filler filler3;
+    protected javax.swing.Box.Filler filler4;
+    protected javax.swing.Box.Filler filler5;
+    protected javax.swing.Box.Filler filler6;
+    protected javax.swing.Box.Filler filler7;
+    protected javax.swing.Box.Filler filler9;
+    protected javax.swing.JPanel jPanel1;
+    protected javax.swing.JPanel jPanel2;
+    protected javax.swing.JScrollPane jScrollPane2;
+    protected javax.swing.JTabbedPane jTabbedPane1;
+    protected javax.swing.JLabel lblCheckToInstallByDefault;
+    protected javax.swing.JLabel lblDistributionId;
+    protected javax.swing.JLabel lblIncludeCustomizePlugin;
+    protected javax.swing.JLabel lblMessages;
+    protected javax.swing.JLabel lblOnlineInstaller;
+    protected javax.swing.JLabel lblPackageSet;
+    protected javax.swing.JLabel lblPackagesToInclude;
+    protected javax.swing.JLabel lblWorkingFolder;
+    protected javax.swing.JList lstPackages;
+    protected javax.swing.JTextField txtDistributionId;
+    protected javax.swing.JTextField txtOnlineInstaller;
+    protected javax.swing.JTextField txtPackageSet;
+    protected javax.swing.JTextField txtWorkingFolder;
+    // End of variables declaration//GEN-END:variables
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionParametersPanel.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionParametersPanel.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/DistributionParametersPanel.java	(revision 347)
@@ -0,0 +1,525 @@
+package org.gvsig.customize;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.file.DirectoryIteratorException;
+import java.nio.file.DirectoryStream;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import javax.swing.DefaultListModel;
+import javax.swing.JTextField;
+import javax.swing.ListModel;
+import javax.swing.ListSelectionModel;
+import javax.swing.SwingUtilities;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.BooleanUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.gvsig.andami.PluginServices;
+import org.gvsig.andami.PluginsLocator;
+import org.gvsig.andami.PluginsManager;
+import org.gvsig.app.ApplicationLocator;
+import org.gvsig.app.ApplicationManager;
+import org.gvsig.tools.dynobject.DynObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class DistributionParametersPanel extends DistributionParametersPanelLayout implements MessageBar {
+
+    private static final Logger logger = LoggerFactory.getLogger(DistributionParametersPanel.class);
+
+    private List<ActionListener> listeners = new ArrayList<ActionListener>();
+    private final DynObject pluginProperties;
+    private final PluginServices plugin;
+    private JListWithCheckbox lchkPackages;
+    private Set<String> defaultPackages = new HashSet<String>();
+
+    public DistributionParametersPanel() {
+        super();
+        PluginsManager pluginManager = PluginsLocator.getManager();
+        this.plugin = pluginManager.getPlugin(CustomizeExtension.class);
+        this.pluginProperties = plugin.getPluginProperties();
+        this.initComponents();
+    }
+
+    private String getPropertyPath(String name) {
+        File f = (File) pluginProperties.getDynValue(name);
+        if (f == null) {
+            return "";
+        }
+        return f.getAbsolutePath();
+    }
+
+    private void initComponents() {
+        this.lchkPackages = new JListWithCheckbox(this.lstPackages);
+
+        this.setCloseAndCreateVisible(false);
+        this.txtOnlineInstaller.setEditable(false);
+        this.txtPackageSet.setEditable(false);
+        this.txtWorkingFolder.setEditable(false);
+        this.chkIncludeCustomizePlugin.setSelected(false);
+        loadFormValues();
+
+        this.butBrowseOnlineInstaller.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent ae) {
+                doBrowseFile(getOnlineInstaller(), "Select the online installer", txtOnlineInstaller);
+            }
+        });
+        this.butBrowsePackageSet.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent ae) {
+                doBrowseFile(getPackageSetFolder(), "Select the package set", txtPackageSet);
+                unzipPackagset();
+            }
+        });
+        this.butBrowseWorkingFolder.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent ae) {
+                doBrowseFolder(getWorkingFolder(), "Select the working folder", txtWorkingFolder);
+                unzipPackagset();
+            }
+        });
+        this.butClose.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent ae) {
+                doClose();
+            }
+        });
+        this.butCreate.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent ae) {
+                doCreate();
+            }
+        });
+        this.butAddPackage.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent ae) {
+                doAddPackage();
+            }
+        });
+        this.butRemovePackage.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent ae) {
+                doRemovePackage();
+            }
+        });
+        this.lchkPackages.addChecksListener(new ListSelectionListener() {
+            @Override
+            public void valueChanged(ListSelectionEvent lse) {
+                doChecksValueChanged(lse);
+            }
+        });
+        this.butCheckAll.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent ae) {
+                doCheckAll();
+            }
+        });
+        this.butUncheckAll.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent ae) {
+                doUncheckAll();
+            }
+        });
+
+    }
+
+    private void doCheckAll() {
+        ListModel model = this.lchkPackages.getModel();
+        this.lchkPackages.getCheckedModel().addSelectionInterval(0, model.getSize() - 1);
+        for (int i = 0; i < model.getSize(); i++) {
+            String filename = (String) model.getElementAt(i);
+            String code = getPackageCode(filename);
+            this.defaultPackages.add(code);
+        }
+    }
+
+    private void doUncheckAll() {
+        this.lchkPackages.getCheckedModel().clearSelection();
+        this.defaultPackages.clear();
+    }
+
+    private void doChecksValueChanged(ListSelectionEvent lse) {
+        ListSelectionModel checkedsModel = this.lchkPackages.getCheckedModel();
+        ListModel model = this.lchkPackages.getModel();
+        for (int i = lse.getFirstIndex(); i <= lse.getLastIndex(); i++) {
+            String packageCode = getPackageCode((String) model.getElementAt(i));
+            if (checkedsModel.isSelectedIndex(i)) {
+                this.defaultPackages.add(packageCode);
+            } else {
+                this.defaultPackages.remove(packageCode);
+            }
+        }
+    }
+
+    private void loadFormValues() {
+        this.txtDistributionId.setText((String) pluginProperties.getDynValue("distributionID"));
+        this.txtOnlineInstaller.setText(getPropertyPath("onlineInstaller"));
+        this.txtPackageSet.setText(getPropertyPath("packageSet"));
+        this.txtWorkingFolder.setText(getPropertyPath("WorkingFolder"));
+        this.chkIncludeCustomizePlugin.setSelected(BooleanUtils.isTrue((Boolean) pluginProperties.getDynValue("includeCustomizePlugin")));
+        unzipPackagset();
+        fillPackageList();
+    }
+
+    private void saveFormValues() {
+        pluginProperties.setDynValue("onlineInstaller", getOnlineInstaller());
+        pluginProperties.setDynValue("packageSet", getPackageSet());
+        pluginProperties.setDynValue("WorkingFolder", getWorkingFolder());
+        pluginProperties.setDynValue("distributionID", getDistributionId());
+        pluginProperties.setDynValue("includeCustomizePlugin", getIncludeCustomizePlugin());
+        plugin.savePluginProperties();
+    }
+
+    private void updateDefaultPackagesFile() {
+        ArrayList lines = new ArrayList();
+        lines.addAll(this.defaultPackages);
+        if (this.getIncludeCustomizePlugin()) {
+            lines.add(this.plugin.getPluginName());
+        }
+        Collections.sort(lines);
+        try {
+            FileUtils.writeLines(
+                    new File(this.getPackageSetFolder(), "defaultPackages"),
+                    lines
+            );
+        } catch (IOException ex) {
+            this.message("Can't write defaultPackages. " + ex.getMessage());
+            logger.warn("Can't write defaultPackages.", ex);
+        }
+    }
+
+    private void doCreate() {
+        saveFormValues();
+        updateDefaultPackagesFile();
+        this.fireActionPerformed();
+    }
+
+    private void doClose() {
+        saveFormValues();
+        this.setVisible(false);
+    }
+
+    private void doBrowseFile(File currentValue, String label, JTextField field) {
+        ApplicationManager application = ApplicationLocator.getManager();
+        File folder = currentValue;
+        if (folder != null) {
+            folder = folder.getParentFile();
+        }
+        File[] folders = application.showOpenFileDialog(label, folder);
+        if (folders != null && folders.length == 1) {
+            field.setText(folders[0].getAbsolutePath());
+        }
+    }
+
+    private void doBrowseFolder(File currentValue, String label, JTextField field) {
+        ApplicationManager application = ApplicationLocator.getManager();
+        File folder = currentValue;
+        if (folder != null) {
+            folder = folder.getParentFile();
+        }
+        File[] folders = application.showOpenDirectoryDialog(label, folder);
+        if (folders != null && folders.length == 1) {
+            field.setText(folders[0].getAbsolutePath());
+        }
+    }
+
+    public void message(final String msg) {
+        if (!SwingUtilities.isEventDispatchThread()) {
+            SwingUtilities.invokeLater(new Runnable() {
+                @Override
+                public void run() {
+                    message(msg);
+                }
+            });
+            return;
+        }
+        this.lblMessages.setText("<html>" + msg.replace("\n", "<br>\n") + "</html>");
+    }
+
+    public File getOnlineInstaller() {
+        String path = this.txtOnlineInstaller.getText();
+        if (StringUtils.isBlank(path)) {
+            return null;
+        }
+        return new File(path);
+    }
+
+    private File getPackageSet() {
+        String path = this.txtPackageSet.getText();
+        if (StringUtils.isBlank(path)) {
+            return null;
+        }
+        return new File(path);
+    }
+
+    public File getPackageSetFolder() {
+        File packagesetFolder = new File(getWorkingFolder(), "packages");
+        return packagesetFolder;
+    }
+
+    public File getWorkingFolder() {
+        String path = this.txtWorkingFolder.getText();
+        if (StringUtils.isBlank(path)) {
+            return null;
+        }
+        return new File(path);
+    }
+
+    public String getDistributionId() {
+        String id = this.txtDistributionId.getText();
+        if (StringUtils.isBlank(id)) {
+            return null;
+        }
+        return id.trim();
+    }
+
+    public boolean getIncludeCustomizePlugin() {
+        return this.chkIncludeCustomizePlugin.isSelected();
+    }
+
+    public void setCloseAndCreateVisible(boolean visible) {
+        this.butClose.setVisible(visible);
+        this.butCreate.setVisible(visible);
+    }
+
+    public void setCloseAndCreateEnabled(final boolean enabled) {
+        if (!SwingUtilities.isEventDispatchThread()) {
+            SwingUtilities.invokeLater(new Runnable() {
+                @Override
+                public void run() {
+                    setCloseAndCreateEnabled(enabled);
+                }
+            });
+            return;
+        }
+        this.butClose.setEnabled(enabled);
+        this.butCreate.setEnabled(enabled);
+    }
+
+    public void addActionListener(ActionListener l) {
+        if (this.listeners.contains(l)) {
+            return;
+        }
+        this.listeners.add(l);
+    }
+
+    protected void fireActionPerformed() {
+        ActionEvent event = new ActionEvent(this, 0, "create_distribution");
+
+        for (ActionListener listener : listeners) {
+            try {
+                listener.actionPerformed(event);
+            } catch (Exception ex) {
+                logger.warn("Error triggering event", ex);
+            }
+        }
+    }
+
+    private void loadDefaultPackages(File packages) {
+        message("Loading default packages information");
+        try {
+            this.defaultPackages = new HashSet<String>();
+
+            List<String> lines = FileUtils.readLines(packages);
+            this.defaultPackages.clear();
+            for (String line : lines) {
+                line = line.trim();
+                if (line.startsWith("#") || line.startsWith(";")) {
+                    continue;
+                }
+                this.defaultPackages.add(line.toLowerCase());
+            }
+        } catch (IOException ex) {
+            logger.warn("Can't load defaultPackages from '" + packages.getAbsolutePath() + "'.", ex);
+        } finally {
+            message("");
+        }
+    }
+
+    private String getPackageCode(String filename) {
+        if (StringUtils.isEmpty(filename)) {
+            return filename;
+        }
+        String[] ss = filename.split("-");
+        if (ss.length > 3) {
+            return ss[3].toLowerCase();
+        }
+        return "";
+    }
+
+    private void fillPackageList() {
+        File f = this.getWorkingFolder();
+        if (f == null) {
+            return;
+        }
+        DefaultListModel model = new DefaultListModel();
+        int first = this.lchkPackages.getFirstVisibleIndex();
+        File packagesetFolder = new File(f, "packages");
+        if (packagesetFolder.exists()) {
+            File[] packagesArray = packagesetFolder.listFiles();
+            List<File> packages = Arrays.asList(packagesArray);
+            Collections.sort(packages);
+            for (File package1 : packages) {
+                String filename = package1.getName();
+                if (!"defaultPackages".equalsIgnoreCase(filename)) {
+                    model.addElement(filename);
+                }
+            }
+        }
+        this.lchkPackages.setModel(model);
+        updateCheckeds();
+        this.lchkPackages.ensureIndexIsVisible(first);
+    }
+
+    private void updateCheckeds() {
+        this.lchkPackages.getCheckedModel().clearSelection();
+        ListModel model = this.lchkPackages.getModel();
+        for (int i = 0; i < model.getSize(); i++) {
+            String filename = (String) model.getElementAt(i);
+            String code = getPackageCode(filename);
+            if (this.defaultPackages.contains(code)) {
+                this.lchkPackages.getCheckedModel().addSelectionInterval(i, i);
+            }
+        }
+    }
+
+    private void unzipPackagset() {
+        final Runnable updategui = new Runnable() {
+
+            @Override
+            public void run() {
+                fillPackageList();
+                updateCheckeds();
+                lchkPackages.setEnabled(true);
+                butBrowsePackageSet.setEnabled(true);
+                butAddPackage.setEnabled(true);
+                butRemovePackage.setEnabled(true);
+                butClose.setEnabled(true);
+                butCreate.setEnabled(true);
+            }
+        };
+        final Runnable task = new Runnable() {
+
+            @Override
+            public void run() {
+                FileSystem zipfs = null;
+                try {
+                    File packageSet = getPackageSet();
+                    if (packageSet == null) {
+                        return;
+                    }
+                    if (getWorkingFolder() == null) {
+                        return;
+                    }
+
+                    message("Updating package set");
+                    File packagesetFolder = getPackageSetFolder();
+                    if (packagesetFolder.exists()) {
+                        try {
+                            FileUtils.deleteDirectory(packagesetFolder);
+                        } catch (IOException ex) {
+                            message("Can't delete 'packages' directory. " + ex.getMessage());
+                        }
+                    }
+                    packagesetFolder.mkdir();
+
+                    Map<String, String> env = new HashMap<>();
+                    env.put("create", "true");
+
+                    Path zippath = Paths.get(packageSet.getAbsolutePath());
+                    zipfs = FileSystems.newFileSystem(zippath, null);
+                    Iterable<Path> dirs = zipfs.getRootDirectories();
+                    for (Path name : dirs) {
+                        DirectoryStream<Path> stream = Files.newDirectoryStream(name);
+                        for (Path file : stream) {
+                            FileOutputStream fos = null;
+                            try {
+                                message("Extracting " + file.getFileName() + "...");
+                                fos = new FileOutputStream(new File(packagesetFolder, file.getFileName().toString()));
+                                Files.copy(file, fos);
+                            } catch (IOException | DirectoryIteratorException x) {
+                                // Do nothing
+                            } finally {
+                                if (fos != null) {
+                                    IOUtils.closeQuietly(fos);
+                                }
+                            }
+                        }
+                    }
+                    loadDefaultPackages(new File(packagesetFolder, "defaultPackages"));
+                } catch (Exception ex) {
+
+                } finally {
+                    message("");
+                    if (zipfs != null) {
+                        try {
+                            zipfs.close();
+                        } catch (IOException ex) {
+                        }
+                    }
+                    SwingUtilities.invokeLater(updategui);
+                }
+            }
+        };
+        File packageSet = getPackageSet();
+        if (packageSet == null) {
+            return;
+        }
+        lchkPackages.setEnabled(false);
+        butBrowsePackageSet.setEnabled(false);
+        butAddPackage.setEnabled(false);
+        butRemovePackage.setEnabled(false);
+        butClose.setEnabled(false);
+        butCreate.setEnabled(false);
+        Thread thread = new Thread(task);
+        thread.start();
+    }
+
+    private void doRemovePackage() {
+        List<String> filenames = this.lchkPackages.getSelectedValuesList();
+        if (filenames == null || filenames.isEmpty()) {
+            return;
+        }
+        File packagesetFolder = new File(getWorkingFolder(), "packages");
+        for (String filename : filenames) {
+            File filetoremove = new File(packagesetFolder, filename);
+            filetoremove.delete();
+        }
+        fillPackageList();
+    }
+
+    private void doAddPackage() {
+        ApplicationManager application = ApplicationLocator.getManager();
+        File[] files = application.showOpenFileDialog("Select package to add", this.getWorkingFolder());
+        if (files == null) {
+            return;
+        }
+        File packagesetFolder = new File(getWorkingFolder(), "packages");
+        for (File file : files) {
+            try {
+                FileUtils.copyFileToDirectory(file, packagesetFolder);
+            } catch (IOException ex) {
+                this.message("Can't copy package to working folder. " + ex.getMessage());
+            }
+        }
+        fillPackageList();
+    }
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/InstallPackagesPanelLayout.java
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/InstallPackagesPanelLayout.java	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/src/main/java/org/gvsig/customize/InstallPackagesPanelLayout.java	(revision 347)
@@ -0,0 +1,111 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.gvsig.customize;
+
+/**
+ *
+ * @author jjdelcerro
+ */
+public class InstallPackagesPanelLayout extends javax.swing.JPanel {
+
+    /**
+     * Creates new form InstallPackagesPanelLayout
+     */
+    public InstallPackagesPanelLayout() {
+        initComponents();
+    }
+
+    /**
+     * This method is called from within the constructor to initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+        java.awt.GridBagConstraints gridBagConstraints;
+
+        lblTitle = new javax.swing.JLabel();
+        filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4));
+        filler2 = new javax.swing.Box.Filler(new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4), new java.awt.Dimension(4, 4));
+        pnlProgress = new javax.swing.JPanel();
+        butClose = new javax.swing.JButton();
+        filler3 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 32767));
+        lblMessage = new javax.swing.JLabel();
+
+        setPreferredSize(new java.awt.Dimension(400, 115));
+        java.awt.GridBagLayout layout = new java.awt.GridBagLayout();
+        layout.columnWidths = new int[] {0, 5, 0, 5, 0};
+        layout.rowHeights = new int[] {0, 5, 0, 5, 0, 5, 0, 5, 0, 5, 0};
+        setLayout(layout);
+
+        lblTitle.setText("Configuring installation");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 2;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        gridBagConstraints.weightx = 0.3;
+        add(lblTitle, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 0;
+        add(filler1, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 0;
+        gridBagConstraints.gridy = 0;
+        add(filler2, gridBagConstraints);
+
+        pnlProgress.setPreferredSize(new java.awt.Dimension(300, 80));
+
+        javax.swing.GroupLayout pnlProgressLayout = new javax.swing.GroupLayout(pnlProgress);
+        pnlProgress.setLayout(pnlProgressLayout);
+        pnlProgressLayout.setHorizontalGroup(
+            pnlProgressLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 382, Short.MAX_VALUE)
+        );
+        pnlProgressLayout.setVerticalGroup(
+            pnlProgressLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 80, Short.MAX_VALUE)
+        );
+
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 4;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
+        add(pnlProgress, gridBagConstraints);
+
+        butClose.setText("Close");
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 8;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
+        add(butClose, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 4;
+        gridBagConstraints.gridy = 10;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.VERTICAL;
+        gridBagConstraints.weighty = 0.1;
+        add(filler3, gridBagConstraints);
+        gridBagConstraints = new java.awt.GridBagConstraints();
+        gridBagConstraints.gridx = 2;
+        gridBagConstraints.gridy = 6;
+        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
+        gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
+        add(lblMessage, gridBagConstraints);
+    }// </editor-fold>//GEN-END:initComponents
+
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    protected javax.swing.JButton butClose;
+    protected javax.swing.Box.Filler filler1;
+    protected javax.swing.Box.Filler filler2;
+    protected javax.swing.Box.Filler filler3;
+    protected javax.swing.JLabel lblMessage;
+    protected javax.swing.JLabel lblTitle;
+    protected javax.swing.JPanel pnlProgress;
+    // End of variables declaration//GEN-END:variables
+}
Index: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/pom.xml
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/pom.xml	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin/pom.xml	(revision 347)
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.gvsig.customize.app.mainplugin</artifactId>
+    <packaging>jar</packaging>
+    <name>${project.artifactId}</name>
+    <description>Support to customize gvSIG distribution</description>
+
+    <parent>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.customize.app</artifactId>
+        <version>1.2.58</version>
+    </parent>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.swinglabs.swingx</groupId>
+            <artifactId>swingx-all</artifactId>
+            <version>1.6.5-1</version>
+        </dependency>      
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <scope>compile</scope>
+        </dependency>      
+        <dependency>
+            <groupId>commons-configuration</groupId>
+            <artifactId>commons-configuration</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <scope>compile</scope>
+        </dependency>      
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.tools.lib</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.andami</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.gvsig</groupId>
+            <artifactId>org.gvsig.app.mainplugin</artifactId>
+            <scope>compile</scope>
+        </dependency>     
+    </dependencies>
+    <build>
+        <plugins>
+      
+            <plugin>
+                <!-- Set java compatibility -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.7</source>
+                    <target>1.7</target>
+                    <encoding>ISO-8859-1</encoding>
+                </configuration>
+            </plugin>
+<!--
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>animal-sniffer-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>check-java-api</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                        <configuration>
+                            <skip>false</skip>
+                            <signature>
+                                <groupId>org.codehaus.mojo.signature</groupId>
+                                <artifactId>java17</artifactId>
+                                <version>1.0</version>
+                            </signature>
+                            <ignores>
+                                <ignore>net.sourceforge.cobertura.coveragedata.TouchCollector</ignore>
+                            </ignores>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>      
+-->
+        </plugins>
+    </build> 
+   
+    <properties>
+        <!-- Package info property values -->
+        <!-- Default values in org.gvsig.desktop -->
+        <gvsig.package.info.javaVM>j1_7</gvsig.package.info.javaVM>
+        <gvsig.package.info.name>Customize gvSIG installation</gvsig.package.info.name>
+        <gvsig.package.info.state>testing</gvsig.package.info.state>
+        <gvsig.package.info.official>true</gvsig.package.info.official>
+        <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-desktop-customize/pool/</gvsig.package.info.poolURL>
+        <gvsig.package.info.operatingSystem>all</gvsig.package.info.operatingSystem>
+        <gvsig.package.info.architecture>all</gvsig.package.info.architecture>
+    </properties>
+  
+
+</project>

Property changes on: tags/org.gvsig.customize.app-1.2.58/org.gvsig.customize.app.mainplugin
___________________________________________________________________
Added: svn:ignore
   + target
.pom.xml.kate-swp


Index: tags/org.gvsig.customize.app-1.2.58/pom.xml
===================================================================
--- tags/org.gvsig.customize.app-1.2.58/pom.xml	(revision 0)
+++ tags/org.gvsig.customize.app-1.2.58/pom.xml	(revision 347)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>org.gvsig.customize.app</artifactId>
+  <packaging>pom</packaging>
+  <name>${project.artifactId}</name>
+  <version>1.2.58</version>
+  <description>Customize some setting of gvSIG desktop</description>
+  <parent>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.desktop</artifactId>
+      <version>2.0.225</version>
+  </parent>
+  <url>https://devel.gvsig.org/redmine/projects/gvsig-desktop-customize</url>
+
+  <scm>
+      <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-desktop-customize/tags/org.gvsig.customize.app-1.2.58</connection>
+      <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-desktop-customize/tags/org.gvsig.customize.app-1.2.58</developerConnection>
+      <url>https://devel.gvsig.org/redmine/projects/gvsig-desktop-customize/repository/show/tags/org.gvsig.customize.app-1.2.58</url>
+  </scm>
+    <repositories>
+      <repository>
+        <id>gvsig-public-http-repository</id>
+        <name>gvSIG maven public HTTP repository</name>
+        <url>http://devel.gvsig.org/m2repo/j2se</url>
+        <releases>
+          <enabled>true</enabled>
+          <updatePolicy>daily</updatePolicy>
+          <checksumPolicy>warn</checksumPolicy>
+        </releases>
+        <snapshots>
+          <enabled>true</enabled>
+          <updatePolicy>daily</updatePolicy>
+          <checksumPolicy>warn</checksumPolicy>
+        </snapshots>
+      </repository>
+    </repositories>
+      
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-release-plugin</artifactId>
+				<configuration>
+					<tagBase>https://devel.gvsig.org/svn/gvsig-desktop-customize/tags</tagBase>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+  <modules>
+    <module>org.gvsig.customize.app.mainplugin</module>
+  </modules>
+
+</project>
