Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/buildNumber.properties
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/buildNumber.properties	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/buildNumber.properties	(revision 2613)
@@ -0,0 +1,2 @@
+#Sun Mar 31 04:23:30 CEST 2019
+buildNumber=24
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml	(revision 2613)
@@ -0,0 +1,53 @@
+<!-- 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>
+
+
+  <dependencySets>
+    <dependencySet>
+      <useProjectArtifact>false</useProjectArtifact>
+      <useTransitiveDependencies>false</useTransitiveDependencies>
+      <outputDirectory>lib</outputDirectory>
+      <includes>
+        <include>org.gvsig:org.gvsig.legend.aggregate.lib.api</include>
+        <include>org.gvsig:org.gvsig.legend.aggregate.lib.impl</include>
+        <include>org.gvsig:org.gvsig.legend.aggregate.swing.api</include>
+        <include>org.gvsig:org.gvsig.legend.aggregate.swing.impl</include>
+        <include>org.jfree:jcommon</include>
+      </includes>
+    </dependencySet>
+  </dependencySets>
+
+</assembly>
+
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/java/org/gvsig/legend/aggregate/app/AggregateLegendTextExtension.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/java/org/gvsig/legend/aggregate/app/AggregateLegendTextExtension.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/java/org/gvsig/legend/aggregate/app/AggregateLegendTextExtension.java	(revision 2613)
@@ -0,0 +1,29 @@
+
+package org.gvsig.legend.aggregate.app;
+
+import org.gvsig.andami.IconThemeHelper;
+import org.gvsig.andami.plugins.Extension;
+
+
+public class AggregateLegendTextExtension extends Extension {
+
+    @Override
+    public void initialize() {
+        IconThemeHelper.registerIcon("legend", "legend-overview-vectorial-aggregated", this);
+    }
+
+    @Override
+    public void execute(String string) {
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return true;
+    }
+
+    @Override
+    public boolean isVisible() {
+        return true;
+    }
+    
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/config.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/config.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/config.xml	(revision 2613)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- 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. -->
+<plugin-config>
+  <depends plugin-name="org.gvsig.app.mainplugin" />
+  <resourceBundle name="text" />
+  <libraries library-dir="lib" />
+  <extensions>
+    <extension class-name="org.gvsig.legend.aggregate.app.AggregateLegendTextExtension"
+      description="" active="true" priority="1">
+
+      <action 
+          name="aggregatelegend-set" 
+          label="_Set_aggregated_legend" 
+          tooltip="_Set_aggregated_legend"
+          position="900700100" 
+          action-command="aggregatelegend-set"
+          accelerator=""
+      />
+
+    </extension>
+
+  </extensions>
+</plugin-config>
\ No newline at end of file
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/images/legend/legend-overview-vectorial-aggregated.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/images/legend/legend-overview-vectorial-aggregated.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/plugin-persistence.def
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/plugin-persistence.def	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/plugin-persistence.def	(revision 2613)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<!--
+Definitions of plugin persistence org.gvsig.aggregatelegend.app.mainplugin
+ -->
+<definitions>
+  <version>1.0.0</version>
+  <classes>
+    <class name="org.gvsig.legend.aggregate.app.mainplugin">
+      <extends>
+      </extends>
+      <description>Persistence of the legend of aggregate texts</description>
+      <fields>
+      </fields>
+    </class>
+  </classes>
+</definitions>  
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/i18n/text.properties
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/i18n/text.properties	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/i18n/text.properties	(revision 2613)
@@ -0,0 +1,27 @@
+_Aggregate_legend_description=Leyenda de agrupaci\u00f3n de marcadores
+_Aggregate_legend=Agrupaci\u00f3n de marcadores
+_Use_basic_cluster_mark=Usar estilo b\u00e1sico para la agrupaci\u00f3n de marcadores
+_Use_styled_cluster_mark=Usar un estilo avanzado para la agrupaci\u00f3n de marcadores
+_Symbol_size=Tama\u00f1o de simbolo
+_Outline_color=Color del contorno
+_Fill_color=Color de relleno
+_Text_color=Color de texto
+_Text_font=Fuente del texto
+_Show_bounds=Mostrar l\u00edmites
+_Style=Estilo
+_Operation=Operaci\u00f3n
+_Attribute=Atributo
+_Aditional_value=Valor adicional
+Alpha=Alpha
+Average=Media
+_Calculate_the_average_of_the_selected_attribute_for_the_grouped_features=Calcula la media del atributo seleccionado para las features agrupadas
+Count=Cuenta
+_Count_of_grouped_features=Cuenta de las features agrupadas
+Maximum=M\u00e1ximo
+_Calculate_the_maximum_of_the_selected_attribute_for_the_grouped_features=Calcula el maximo del atributo seleccionado para las features agrupadas
+Minimun=Minimo
+_Calculate_the_minimun_of_the_selected_attribute_for_the_grouped_features=Calcula el minimo del atributo seleccionado para las features agrupadas
+_Select_style=Seleccion de estilo
+Sum=Suma
+_Calculate_the_sum_of_the_selected_attribute_for_the_grouped_features=Calcula la suma del atributo seleccionado para las features agrupadas
+_Select_font=Seleccione fuente
\ No newline at end of file
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties	(revision 2613)
@@ -0,0 +1,27 @@
+_Aggregate_legend_description=Marker clustering legend
+_Aggregate_legend=Marker clustering
+_Use_basic_cluster_mark=Use basic style cluster mark
+_Use_styled_cluster_mark=Use advanced style cluster mark
+_Symbol_size=Symbol size
+_Outline_color=Outline color
+_Fill_color=Fill color
+_Text_color=Text color
+_Text_font=Text font
+_Show_bounds=Show bounds
+_Style=Style
+_Operation=Operation
+_Attribute=Attribute
+_Aditional_value=Aditional value
+Alpha=Alpha
+Average=Average
+_Calculate_the_average_of_the_selected_attribute_for_the_grouped_features=Calculate the average of the selected attribute for the grouped features
+Count=Count
+_Count_of_grouped_features=Count of grouped features
+Maximum=Maximum
+_Calculate_the_maximum_of_the_selected_attribute_for_the_grouped_features=Calculate the maximum of the selected attribute for the grouped features
+Minimun=Minimun
+_Calculate_the_minimun_of_the_selected_attribute_for_the_grouped_features=Calculate the minimun of the selected attribute for the grouped features
+_Select_style=Select style
+_Calculate_the_sum_of_the_selected_attribute_for_the_grouped_features=Calculate the sum of the selected attribute for the grouped features
+Sum=Sum
+_Select_font=Select font
\ No newline at end of file

Property changes on: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin
___________________________________________________________________
Added: svn:ignore
   + .directory


Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/pom.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/pom.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/pom.xml	(revision 2613)
@@ -0,0 +1,62 @@
+<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>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.legend.aggregate.app</artifactId>
+    <version>1.0.22</version>
+  </parent>
+  <groupId>org.gvsig</groupId>
+  <artifactId>org.gvsig.legend.aggregate.app.mainplugin</artifactId>
+  <version>1.0.22</version>
+  <name>org.gvsig.legend.aggregate.app.mainplugin</name>
+
+    <properties>
+    <!-- Package info property values -->
+    <gvsig.package.info.state>testing</gvsig.package.info.state>
+    <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge 2.4.0-A</gvsig.package.info.dependencies>
+    <gvsig.package.info.official>true</gvsig.package.info.official>
+    <gvsig.package.info.name>Vector legend: Aggregate text symbols</gvsig.package.info.name>
+    <gvsig.package.info.description>Legend for aggregate text symbols that are near.</gvsig.package.info.description>
+    <gvsig.package.info.categories>View,Vector,Symbology</gvsig.package.info.categories>
+    <gvsig.package.info.javaVM>j1_7</gvsig.package.info.javaVM>
+    <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-base-legends/pool</gvsig.package.info.poolURL>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.andami</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.legend.aggregate.swing.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.legend.aggregate.lib.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.legend.aggregate.lib.impl</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.legend.aggregate.swing.impl</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.app.mainplugin</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+        <groupId>org.jfree</groupId>
+        <artifactId>jcommon</artifactId>
+        <scope>runtime</scope>
+    </dependency>
+  </dependencies>
+</project>

Property changes on: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin
___________________________________________________________________
Added: svn:ignore
   + target


Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/pom.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/pom.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.app/pom.xml	(revision 2613)
@@ -0,0 +1,17 @@
+<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>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.legend.aggregate</artifactId>
+    <version>1.0.22</version>
+  </parent>
+  <groupId>org.gvsig</groupId>
+  <artifactId>org.gvsig.legend.aggregate.app</artifactId>
+  <packaging>pom</packaging>
+  <name>org.gvsig.legend.aggregate.app</name>
+
+  <modules>
+    <module>org.gvsig.legend.aggregate.app.mainplugin</module>
+  </modules>
+
+</project>
\ No newline at end of file
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/pom.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/pom.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/pom.xml	(revision 2613)
@@ -0,0 +1,100 @@
+<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>
+  <groupId>org.gvsig</groupId>
+  <artifactId>org.gvsig.legend.aggregate</artifactId>
+  <version>1.0.22</version>
+  <packaging>pom</packaging>
+  <name>${project.artifactId}</name>
+  <description>Legend for aggregate text symbols that are near.</description>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.desktop</artifactId>
+    <version>2.0.242</version>
+  </parent>
+
+  <url>https://devel.gvsig.org/sites/org.gvsig.legend.aggregate/${project.version}</url>
+  <scm>
+    <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22</connection>
+    <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22</developerConnection>
+    <url>https://devel.gvsig.org/redmine/projects/gvsig-base-legends/repository/show/org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22</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>
+
+  <distributionManagement>
+    <site>
+      <id>gvsig-repository</id>
+      <url>dav:https://devel.gvsig.org/download/projects/gvsig-base-legends/pool/${project.artifactId}/${project.version}</url>
+    </site>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-release-plugin</artifactId>
+        <configuration>
+          <tagBase>https://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.aggregate/tags</tagBase>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.legend.aggregate.lib.api</artifactId>
+        <version>1.0.22</version>
+      </dependency>
+      <dependency>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.legend.aggregate.lib.impl</artifactId>
+        <version>1.0.22</version>
+      </dependency>
+      <dependency>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.legend.aggregate.swing.api</artifactId>
+        <version>1.0.22</version>
+      </dependency>
+      <dependency>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.legend.aggregate.swing.impl</artifactId>
+        <version>1.0.22</version>
+      </dependency>
+      <dependency>
+        <groupId>org.gvsig</groupId>
+        <artifactId>org.gvsig.legend.aggregate.app.mainplugin</artifactId>
+        <version>1.0.22</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jfree</groupId>
+        <artifactId>jcommon</artifactId>
+        <version>1.0.24</version>
+      </dependency>
+      
+    </dependencies>
+  </dependencyManagement>
+  <modules>
+    <module>org.gvsig.legend.aggregate.lib</module>
+    <module>org.gvsig.legend.aggregate.swing</module>
+    <module>org.gvsig.legend.aggregate.app</module>
+  </modules>
+</project>
\ No newline at end of file
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/pom.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/pom.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/pom.xml	(revision 2613)
@@ -0,0 +1,15 @@
+<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>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.legend.aggregate</artifactId>
+    <version>1.0.22</version>
+  </parent>
+  <groupId>org.gvsig</groupId>
+  <artifactId>org.gvsig.legend.aggregate.lib</artifactId>
+  <packaging>pom</packaging>
+  <modules>
+    <module>org.gvsig.legend.aggregate.lib.api</module>
+    <module>org.gvsig.legend.aggregate.lib.impl</module>
+  </modules>
+</project>
\ No newline at end of file
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegend.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegend.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegend.java	(revision 2613)
@@ -0,0 +1,445 @@
+package org.gvsig.legend.aggregate.lib.impl;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Ellipse2D;
+import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import javax.swing.UIManager;
+
+import org.cresques.cts.ICoordTrans;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.fmap.dal.feature.FeatureQuery;
+import org.gvsig.fmap.dal.feature.FeatureSelection;
+import org.gvsig.fmap.dal.feature.FeatureSet;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.geom.primitive.Point;
+import org.gvsig.fmap.mapcontext.MapContextException;
+import org.gvsig.fmap.mapcontext.ViewPort;
+import org.gvsig.fmap.mapcontext.rendering.legend.LegendException;
+import org.gvsig.fmap.mapcontext.rendering.legend.events.SymbolLegendEvent;
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+import org.gvsig.fmap.mapcontext.rendering.symbols.styles.ILabelStyle;
+import org.gvsig.legend.aggregate.lib.api.AggregateLegend;
+import org.gvsig.legend.aggregate.lib.api.AggregateLegendLocator;
+import org.gvsig.legend.aggregate.lib.api.Operation;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend;
+import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.DefaultFeatureDrawnNotification;
+import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.fill.impl.SimpleFillSymbol;
+import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.line.impl.SimpleLineSymbol;
+import org.gvsig.tools.exception.BaseException;
+import org.gvsig.tools.logger.FilteredLogger;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+import org.gvsig.tools.task.Cancellable;
+import org.gvsig.tools.visitor.VisitCanceledException;
+import org.gvsig.tools.visitor.Visitor;
+
+public class DefaultAggregateLegend extends AbstractVectorialLegend implements AggregateLegend {
+
+    private static class Group {
+
+//        private final Point pointGeo;
+//        private final Rectangle2D rectangle;
+        private Operation op;
+        private final Point pointPixels;
+        private final Ellipse2D circle;
+
+        public Group(Point pointGeo, Point pointPixels, double size, Operation op) {
+            this.op = op;
+            this.op.reset();
+//            this.pointGeo = pointGeo;
+            this.pointPixels = pointPixels;
+            double d2 = size * 2;
+//            this.rectangle = new Rectangle2D.Double(pointPixels.getX() - distance, pointPixels.getY() - distance, d2, d2);
+            this.circle = new Ellipse2D.Double(pointPixels.getX() - size, pointPixels.getY() - size, d2, d2);
+        }
+
+        public boolean contains(Point pointPixels) {
+//            return this.rectangle.contains(pointPixels.getX(), pointPixels.getY());
+          return this.circle.contains(pointPixels.getX(), pointPixels.getY());
+        }
+
+        public void add(Feature feature) {
+            op.perform(feature);
+        }
+        
+        public Operation getOperation() {
+            return this.op;
+        }
+    }
+
+    private static final Logger LOG = LoggerFactory.getLogger(DefaultAggregateLegend.class);
+
+    private List<Group> groups;
+
+    private int symbolSize; // Pixels
+    private Color fillColor;
+    private Color outlineColor;
+    private Color textColor;
+    private boolean showBounds;
+    private Font font;
+
+    private boolean useStyle;
+    private ILabelStyle labelStyle;
+    
+    private Operation operation;
+    
+    private SimpleFillSymbol defaultSymbol;
+
+    public DefaultAggregateLegend() {
+        this.groups = null;
+        
+        this.useStyle = false;
+        this.symbolSize = 30;
+        this.fillColor = new Color(0xd0ffcccc, true); // Un rojo
+        this.outlineColor = new Color(0xff5f60de, true); // un azul
+        this.textColor = new Color(0xff000000, true); // negro
+        this.showBounds = false;
+        this.labelStyle = null;        
+        this.font = UIManager.getFont("Label.font");
+        this.operation = AggregateLegendLocator.getAggregateLegendManager().getDefaultOperation().clone();
+        this.defaultSymbol = new SimpleFillSymbol();
+        this.defaultSymbol.setOutline(new SimpleLineSymbol());
+        this.defaultSymbol.getOutline().setLineColor(this.outlineColor);
+        this.defaultSymbol.setFillColor(this.fillColor);
+        
+    }
+
+    @Override
+    protected String[] getRequiredFeatureAttributeNames(FeatureStore featureStore) throws DataException {
+        if( this.operation.isAttributeRequiered() && this.operation.getAttributeName()!=null ) {
+            return new String[]{
+                this.operation.getAttributeName(),
+                featureStore.getDefaultFeatureType().getDefaultGeometryAttributeName()
+            };
+        }
+        return new String[]{
+            featureStore.getDefaultFeatureType().getDefaultGeometryAttributeName()
+        };
+    }
+
+    @Override
+    public ISymbol getDefaultSymbol() {
+        return this.defaultSymbol;
+    }
+
+    @Override
+    public void setDefaultSymbol(ISymbol is) {
+    }
+
+    @Override
+    public ISymbol getSymbolByFeature(Feature ftr) throws MapContextException {
+        return this.getDefaultSymbol();
+    }
+
+    @Override
+    public int getShapeType() {
+        return Geometry.TYPES.GEOMETRY;
+    }
+
+    @Override
+    public void setShapeType(int i) {
+    }
+
+    @Override
+    public boolean isUseDefaultSymbol() {
+        return true;
+    }
+
+    @Override
+    public void useDefaultSymbol(boolean bln) {
+    }
+
+    @Override
+    public boolean isSuitableForShapeType(int shapeType) {
+        return true;
+    }
+
+    @Override
+    protected void draw(BufferedImage image, Graphics2D g, ViewPort viewPort, Cancellable cancel, double scale, Map queryParameters, ICoordTrans coordTrans, FeatureStore featureStore, FeatureQuery featureQuery, double dpi) throws LegendException {
+        super.draw(image, g, viewPort, cancel, scale, queryParameters, coordTrans, featureStore, featureQuery, dpi);
+        this.drawGroups(image, g, cancel, viewPort.getAffineTransform());
+    }
+
+    @Override
+    protected void drawFeatures(
+        BufferedImage image,
+        Graphics2D g,
+        final ViewPort viewPort,
+        final Cancellable cancel,
+        final ICoordTrans coordTrans,
+        double dpi,
+        DefaultFeatureDrawnNotification drawnNotification,
+        FeatureSet featureSet,
+        FeatureSelection selection
+    ) throws BaseException {
+        this.groups = new ArrayList<>();
+        featureSet.accept(new Visitor() {
+            @Override
+            public void visit(Object o) throws VisitCanceledException, BaseException {
+                if( cancel.isCanceled() ) {
+                    throw new VisitCanceledException();
+                }
+                Feature feature = (Feature) o;
+                Geometry geom = feature.getDefaultGeometry();
+                if( geom != null ) {
+                    Point pointGeo = geom.centroid();
+                    if( coordTrans != null ) {
+                        pointGeo.reProject(coordTrans);
+                    }
+                    Point pointPixels = (Point) pointGeo.cloneGeometry();
+                    pointPixels.transform(viewPort.getAffineTransform());
+                    boolean inGroup = false;
+                    for( Group group : groups ) {
+                        if( group.contains(pointPixels) ) {
+                            group.add(feature);
+                            inGroup = true;
+                            break;
+                        }
+                    }
+                    if( !inGroup ) {
+                        Group group = new Group(pointGeo, pointPixels, getSymbolSize(), getOperation().clone());
+                        group.add(feature);
+                        groups.add(group);
+                    }
+                }
+            }
+        });
+    }
+
+    private void drawGroups(BufferedImage image, Graphics2D g, Cancellable cancel, AffineTransform affineTransform) {
+        FilteredLogger logger = new FilteredLogger(LOG, "", 10);
+        AffineTransform identity = new AffineTransform();
+        
+        g.setFont(this.font);
+        FontMetrics fm = g.getFontMetrics();
+        int fontAscent = fm.getAscent();
+        int fontAscentAddDescentDiv2 = ((fm.getAscent() + fm.getDescent())) / 2;        
+
+        for( Group group : groups ) {
+            if( cancel.isCanceled() ) {
+                return;
+            }
+            try {
+                int x = (int) group.pointPixels.getX();
+                int y = (int) group.pointPixels.getY();
+                String txt = group.getOperation().format();
+                if( this.useStyle && this.labelStyle != null ) {
+                    Dimension size = this.labelStyle.getSize();
+                    this.labelStyle.setTextFields(new String[]{txt});
+                    g.setTransform(identity);
+                    g.translate(x-size.getWidth()/2, y-size.getHeight()/2);
+                    Rectangle rect = new Rectangle(
+                        0,
+                        0,
+                        (int)size.getWidth(),
+                        (int)size.getHeight());
+                    this.labelStyle.drawInsideRectangle(g, rect);
+                    Rectangle2D[] bounds = this.labelStyle.getTextBounds();
+                    if(bounds.length>0){
+                        Rectangle2D bound = bounds[0];
+                        Rectangle2D expandedBound = new Rectangle2D.Double(
+                            bound.getMinX()*size.getWidth(),
+                            bound.getMinY()*size.getHeight(),
+                            bound.getWidth()*size.getWidth(),
+                            bound.getHeight()*size.getHeight());
+                        drawCenteredString(txt, expandedBound, g);
+                    }
+                    g.translate(-(x-size.getWidth()/2), -(y-size.getHeight()/2));
+                } else {
+                    int r = symbolSize/2;
+                    g.setColor(this.fillColor);
+                    g.fillOval( x-r, y-r, 2*r, 2*r);
+                    g.setColor(this.outlineColor);
+                    g.drawOval( x-r, y-r, 2*r, 2*r);
+                    if( this.showBounds ) {
+                        g.drawRect( x-r, y-r, 2*r, 2*r);
+                    }
+                    g.setColor(this.textColor);
+                    int txtX = x - (fm.stringWidth(txt) / 2);
+                    int txtY = fontAscent + y - fontAscentAddDescentDiv2; //((fm.getAscent() + fm.getDescent())) / 2;
+                    g.drawString(txt, txtX, txtY);
+                }
+            } catch (Exception ex) {
+                logger.warn("Can't draw group",ex);
+            }
+        }
+    }
+
+    private void drawCenteredString(String s, Rectangle2D rect, Graphics2D g) {
+
+        double x = rect.getMinX();
+        double y = rect.getMinY();
+        double w = rect.getWidth();
+        double h = rect.getHeight();
+
+        FontMetrics fm = g.getFontMetrics();
+        int auxX = (int)(x+((w - fm.stringWidth(s)) / 2));
+        int auxY = (int)(y+((fm.getAscent() + (h - (fm.getAscent() + fm.getDescent())) / 2)));
+        g.setColor(Color.BLACK);
+        g.drawString(s, auxX, auxY);
+      }
+
+    @Override
+    public ILabelStyle getLabelStyle() {
+        return this.labelStyle;
+    }
+
+    @Override
+    public void setLabelStyle(ILabelStyle labelStyle) {
+        this.labelStyle = labelStyle;
+    }
+
+    @Override
+    public int getSymbolSize() {
+        return this.symbolSize;
+    }
+
+    @Override
+    public void setSymbolSize(int simbolSize) {
+        boolean changed = (this.symbolSize == simbolSize);
+        this.symbolSize = simbolSize;
+        if( changed ) {
+            this.fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null,null));
+        }
+    }
+
+    @Override
+    public Operation getOperation() {
+        return this.operation;
+    }
+    
+    @Override
+    public void setOperation(Operation operation) {
+        boolean changed = (this.operation.getName().equalsIgnoreCase(operation.getName()));
+        this.operation = operation;
+        if( changed ) {
+            this.fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null,null));
+        }
+    }
+
+    @Override
+    public Color getFillColor() {
+        return fillColor;
+    }
+
+    @Override
+    public void setFillColor(Color fillColor) {
+        boolean changed = (this.fillColor.equals(fillColor));
+        this.fillColor = fillColor;
+        this.defaultSymbol.setFillColor(this.fillColor);
+        if( changed ) {
+            this.fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null,null));
+        }
+    }
+
+    @Override
+    public Color getOutlineColor() {
+        return outlineColor;
+    }
+
+    @Override
+    public void setOutlineColor(Color outlineColor) {
+        boolean changed = (this.outlineColor.equals(outlineColor));
+        this.outlineColor = outlineColor;
+        this.defaultSymbol.getOutline().setLineColor(this.outlineColor);
+        if( changed ) {
+            this.fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null,null));
+        }
+    }
+
+    @Override
+    public boolean isShowBounds() {
+        return showBounds;
+    }
+
+    @Override
+    public void setShowBounds(boolean showBounds) {
+        boolean changed = (this.showBounds == showBounds);
+        this.showBounds = showBounds;
+        if( changed ) {
+            this.fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null,null));
+        }
+    }
+
+    @Override
+    public Font getFont() {
+        return font;
+    }
+
+    @Override
+    public void setFont(Font font) {
+        this.font = font;
+        this.fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null,null));
+    }
+
+    @Override
+    public boolean isUseStyle() {
+        return useStyle;
+    }
+
+    @Override
+    public void setUseStyle(boolean useStyle) {
+        boolean changed = (this.useStyle == useStyle);
+        this.useStyle = useStyle;
+        if( changed ) {
+            this.fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null,null));
+        }
+    }
+
+    @Override
+    public Color getTextColor() {
+        return this.textColor;
+    }
+
+    @Override
+    public void setTextColor(Color textColor) {
+        boolean changed = (this.textColor.equals(textColor));
+        this.textColor = textColor;
+        if( changed ) {
+            this.fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null,null));
+        }
+    }
+
+    @Override
+    public void loadFromState(PersistentState state) throws PersistenceException {
+        super.loadFromState(state);
+        this.symbolSize = state.getInt("symbolSize");
+        this.fillColor = (Color) state.get("fillColor");
+        this.outlineColor = (Color) state.get("outlineColor");
+        this.textColor = (Color) state.get("textColor");
+        this.showBounds = state.getBoolean("showBounds");
+        this.font = (Font) state.get("font");
+        this.useStyle = state.getBoolean("useStyle");
+        this.labelStyle = (ILabelStyle) state.get("labelStyle");
+        this.operation = (Operation) state.get("operation");
+    }
+
+    @Override
+    public void saveToState(PersistentState state) throws PersistenceException {
+        super.saveToState(state);
+        state.set("symbolSize", symbolSize);
+        state.set("fillColor", fillColor);
+        state.set("outlineColor", outlineColor);
+        state.set("textColor", textColor);
+        state.set("showBounds", showBounds);
+        state.set("font", font);
+        state.set("useStyle", useStyle);
+        state.set("labelStyle", labelStyle);
+        state.set("operation", operation);
+    }
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/AggregateLegendLibraryImpl.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/AggregateLegendLibraryImpl.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/AggregateLegendLibraryImpl.java	(revision 2613)
@@ -0,0 +1,66 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright © 2007-2015 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 2
+ * 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.legend.aggregate.lib.impl;
+
+import org.gvsig.fmap.mapcontext.MapContextLibrary;
+import org.gvsig.fmap.mapcontext.MapContextLocator;
+import org.gvsig.fmap.mapcontext.MapContextManager;
+import org.gvsig.legend.aggregate.lib.api.AggregateLegendLibrary;
+import org.gvsig.legend.aggregate.lib.api.AggregateLegendLocator;
+import org.gvsig.symbology.impl.SymbologyDefaultImplLibrary;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+import org.gvsig.tools.persistence.PersistenceManager;
+
+public class AggregateLegendLibraryImpl extends AbstractLibrary {
+
+    @Override
+    public void doRegistration() {
+        registerAsImplementationOf(AggregateLegendLibrary.class);
+        this.require(MapContextLibrary.class);
+        this.require(SymbologyDefaultImplLibrary.class);
+    }
+
+    @Override
+    protected void doInitialize() throws LibraryException {
+        AggregateLegendLocator.registerAggregateLegendManager(DefaultAggregateLegendManager.class);
+
+        MapContextManager mcmanager = MapContextLocator.getMapContextManager();
+        mcmanager.registerLegend("AggregateLegend", DefaultAggregateLegend.class);
+    }
+
+    @Override
+    protected void doPostInitialize() throws LibraryException {
+        PersistenceManager persistenceManager = ToolsLocator.getPersistenceManager();
+        persistenceManager.registerFactory(new OperationPersistenceFactory());
+        persistenceManager.addDefinition(
+            DefaultAggregateLegend.class, 
+            "DefaultAggregateLegend", 
+            "/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegend.persistence.xml"
+        );
+    }
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/OperationPersistenceFactory.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/OperationPersistenceFactory.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/OperationPersistenceFactory.java	(revision 2613)
@@ -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.legend.aggregate.lib.impl;
+
+import org.gvsig.legend.aggregate.lib.api.AggregateLegendLocator;
+import org.gvsig.legend.aggregate.lib.api.AggregateLegendManager;
+import org.gvsig.legend.aggregate.lib.api.Operation;
+
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.persistence.AbstractSinglePersistenceFactory;
+import org.gvsig.tools.persistence.PersistentState;
+import org.gvsig.tools.persistence.exception.PersistenceException;
+
+public class OperationPersistenceFactory extends AbstractSinglePersistenceFactory {
+
+    static final String FIELD_NAME = "name";
+    static final String FIELD_ATTRIBUTE = "attribute";
+    static final String FIELD_VALUE = "value";
+
+    private static final String DYNCLASS_NAME = "AggregateLegendOperation";
+    private static final String DYNCLASS_DESCRIPTION = "Operation for aggregate legend";
+
+    public OperationPersistenceFactory() {
+        super(Operation.class, DYNCLASS_NAME, DYNCLASS_DESCRIPTION, null, null);
+
+        DynStruct definition = this.getDefinition();
+
+        definition.addDynFieldString(FIELD_NAME).setMandatory(true);
+        definition.addDynFieldString(FIELD_ATTRIBUTE).setMandatory(false);
+        definition.addDynFieldString(FIELD_VALUE).setMandatory(false);
+    }
+
+    @Override
+    public Object createFromState(PersistentState state)
+        throws PersistenceException {
+        AggregateLegendManager manager = AggregateLegendLocator.getAggregateLegendManager();
+
+        String name = (String) state.get(FIELD_NAME);
+        Operation operation = manager.createOperation(name);
+        operation.setAttributeName(state.getString(FIELD_ATTRIBUTE));
+        operation.setAditionalValue(state.getString(FIELD_VALUE));
+
+        return operation;
+    }
+
+    @Override
+    public void saveToState(PersistentState state, Object obj)
+        throws PersistenceException {
+
+        Operation op = (Operation) obj;
+        state.set(FIELD_NAME, op.getName());
+        state.set(FIELD_ATTRIBUTE, op.getAttributeName());
+        state.set(FIELD_VALUE, op.getAditionalValue());
+    }
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/MinOperation.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/MinOperation.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/MinOperation.java	(revision 2613)
@@ -0,0 +1,40 @@
+package org.gvsig.legend.aggregate.lib.impl.operation;
+
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.legend.aggregate.lib.spi.AbstractOperation;
+
+public class MinOperation extends AbstractOperation {
+
+    private int min = 0;
+
+    public MinOperation() {
+        super("Minimun", "_Calculate_the_minimum_of_the_selected_attribute_for_the_grouped_features");
+    }
+
+    @Override
+    public boolean isAttributeRequiered() {
+        return true;
+    }
+
+    @Override
+    public void reset() {
+        min = 0;
+    }
+
+    @Override
+    public void perform(Feature feature) {
+        try {
+            int x = feature.getInt(this.getAttributeName());
+            if( x > min ) {
+                min = x;
+            }
+        } catch (Exception ex) {
+        }
+    }
+
+    @Override
+    public Object getValue() {
+        return this.min;
+    }
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/SumOperation.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/SumOperation.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/SumOperation.java	(revision 2613)
@@ -0,0 +1,57 @@
+package org.gvsig.legend.aggregate.lib.impl.operation;
+
+import java.text.MessageFormat;
+import org.apache.commons.lang3.StringUtils;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.legend.aggregate.lib.spi.AbstractOperation;
+
+
+public class SumOperation extends AbstractOperation {
+    int sum = 0;
+    
+    public SumOperation() {
+        super("Sum", "_Calculate_the_sum_of_the_selected_attribute_for_the_grouped_features");
+
+    }
+
+    @Override
+    public boolean isAttributeRequiered() {
+        return true;
+    }
+
+    @Override
+    public boolean isAditionalValueRequiered() {
+        return true;
+    }
+    
+    @Override
+    public void reset() {
+        sum = 0;
+    }
+    
+    @Override
+    public void perform(Feature feature) {
+        try {
+            double x = feature.getDouble(this.getAttributeName());
+            sum += x;
+        } catch (Exception ex) {
+        }
+    }
+
+    @Override
+    public Object getValue() {
+        return sum;
+    }
+
+    @Override
+    public String format() {
+        if( StringUtils.isEmpty(this.getAditionalValue()) ) {
+            return super.format(); 
+        }
+        try {
+            return MessageFormat.format("{0,number,"+this.getAditionalValue().trim()+"}", this.getValue());
+        } catch(Exception ex) {
+            return super.format(); 
+        }
+    }    
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/MaxOperation.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/MaxOperation.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/MaxOperation.java	(revision 2613)
@@ -0,0 +1,39 @@
+package org.gvsig.legend.aggregate.lib.impl.operation;
+
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.legend.aggregate.lib.spi.AbstractOperation;
+
+public class MaxOperation extends AbstractOperation {
+
+    private int max = 0;
+
+    public MaxOperation() {
+        super("Maximum", "_Calculate_the_maximum_of_the_selected_attribute_for_the_grouped_features");
+    }
+
+    @Override
+    public boolean isAttributeRequiered() {
+        return true;
+    }
+
+    @Override
+    public void reset() {
+        max = 0;
+    }
+
+    @Override
+    public void perform(Feature feature) {
+        try {
+            int x = feature.getInt(this.getAttributeName());
+            if( x > max ) {
+                max = x;
+            }
+        } catch (Exception ex) {
+        }
+    }
+
+    @Override
+    public Object getValue() {
+        return this.max;
+    }
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/CountOperation.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/CountOperation.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/CountOperation.java	(revision 2613)
@@ -0,0 +1,29 @@
+package org.gvsig.legend.aggregate.lib.impl.operation;
+
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.legend.aggregate.lib.spi.AbstractOperation;
+
+
+public class CountOperation extends AbstractOperation {
+    int count = 0;
+    
+    public CountOperation() {
+        super("Count", "_Count_of_grouped_features");
+    }
+
+    @Override
+    public void reset() {
+        count = 0;
+    }
+    
+    @Override
+    public void perform(Feature feature) {
+        count++;
+    }
+
+    @Override
+    public Object getValue() {
+        return count;
+    }
+    
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/AvgOperation.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/AvgOperation.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/AvgOperation.java	(revision 2613)
@@ -0,0 +1,62 @@
+package org.gvsig.legend.aggregate.lib.impl.operation;
+
+import java.text.MessageFormat;
+import org.apache.commons.lang3.StringUtils;
+import org.gvsig.fmap.dal.feature.Feature;
+import org.gvsig.legend.aggregate.lib.spi.AbstractOperation;
+
+public class AvgOperation extends AbstractOperation {
+
+    private double avg = 0;
+    private int count = 0;
+
+    public AvgOperation() {
+        super(
+            "Average", 
+            "_Calculate_the_average_of_the_selected_attribute_for_the_grouped_features"
+        );
+    }
+
+    @Override
+    public boolean isAttributeRequiered() {
+        return true;
+    }
+
+    @Override
+    public boolean isAditionalValueRequiered() {
+        return true;
+    }
+
+    @Override
+    public void reset() {
+        avg = 0;
+        count = 0;
+    }
+
+    @Override
+    public void perform(Feature feature) {
+            try {
+                double value = feature.getDouble(this.getAttributeName());
+                avg = ( avg * count + value ) / (count+1);
+                count++;
+            } catch(Exception ex) {
+            }
+    }
+
+    @Override
+    public Object getValue() {
+        return this.avg;
+    }
+
+    @Override
+    public String format() {
+        if( StringUtils.isEmpty(this.getAditionalValue()) ) {
+            return super.format(); 
+        }
+        try {
+            return MessageFormat.format("{0,number,"+this.getAditionalValue()+"}", this.getValue());
+        } catch(Exception ex) {
+            return super.format(); 
+        }
+    }
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegendManager.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegendManager.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegendManager.java	(revision 2613)
@@ -0,0 +1,109 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright © 2007-2015 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 2
+ * 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.legend.aggregate.lib.impl;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import org.gvsig.fmap.mapcontext.rendering.symbols.styles.ILabelStyle;
+import org.gvsig.legend.aggregate.lib.api.AggregateLegend;
+import org.gvsig.legend.aggregate.lib.api.AggregateLegendManager;
+import org.gvsig.legend.aggregate.lib.api.Operation;
+import org.gvsig.legend.aggregate.lib.impl.operation.AvgOperation;
+import org.gvsig.legend.aggregate.lib.impl.operation.CountOperation;
+import org.gvsig.legend.aggregate.lib.impl.operation.MaxOperation;
+import org.gvsig.legend.aggregate.lib.impl.operation.MinOperation;
+import org.gvsig.legend.aggregate.lib.impl.operation.SumOperation;
+import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.style.SimpleLabelStyle;
+
+
+public class DefaultAggregateLegendManager implements AggregateLegendManager {
+
+    private ILabelStyle defaultLabelStyle = null;
+    private Map<String,Operation> operations;
+    private Operation defaultOperation = null;
+    
+    public DefaultAggregateLegendManager() {
+        this.defaultLabelStyle = new SimpleLabelStyle();
+        this.addOperation(new CountOperation());
+        this.addOperation(new MinOperation());
+        this.addOperation(new MaxOperation());
+        this.addOperation(new AvgOperation());
+        this.addOperation(new SumOperation());
+    }
+    
+    @Override
+    public AggregateLegend createAggregateLegend() {
+        return new DefaultAggregateLegend();
+    }
+
+    @Override
+    public Class<? extends AggregateLegend> getLegendClass() {
+        return DefaultAggregateLegend.class;
+    }
+
+    @Override
+    public ILabelStyle getDefaultLabelStyle() {
+        return this.defaultLabelStyle;
+    }
+
+    @Override
+    public void setDefaultLabelStyle(ILabelStyle defaultLabelStyle) {
+        this.defaultLabelStyle = defaultLabelStyle;
+    }
+
+    @Override
+    public void addOperation(Operation operation) {
+        if( this.operations == null ) {
+            this.operations = new HashMap<>();
+        }
+        if( this.operations.isEmpty() ) {
+            this.defaultOperation = operation;
+        }
+        this.operations.put(operation.getName(),operation);
+    }
+    
+    @Override
+    public Collection<Operation> getOperations() {
+        if( this.operations == null ) {
+            this.operations = new HashMap<>();
+        }
+        return this.operations.values();
+    }
+    
+    @Override
+    public Operation getDefaultOperation() {
+        return this.defaultOperation;
+    }
+
+    @Override
+    public Operation createOperation(String name) {
+        Operation op = this.operations.get(name);
+        if( op == null ) {
+            throw new IllegalArgumentException("Can't locate operation '"+name+"'.");
+        }
+        return op.clone();
+    }
+
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 2613)
@@ -0,0 +1 @@
+org.gvsig.legend.aggregate.lib.impl.AggregateLegendLibraryImpl
\ No newline at end of file
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/resources/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegend.persistence.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/resources/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegend.persistence.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/resources/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegend.persistence.xml	(revision 2613)
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+<definitions>
+  <version>1.0.0</version>
+  <classes>
+    <class name="DefaultAggregateLegend">
+      <extends>
+        <class>VectorialLegend</class>
+      </extends>
+      <fields>
+        <field name="symbolSize" type="integer" defaultValue="30">
+          <description></description>
+        </field>
+        <field name="fillColor" type="object" classOfValue="java.awt.Color">
+          <description></description>
+        </field>
+        <field name="outlineColor" type="object" classOfValue="java.awt.Color">
+          <description></description>
+        </field>
+        <field name="textColor" type="object" classOfValue="java.awt.Color">
+          <description></description>
+        </field>
+        <field name="showBounds" type="boolean" defaultValue="false">
+          <description></description>
+        </field>
+        <field name="font" type="object" classOfValue="java.awt.Font">
+          <description></description>
+        </field>
+        <field name="labelStyle" type="object" classOfValue="org.gvsig.fmap.mapcontext.rendering.symbols.styles.ILabelStyle">
+          <description></description>
+        </field>
+        <field name="useStyle" type="boolean" defaultValue="false">
+          <description></description>
+        </field>
+        <field name="operation" type="object" classOfValue="org.gvsig.legend.aggregate.lib.api.Operation">
+          <description></description>
+        </field>
+      </fields>
+    </class>
+
+  </classes>
+</definitions>  
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/pom.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/pom.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/pom.xml	(revision 2613)
@@ -0,0 +1,28 @@
+<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.legend.aggregate.lib.impl</artifactId>
+  <name>org.gvsig.legend.aggregate.lib.impl</name>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.legend.aggregate.lib</artifactId>
+    <version>1.0.22</version>
+  </parent>
+  <groupId>org.gvsig</groupId>
+  <dependencies>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.legend.aggregate.lib.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.fmap.dal.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.symbology.lib.impl</artifactId>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Property changes on: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl
___________________________________________________________________
Added: svn:ignore
   + target


Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 2613)
@@ -0,0 +1 @@
+org.gvsig.legend.aggregate.lib.api.AggregateLegendLibrary
\ No newline at end of file
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendLibrary.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendLibrary.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendLibrary.java	(revision 2613)
@@ -0,0 +1,57 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright © 2007-2015 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 2
+ * 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.legend.aggregate.lib.api;
+
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+import org.gvsig.tools.locator.ReferenceNotRegisteredException;
+
+
+/**
+ * @author fdiaz
+ *
+ */
+public class AggregateLegendLibrary extends AbstractLibrary {
+
+    /* (non-Javadoc)
+     * @see org.gvsig.tools.library.AbstractLibrary#doInitialize()
+     */
+    @Override
+    protected void doInitialize() throws LibraryException {
+        registerAsAPI(AggregateLegendLibrary.class);
+    }
+
+    /* (non-Javadoc)
+     * @see org.gvsig.tools.library.AbstractLibrary#doPostInitialize()
+     */
+    @Override
+    protected void doPostInitialize() throws LibraryException {
+        // Validate there is any implementation registered.
+        AggregateLegendManager manager = AggregateLegendLocator.getAggregateLegendManager();
+        if (manager == null) {
+            throw new ReferenceNotRegisteredException(
+                AggregateLegendLocator.MANAGER_NAME, AggregateLegendLocator.getInstance());
+        }
+    }
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendManager.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendManager.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendManager.java	(revision 2613)
@@ -0,0 +1,51 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright © 2007-2015 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.legend.aggregate.lib.api;
+
+import java.util.Collection;
+import org.gvsig.fmap.mapcontext.rendering.symbols.styles.ILabelStyle;
+
+
+public interface AggregateLegendManager {
+
+    /**
+     * Creates an aggregate legend
+     *
+     * @return the aggregate legend
+     */
+    public AggregateLegend createAggregateLegend();
+
+    public Class<? extends AggregateLegend> getLegendClass();
+    
+    public ILabelStyle getDefaultLabelStyle();
+    
+    public void setDefaultLabelStyle(ILabelStyle defaultLabelStyle);
+
+    public Operation getDefaultOperation();
+
+    void addOperation(Operation operation);
+    
+    public Collection<Operation> getOperations();
+
+    public Operation createOperation(String name);
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/Operation.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/Operation.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/Operation.java	(revision 2613)
@@ -0,0 +1,37 @@
+
+package org.gvsig.legend.aggregate.lib.api;
+
+import org.gvsig.fmap.dal.feature.Feature;
+
+
+public interface Operation extends org.gvsig.tools.lang.Cloneable {
+    
+    public String getName();
+    
+    public String getDescription();
+    
+    public boolean isAttributeRequiered();
+    
+    public boolean isAditionalValueRequiered();
+    
+    public void reset();
+    
+    public void perform(Feature feature);
+        
+    public Object getValue();
+
+    public String format();
+    
+    public String getAttributeName();
+    
+    public void setAttributeName(String attributeName);
+    
+    public String getAditionalValue();
+    
+    public void setAditionalValue(String constant);
+
+    @Override
+    public Operation clone();
+    
+    
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegend.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegend.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegend.java	(revision 2613)
@@ -0,0 +1,47 @@
+package org.gvsig.legend.aggregate.lib.api;
+
+import java.awt.Color;
+import java.awt.Font;
+import org.gvsig.fmap.mapcontext.rendering.legend.ISingleSymbolLegend;
+import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend;
+import org.gvsig.fmap.mapcontext.rendering.symbols.styles.ILabelStyle;
+
+public interface AggregateLegend extends IVectorLegend, ISingleSymbolLegend {
+
+    public int getSymbolSize();
+    public void setSymbolSize(int simbolSize);
+    
+    public ILabelStyle getLabelStyle();
+    public void setLabelStyle(ILabelStyle labelStyle);    
+
+    Color getFillColor();
+
+    void setFillColor(Color fillColor);
+
+    Color getTextColor();
+
+    void setTextColor(Color textColor);
+
+    Font getFont();
+
+    void setFont(Font font);
+
+    Operation getOperation();
+
+    void setOperation(Operation operation);
+
+    Color getOutlineColor();
+
+    void setOutlineColor(Color outlineColor);
+
+    boolean isShowBounds();
+
+    void setShowBounds(boolean showBounds);
+
+    boolean isUseStyle();
+
+    void setUseStyle(boolean useStyle);
+
+}
+
+
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendLocator.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendLocator.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendLocator.java	(revision 2613)
@@ -0,0 +1,100 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright © 2007-2015 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 2
+ * 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.legend.aggregate.lib.api;
+
+import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
+import org.gvsig.tools.locator.AbstractLocator;
+import org.gvsig.tools.locator.Locator;
+import org.gvsig.tools.locator.LocatorException;
+
+
+public class AggregateLegendLocator extends AbstractLocator {
+
+    /**
+     * AggregateLegend locator name
+     */
+    private static final String LOCATOR_NAME = "AggregateLegendLocator";
+
+    /**
+     * AggregateLegend manager name
+     */
+    public static final String MANAGER_NAME = "AggregateLegendManager";
+
+    /**
+     * AggregateLegend manager description
+     */
+    private static final String MANAGER_DESCRIPTION =
+        "AggregateLegend Manager of gvSIG";
+
+
+    /**
+     * Unique instance
+     */
+    private static final AggregateLegendLocator instance = new AggregateLegendLocator();
+
+    @Override
+    public String getLocatorName() {
+        return LOCATOR_NAME;
+    }
+
+    /**
+     * Registers the Class implementing the AggregateLegendManager interface.
+     *
+     * @param clazz
+     *            implementing the AggregateLegendManager interface
+     */
+    public static void registerAggregateLegendManager(Class clazz){
+        getInstance().register(MANAGER_NAME, MANAGER_DESCRIPTION, clazz);
+    }
+
+    /**
+     * Registers the default Class implementing the AggregateLegendManager interface
+     *
+     * @param clazz
+     *            implementing the AggregateLegendManager interface
+     */
+    public static void registerDefaultAggregateLegendManager(Class clazz){
+        getInstance().registerDefault(MANAGER_NAME, MANAGER_DESCRIPTION, clazz);
+    }
+
+    /**
+     * Return a reference to AggregateLegendManager.
+     *
+     * @return a reference to AggregateLegendManager
+     * @throws LocatorException
+     *             if there is no access to the class or the class
+     *             cannot be instantiated
+     * @see Locator#get(String)
+     */
+    public static AggregateLegendManager getAggregateLegendManager() throws LocatorException {
+        return (AggregateLegendManager) getInstance().get(MANAGER_NAME);
+    }
+
+    /**
+     * @return
+     */
+    public static Locator getInstance() {
+        return instance;
+    }
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/spi/AbstractOperation.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/spi/AbstractOperation.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/spi/AbstractOperation.java	(revision 2613)
@@ -0,0 +1,80 @@
+package org.gvsig.legend.aggregate.lib.spi;
+
+import org.gvsig.legend.aggregate.lib.api.Operation;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+
+
+public abstract class AbstractOperation implements Operation {
+    private final String name;
+    private final String description;
+    private String attrName;
+    private String aditionalValue;
+    
+    protected AbstractOperation(String name, String description) {
+        this.name = name;
+        this.description = description;
+        reset();
+    }
+    
+    @Override
+    public String getName() {
+        return this.name;
+    }
+
+    @Override
+    public String getDescription() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        return i18n.getTranslation(this.description);
+    }
+
+    @Override
+    public boolean isAttributeRequiered() {
+        return false;
+    }
+
+    @Override
+    public boolean isAditionalValueRequiered() {
+        return false;
+    }
+
+    @Override
+    public String getAttributeName() {
+        return attrName;
+    }
+
+    @Override
+    public void setAttributeName(String attributeName) {
+        this.attrName = attributeName;
+    }
+
+    @Override
+    public String getAditionalValue() {
+        return aditionalValue;
+    }
+
+    @Override
+    public void setAditionalValue(String aditionalValue) {
+        this.aditionalValue = aditionalValue;
+    }
+
+    @Override
+    public String format() {
+        return String.valueOf(getValue());
+    }
+
+    @Override
+    public String toString() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        return i18n.getTranslation(this.getName());
+    }
+
+    @Override
+    public Operation clone() {
+        try {
+            return (Operation) super.clone();
+        } catch (CloneNotSupportedException ex) {
+            return null;
+        }
+    }
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/pom.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/pom.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/pom.xml	(revision 2613)
@@ -0,0 +1,43 @@
+<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>
+  <groupId>org.gvsig</groupId>
+  <artifactId>org.gvsig.legend.aggregate.lib.api</artifactId>
+  <name>org.gvsig.legend.aggregate.lib.api</name>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.legend.aggregate.lib</artifactId>
+    <version>1.0.22</version>
+  </parent>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <configuration>
+        </configuration>
+        <executions>
+          <!-- Generates a jar file only with the test classes -->
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.tools.lib</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.fmap.mapcontext.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Property changes on: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api
___________________________________________________________________
Added: svn:ignore
   + target


Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/pom.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/pom.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/pom.xml	(revision 2613)
@@ -0,0 +1,16 @@
+<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>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.legend.aggregate</artifactId>
+    <version>1.0.22</version>
+  </parent>
+  <groupId>org.gvsig</groupId>
+  <artifactId>org.gvsig.legend.aggregate.swing</artifactId>
+  <packaging>pom</packaging>
+  <name>org.gvsig.legend.aggregate.swing</name>
+  <modules>
+    <module>org.gvsig.legend.aggregate.swing.api</module>
+    <module>org.gvsig.legend.aggregate.swing.impl</module>
+  </modules>
+</project>
\ No newline at end of file
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 2613)
@@ -0,0 +1 @@
+org.gvsig.legend.aggregate.swing.impl.DefaultAggregateLegendSwingLibrary
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendSwingLibrary.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendSwingLibrary.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendSwingLibrary.java	(revision 2613)
@@ -0,0 +1,58 @@
+/**
+ * gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright © 2007-2015 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 2
+ * 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.legend.aggregate.swing.impl;
+
+import org.gvsig.legend.aggregate.lib.api.AggregateLegendLibrary;
+import org.gvsig.legend.aggregate.swing.api.AggregateLegendSwingLibrary;
+import org.gvsig.legend.aggregate.swing.api.AggregateLegendSwingLocator;
+import org.gvsig.symbology.swing.SymbologySwingLibrary;
+import org.gvsig.symbology.swing.SymbologySwingLocator;
+import org.gvsig.symbology.swing.SymbologySwingManager;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+
+
+public class DefaultAggregateLegendSwingLibrary extends AbstractLibrary {
+
+
+
+	@Override
+    public void doRegistration() {
+        registerAsImplementationOf(AggregateLegendSwingLibrary.class);
+        require(SymbologySwingLibrary.class);
+    }
+
+    @Override
+    protected void doInitialize() throws LibraryException {
+        AggregateLegendSwingLocator.registerAggregateLegendSwingManager(DefaultAggregateLegendSwingManager.class);
+    }
+
+    @Override
+    protected void doPostInitialize() throws LibraryException {
+        SymbologySwingManager symmnager = SymbologySwingLocator.getSwingManager();
+        symmnager.registerLegendEditor(DefaultAggregateLegendEditor.class);
+	}
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditorView.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditorView.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditorView.xml	(revision 2613)
@@ -0,0 +1,2996 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<object classname="com.jeta.forms.store.memento.FormPackage">
+ <at name="fileversion">
+  <object classname="com.jeta.forms.store.memento.FormsVersion2">
+   <at name="major">2</at>
+   <at name="minor">0</at>
+   <at name="sub">0</at>
+  </object>
+ </at>
+ <at name="form">
+  <object classname="com.jeta.forms.store.memento.FormMemento">
+   <super classname="com.jeta.forms.store.memento.ComponentMemento">
+    <at name="cellconstraints">
+     <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+      <at name="column">1</at>
+      <at name="row">1</at>
+      <at name="colspan">1</at>
+      <at name="rowspan">1</at>
+      <at name="halign">default</at>
+      <at name="valign">default</at>
+      <at name="insets" object="insets">0,0,0,0</at>
+     </object>
+    </at>
+    <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+   </super>
+   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.legend.aggregate/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditorView.xml</at>
+   <at name="rowspecs">CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE</at>
+   <at name="colspecs">FILL:4DLU:NONE,FILL:8DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
+   <at name="components">
+    <object classname="java.util.LinkedList">
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">2</at>
+           <at name="colspan">3</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JRadioButton</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JRadioButton</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="actionCommand">Basic</at>
+            <at name="buttonGroup">
+             <object classname="com.jeta.forms.store.properties.ButtonGroupProperty">
+              <at name="name">buttonGroup</at>
+              <at name="groupname">1</at>
+             </object>
+            </at>
+            <at name="name">rdbBasic</at>
+            <at name="width">516</at>
+            <at name="text">_Use_basic_cluster_mark</at>
+            <at name="height">16</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.BeanMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">6</at>
+           <at name="colspan">3</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+        </super>
+        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+        <at name="beanclass">javax.swing.JRadioButton</at>
+        <at name="beanproperties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">javax.swing.JRadioButton</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList">
+                <item >
+                 <at name="value">
+                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                  </object>
+                 </at>
+                </item>
+               </object>
+              </at>
+             </object>
+            </at>
+            <at name="actionCommand">Styled</at>
+            <at name="buttonGroup">
+             <object classname="com.jeta.forms.store.properties.ButtonGroupProperty">
+              <at name="name">buttonGroup</at>
+              <at name="groupname">1</at>
+             </object>
+            </at>
+            <at name="name">rdbStyled</at>
+            <at name="width">516</at>
+            <at name="text">_Use_styled_cluster_mark</at>
+            <at name="height">16</at>
+           </object>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.FormMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">3</at>
+           <at name="row">4</at>
+           <at name="colspan">2</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+        </super>
+        <at name="id">embedded.329209227</at>
+        <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE</at>
+        <at name="colspecs">FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0)</at>
+        <at name="components">
+         <object classname="java.util.LinkedList">
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">1</at>
+                <at name="row">3</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblOutlineColor</at>
+                 <at name="width">85</at>
+                 <at name="text">_Outline_color</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">14</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">1</at>
+                <at name="row">5</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblFillColor</at>
+                 <at name="width">85</at>
+                 <at name="text">_Fill_color</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">14</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">1</at>
+                <at name="row">7</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblTextColor</at>
+                 <at name="width">85</at>
+                 <at name="text">_Text_color</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">14</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">1</at>
+                <at name="row">9</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblTextFont</at>
+                 <at name="width">85</at>
+                 <at name="text">_Text_font</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">14</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">1</at>
+                <at name="row">11</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblShowBounds</at>
+                 <at name="width">85</at>
+                 <at name="text">_Show_bounds</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">14</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">11</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">javax.swing.JCheckBox</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JCheckBox</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">chkShowBounds</at>
+                 <at name="width">392</at>
+                 <at name="height">15</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">1</at>
+                <at name="row">1</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblSymbolSize</at>
+                 <at name="width">85</at>
+                 <at name="text">_Symbol_size</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">14</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.FormMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">3</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+             </super>
+             <at name="id">embedded.1690387536</at>
+             <at name="rowspecs">CENTER:DEFAULT:NONE</at>
+             <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
+             <at name="components">
+              <object classname="java.util.LinkedList">
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">1</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JTextField</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JTextField</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="horizontalAlignment">4</at>
+                      <at name="background" object="color">236,233,216</at>
+                      <at name="editable">false</at>
+                      <at name="name">txtOutlineColor</at>
+                      <at name="width">79</at>
+                      <at name="font">
+                       <object classname="com.jeta.forms.store.properties.FontProperty">
+                        <at name="family">Courier 10 Pitch</at>
+                        <at name="style">0</at>
+                        <at name="size">11</at>
+                       </object>
+                      </at>
+                      <at name="height">20</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">3</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JButton</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JButton</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="actionCommand">...</at>
+                      <at name="name">btnOutlineColor</at>
+                      <at name="width">44</at>
+                      <at name="text">...</at>
+                      <at name="height">22</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">5</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="name">lblOutlineColorAlpha</at>
+                      <at name="width">31</at>
+                      <at name="text">Alpha</at>
+                      <at name="fill">
+                       <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                        <at name="name">fill</at>
+                       </object>
+                      </at>
+                      <at name="height">14</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">7</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JSlider</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JSlider</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="name">sldOutlineColorAlpha</at>
+                      <at name="width">200</at>
+                      <at name="majorTickSpacing">20</at>
+                      <at name="height">16</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+              </object>
+             </at>
+             <at name="properties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.gui.form.GridView</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList"/>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name"/>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="scollBars">
+                  <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+                   <at name="name">scollBars</at>
+                   <at name="verticalpolicy">21</at>
+                   <at name="horizontalpolicy">31</at>
+                   <at name="border">
+                    <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                     <super classname="com.jeta.forms.store.properties.BorderProperty">
+                      <at name="name">border</at>
+                     </super>
+                     <at name="borders">
+                      <object classname="java.util.LinkedList">
+                       <item >
+                        <at name="value">
+                         <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                          <super classname="com.jeta.forms.store.properties.BorderProperty">
+                           <at name="name">border</at>
+                          </super>
+                         </object>
+                        </at>
+                       </item>
+                      </object>
+                     </at>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                </object>
+               </at>
+              </object>
+             </at>
+             <at name="cellpainters">
+              <object classname="com.jeta.forms.store.support.Matrix">
+               <at name="rows">
+                <object classname="[Ljava.lang.Object;" size="1">
+                 <at name="item" index="0">
+                  <object classname="[Ljava.lang.Object;" size="7"/>
+                 </at>
+                </object>
+               </at>
+              </object>
+             </at>
+             <at name="rowgroups">
+              <object classname="com.jeta.forms.store.memento.FormGroupSet">
+               <at name="groups">
+                <object classname="java.util.HashMap"/>
+               </at>
+              </object>
+             </at>
+             <at name="colgroups">
+              <object classname="com.jeta.forms.store.memento.FormGroupSet">
+               <at name="groups">
+                <object classname="java.util.HashMap"/>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.FormMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">5</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+             </super>
+             <at name="id">embedded.1720235602</at>
+             <at name="rowspecs">CENTER:DEFAULT:NONE</at>
+             <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
+             <at name="components">
+              <object classname="java.util.LinkedList">
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">1</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JTextField</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JTextField</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="horizontalAlignment">4</at>
+                      <at name="background" object="color">236,233,216</at>
+                      <at name="editable">false</at>
+                      <at name="name">txtFillColor</at>
+                      <at name="width">79</at>
+                      <at name="scrollOffset">1</at>
+                      <at name="font">
+                       <object classname="com.jeta.forms.store.properties.FontProperty">
+                        <at name="family">Courier 10 Pitch</at>
+                        <at name="style">0</at>
+                        <at name="size">11</at>
+                       </object>
+                      </at>
+                      <at name="height">20</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">3</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JButton</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JButton</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="actionCommand">...</at>
+                      <at name="name">btnFillColor</at>
+                      <at name="width">44</at>
+                      <at name="text">...</at>
+                      <at name="height">22</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">5</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="name">lblFillColorAlpha</at>
+                      <at name="width">31</at>
+                      <at name="text">Alpha</at>
+                      <at name="fill">
+                       <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                        <at name="name">fill</at>
+                       </object>
+                      </at>
+                      <at name="height">14</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">7</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JSlider</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JSlider</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="name">sldFillColorAlpha</at>
+                      <at name="width">200</at>
+                      <at name="majorTickSpacing">20</at>
+                      <at name="height">16</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+              </object>
+             </at>
+             <at name="properties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.gui.form.GridView</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList"/>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name"/>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="scollBars">
+                  <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+                   <at name="name">scollBars</at>
+                   <at name="verticalpolicy">21</at>
+                   <at name="horizontalpolicy">31</at>
+                   <at name="border">
+                    <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                     <super classname="com.jeta.forms.store.properties.BorderProperty">
+                      <at name="name">border</at>
+                     </super>
+                     <at name="borders">
+                      <object classname="java.util.LinkedList">
+                       <item >
+                        <at name="value">
+                         <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                          <super classname="com.jeta.forms.store.properties.BorderProperty">
+                           <at name="name">border</at>
+                          </super>
+                         </object>
+                        </at>
+                       </item>
+                      </object>
+                     </at>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                </object>
+               </at>
+              </object>
+             </at>
+             <at name="cellpainters">
+              <object classname="com.jeta.forms.store.support.Matrix">
+               <at name="rows">
+                <object classname="[Ljava.lang.Object;" size="1">
+                 <at name="item" index="0">
+                  <object classname="[Ljava.lang.Object;" size="7"/>
+                 </at>
+                </object>
+               </at>
+              </object>
+             </at>
+             <at name="rowgroups">
+              <object classname="com.jeta.forms.store.memento.FormGroupSet">
+               <at name="groups">
+                <object classname="java.util.HashMap"/>
+               </at>
+              </object>
+             </at>
+             <at name="colgroups">
+              <object classname="com.jeta.forms.store.memento.FormGroupSet">
+               <at name="groups">
+                <object classname="java.util.HashMap"/>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.FormMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">7</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+             </super>
+             <at name="id">embedded.1772456086</at>
+             <at name="rowspecs">CENTER:DEFAULT:NONE</at>
+             <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
+             <at name="components">
+              <object classname="java.util.LinkedList">
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">1</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JTextField</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JTextField</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="horizontalAlignment">4</at>
+                      <at name="background" object="color">236,233,216</at>
+                      <at name="editable">false</at>
+                      <at name="name">txtTextColor</at>
+                      <at name="width">79</at>
+                      <at name="scrollOffset">1</at>
+                      <at name="font">
+                       <object classname="com.jeta.forms.store.properties.FontProperty">
+                        <at name="family">Courier 10 Pitch</at>
+                        <at name="style">0</at>
+                        <at name="size">11</at>
+                       </object>
+                      </at>
+                      <at name="height">20</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">3</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JButton</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JButton</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="actionCommand">...</at>
+                      <at name="name">btnTextColor</at>
+                      <at name="width">44</at>
+                      <at name="text">...</at>
+                      <at name="height">22</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">5</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="name">lblTextColorAlpha</at>
+                      <at name="width">31</at>
+                      <at name="text">Alpha</at>
+                      <at name="fill">
+                       <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                        <at name="name">fill</at>
+                       </object>
+                      </at>
+                      <at name="height">14</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">7</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JSlider</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JSlider</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="name">sldTextColorAlpha</at>
+                      <at name="width">200</at>
+                      <at name="majorTickSpacing">20</at>
+                      <at name="height">16</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+              </object>
+             </at>
+             <at name="properties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.gui.form.GridView</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList"/>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name"/>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="scollBars">
+                  <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+                   <at name="name">scollBars</at>
+                   <at name="verticalpolicy">21</at>
+                   <at name="horizontalpolicy">31</at>
+                   <at name="border">
+                    <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                     <super classname="com.jeta.forms.store.properties.BorderProperty">
+                      <at name="name">border</at>
+                     </super>
+                     <at name="borders">
+                      <object classname="java.util.LinkedList">
+                       <item >
+                        <at name="value">
+                         <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                          <super classname="com.jeta.forms.store.properties.BorderProperty">
+                           <at name="name">border</at>
+                          </super>
+                         </object>
+                        </at>
+                       </item>
+                      </object>
+                     </at>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                </object>
+               </at>
+              </object>
+             </at>
+             <at name="cellpainters">
+              <object classname="com.jeta.forms.store.support.Matrix">
+               <at name="rows">
+                <object classname="[Ljava.lang.Object;" size="1">
+                 <at name="item" index="0">
+                  <object classname="[Ljava.lang.Object;" size="7"/>
+                 </at>
+                </object>
+               </at>
+              </object>
+             </at>
+             <at name="rowgroups">
+              <object classname="com.jeta.forms.store.memento.FormGroupSet">
+               <at name="groups">
+                <object classname="java.util.HashMap"/>
+               </at>
+              </object>
+             </at>
+             <at name="colgroups">
+              <object classname="com.jeta.forms.store.memento.FormGroupSet">
+               <at name="groups">
+                <object classname="java.util.HashMap"/>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.FormMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">9</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+             </super>
+             <at name="id">embedded.142653217</at>
+             <at name="rowspecs">CENTER:DEFAULT:NONE</at>
+             <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
+             <at name="components">
+              <object classname="java.util.LinkedList">
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">1</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JTextField</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JTextField</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="background" object="color">236,233,216</at>
+                      <at name="editable">false</at>
+                      <at name="name">txtTextFont</at>
+                      <at name="width">332</at>
+                      <at name="height">20</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+               <item >
+                <at name="value">
+                 <object classname="com.jeta.forms.store.memento.BeanMemento">
+                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
+                   <at name="cellconstraints">
+                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                     <at name="column">3</at>
+                     <at name="row">1</at>
+                     <at name="colspan">1</at>
+                     <at name="rowspan">1</at>
+                     <at name="halign">default</at>
+                     <at name="valign">default</at>
+                     <at name="insets" object="insets">0,0,0,0</at>
+                    </object>
+                   </at>
+                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+                  </super>
+                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+                  <at name="beanclass">javax.swing.JButton</at>
+                  <at name="beanproperties">
+                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+                    <at name="classname">javax.swing.JButton</at>
+                    <at name="properties">
+                     <object classname="com.jeta.forms.store.support.PropertyMap">
+                      <at name="border">
+                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                        <at name="borders">
+                         <object classname="java.util.LinkedList">
+                          <item >
+                           <at name="value">
+                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                             <super classname="com.jeta.forms.store.properties.BorderProperty">
+                              <at name="name">border</at>
+                             </super>
+                            </object>
+                           </at>
+                          </item>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                      <at name="actionCommand">...</at>
+                      <at name="name">btnTextFont</at>
+                      <at name="width">44</at>
+                      <at name="text">...</at>
+                      <at name="height">22</at>
+                     </object>
+                    </at>
+                   </object>
+                  </at>
+                 </object>
+                </at>
+               </item>
+              </object>
+             </at>
+             <at name="properties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.gui.form.GridView</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList"/>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name"/>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="scollBars">
+                  <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+                   <at name="name">scollBars</at>
+                   <at name="verticalpolicy">21</at>
+                   <at name="horizontalpolicy">31</at>
+                   <at name="border">
+                    <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                     <super classname="com.jeta.forms.store.properties.BorderProperty">
+                      <at name="name">border</at>
+                     </super>
+                     <at name="borders">
+                      <object classname="java.util.LinkedList">
+                       <item >
+                        <at name="value">
+                         <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                          <super classname="com.jeta.forms.store.properties.BorderProperty">
+                           <at name="name">border</at>
+                          </super>
+                         </object>
+                        </at>
+                       </item>
+                      </object>
+                     </at>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                </object>
+               </at>
+              </object>
+             </at>
+             <at name="cellpainters">
+              <object classname="com.jeta.forms.store.support.Matrix">
+               <at name="rows">
+                <object classname="[Ljava.lang.Object;" size="1">
+                 <at name="item" index="0">
+                  <object classname="[Ljava.lang.Object;" size="3"/>
+                 </at>
+                </object>
+               </at>
+              </object>
+             </at>
+             <at name="rowgroups">
+              <object classname="com.jeta.forms.store.memento.FormGroupSet">
+               <at name="groups">
+                <object classname="java.util.HashMap"/>
+               </at>
+              </object>
+             </at>
+             <at name="colgroups">
+              <object classname="com.jeta.forms.store.memento.FormGroupSet">
+               <at name="groups">
+                <object classname="java.util.HashMap"/>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">1</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">javax.swing.JSpinner</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JSpinner</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="name">spnSymbolSize</at>
+                 <at name="width">392</at>
+                 <at name="height">20</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+         </object>
+        </at>
+        <at name="properties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.gui.form.GridView</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList"/>
+              </at>
+             </object>
+            </at>
+            <at name="name"/>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <at name="name">scollBars</at>
+              <at name="verticalpolicy">21</at>
+              <at name="horizontalpolicy">31</at>
+              <at name="border">
+               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                <super classname="com.jeta.forms.store.properties.BorderProperty">
+                 <at name="name">border</at>
+                </super>
+                <at name="borders">
+                 <object classname="java.util.LinkedList">
+                  <item >
+                   <at name="value">
+                    <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                     <super classname="com.jeta.forms.store.properties.BorderProperty">
+                      <at name="name">border</at>
+                     </super>
+                    </object>
+                   </at>
+                  </item>
+                 </object>
+                </at>
+               </object>
+              </at>
+             </object>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="cellpainters">
+         <object classname="com.jeta.forms.store.support.Matrix">
+          <at name="rows">
+           <object classname="[Ljava.lang.Object;" size="11">
+            <at name="item" index="0">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+            <at name="item" index="1">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+            <at name="item" index="2">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+            <at name="item" index="3">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+            <at name="item" index="4">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+            <at name="item" index="5">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+            <at name="item" index="6">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+            <at name="item" index="7">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+            <at name="item" index="8">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+            <at name="item" index="9">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+            <at name="item" index="10">
+             <object classname="[Ljava.lang.Object;" size="3"/>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="rowgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+        <at name="colgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.FormMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">3</at>
+           <at name="row">8</at>
+           <at name="colspan">2</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+        </super>
+        <at name="id">embedded.975821162</at>
+        <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE</at>
+        <at name="colspecs">FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
+        <at name="components">
+         <object classname="java.util.LinkedList">
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">1</at>
+                <at name="row">1</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblStyle</at>
+                 <at name="width">34</at>
+                 <at name="text">_Style</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">14</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">1</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">javax.swing.JTextField</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JTextField</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="background" object="color">236,233,216</at>
+                 <at name="editable">false</at>
+                 <at name="name">txtStyle</at>
+                 <at name="width">388</at>
+                 <at name="height">20</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">5</at>
+                <at name="row">1</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">javax.swing.JButton</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JButton</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="actionCommand">...</at>
+                 <at name="name">btnStyle</at>
+                 <at name="width">44</at>
+                 <at name="text">...</at>
+                 <at name="height">22</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">3</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">javax.swing.JPanel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JPanel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="name">pnlStylePreview</at>
+                 <at name="width">388</at>
+                 <at name="height">12</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+         </object>
+        </at>
+        <at name="properties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.gui.form.GridView</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList"/>
+              </at>
+             </object>
+            </at>
+            <at name="name"/>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <at name="name">scollBars</at>
+              <at name="verticalpolicy">21</at>
+              <at name="horizontalpolicy">31</at>
+              <at name="border">
+               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                <super classname="com.jeta.forms.store.properties.BorderProperty">
+                 <at name="name">border</at>
+                </super>
+                <at name="borders">
+                 <object classname="java.util.LinkedList">
+                  <item >
+                   <at name="value">
+                    <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                     <super classname="com.jeta.forms.store.properties.BorderProperty">
+                      <at name="name">border</at>
+                     </super>
+                    </object>
+                   </at>
+                  </item>
+                 </object>
+                </at>
+               </object>
+              </at>
+             </object>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="cellpainters">
+         <object classname="com.jeta.forms.store.support.Matrix">
+          <at name="rows">
+           <object classname="[Ljava.lang.Object;" size="3">
+            <at name="item" index="0">
+             <object classname="[Ljava.lang.Object;" size="5"/>
+            </at>
+            <at name="item" index="1">
+             <object classname="[Ljava.lang.Object;" size="5"/>
+            </at>
+            <at name="item" index="2">
+             <object classname="[Ljava.lang.Object;" size="5"/>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="rowgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+        <at name="colgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+     <item >
+      <at name="value">
+       <object classname="com.jeta.forms.store.memento.FormMemento">
+        <super classname="com.jeta.forms.store.memento.ComponentMemento">
+         <at name="cellconstraints">
+          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+           <at name="column">2</at>
+           <at name="row">10</at>
+           <at name="colspan">3</at>
+           <at name="rowspan">1</at>
+           <at name="halign">default</at>
+           <at name="valign">default</at>
+           <at name="insets" object="insets">0,0,0,0</at>
+          </object>
+         </at>
+         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
+        </super>
+        <at name="id">embedded.I2e6e0981W15e6f783a58WT7ffe</at>
+        <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE</at>
+        <at name="colspecs">FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
+        <at name="components">
+         <object classname="java.util.LinkedList">
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">1</at>
+                <at name="row">1</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblOperation</at>
+                 <at name="width">62</at>
+                 <at name="text">_Operation</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">14</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">1</at>
+                <at name="colspan">3</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">javax.swing.JComboBox</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JComboBox</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="selectedItem">
+                  <object classname="com.jeta.forms.store.properties.ListItemProperty">
+                   <at name="name">listitem</at>
+                   <at name="label">Count</at>
+                   <at name="icon">
+                    <object classname="com.jeta.forms.store.properties.IconProperty">
+                     <at name="embedded">false</at>
+                     <at name="description"></at>
+                     <at name="width">0</at>
+                     <at name="height">0</at>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">cboOperation</at>
+                 <at name="width">431</at>
+                 <at name="items">
+                  <object classname="com.jeta.forms.store.properties.ItemsProperty">
+                   <at name="name">items</at>
+                   <at name="items">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.ListItemProperty">
+                        <at name="name">listitem</at>
+                        <at name="label">Count</at>
+                        <at name="icon">
+                         <object classname="com.jeta.forms.store.properties.IconProperty">
+                          <at name="embedded">false</at>
+                          <at name="description"></at>
+                          <at name="width">0</at>
+                          <at name="height">0</at>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                     </item>
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.ListItemProperty">
+                        <at name="name">listitem</at>
+                        <at name="label">Maximum</at>
+                        <at name="icon">
+                         <object classname="com.jeta.forms.store.properties.IconProperty">
+                          <at name="embedded">false</at>
+                          <at name="description"></at>
+                          <at name="width">0</at>
+                          <at name="height">0</at>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                     </item>
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.ListItemProperty">
+                        <at name="name">listitem</at>
+                        <at name="label">Minimum</at>
+                        <at name="icon">
+                         <object classname="com.jeta.forms.store.properties.IconProperty">
+                          <at name="embedded">false</at>
+                          <at name="description"></at>
+                          <at name="width">0</at>
+                          <at name="height">0</at>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                     </item>
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.ListItemProperty">
+                        <at name="name">listitem</at>
+                        <at name="label">Average</at>
+                        <at name="icon">
+                         <object classname="com.jeta.forms.store.properties.IconProperty">
+                          <at name="embedded">false</at>
+                          <at name="description"></at>
+                          <at name="width">0</at>
+                          <at name="height">0</at>
+                         </object>
+                        </at>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="height">18</at>
+                 <at name="itemCount">4</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">5</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblOperationAttribute</at>
+                 <at name="width">90</at>
+                 <at name="text">_Attribute</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">14</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">7</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblOperationValue</at>
+                 <at name="width">90</at>
+                 <at name="text">_Aditional_value</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">14</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">5</at>
+                <at name="row">5</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">javax.swing.JComboBox</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JComboBox</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">cboOperationAttribute</at>
+                 <at name="width">330</at>
+                 <at name="items">
+                  <object classname="com.jeta.forms.store.properties.ItemsProperty">
+                   <at name="name">items</at>
+                  </object>
+                 </at>
+                 <at name="height">20</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">5</at>
+                <at name="row">7</at>
+                <at name="colspan">1</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">javax.swing.JTextField</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">javax.swing.JTextField</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">txtOperationValue</at>
+                 <at name="width">330</at>
+                 <at name="height">20</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+          <item >
+           <at name="value">
+            <object classname="com.jeta.forms.store.memento.BeanMemento">
+             <super classname="com.jeta.forms.store.memento.ComponentMemento">
+              <at name="cellconstraints">
+               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
+                <at name="column">3</at>
+                <at name="row">3</at>
+                <at name="colspan">3</at>
+                <at name="rowspan">1</at>
+                <at name="halign">default</at>
+                <at name="valign">default</at>
+                <at name="insets" object="insets">0,0,0,0</at>
+               </object>
+              </at>
+              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
+             </super>
+             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
+             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
+             <at name="beanproperties">
+              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
+               <at name="properties">
+                <object classname="com.jeta.forms.store.support.PropertyMap">
+                 <at name="border">
+                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+                   <super classname="com.jeta.forms.store.properties.BorderProperty">
+                    <at name="name">border</at>
+                   </super>
+                   <at name="borders">
+                    <object classname="java.util.LinkedList">
+                     <item >
+                      <at name="value">
+                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                        <super classname="com.jeta.forms.store.properties.BorderProperty">
+                         <at name="name">border</at>
+                        </super>
+                       </object>
+                      </at>
+                     </item>
+                    </object>
+                   </at>
+                  </object>
+                 </at>
+                 <at name="name">lblOperationDescription</at>
+                 <at name="width">431</at>
+                 <at name="fill">
+                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+                   <at name="name">fill</at>
+                  </object>
+                 </at>
+                 <at name="height">12</at>
+                </object>
+               </at>
+              </object>
+             </at>
+            </object>
+           </at>
+          </item>
+         </object>
+        </at>
+        <at name="properties">
+         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+          <at name="classname">com.jeta.forms.gui.form.GridView</at>
+          <at name="properties">
+           <object classname="com.jeta.forms.store.support.PropertyMap">
+            <at name="border">
+             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+              <super classname="com.jeta.forms.store.properties.BorderProperty">
+               <at name="name">border</at>
+              </super>
+              <at name="borders">
+               <object classname="java.util.LinkedList"/>
+              </at>
+             </object>
+            </at>
+            <at name="name"></at>
+            <at name="fill">
+             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+              <at name="name">fill</at>
+             </object>
+            </at>
+            <at name="scollBars">
+             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+              <at name="name">scollBars</at>
+              <at name="verticalpolicy">21</at>
+              <at name="horizontalpolicy">31</at>
+             </object>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="cellpainters">
+         <object classname="com.jeta.forms.store.support.Matrix">
+          <at name="rows">
+           <object classname="[Ljava.lang.Object;" size="7">
+            <at name="item" index="0">
+             <object classname="[Ljava.lang.Object;" size="6"/>
+            </at>
+            <at name="item" index="1">
+             <object classname="[Ljava.lang.Object;" size="6"/>
+            </at>
+            <at name="item" index="2">
+             <object classname="[Ljava.lang.Object;" size="6"/>
+            </at>
+            <at name="item" index="3">
+             <object classname="[Ljava.lang.Object;" size="6"/>
+            </at>
+            <at name="item" index="4">
+             <object classname="[Ljava.lang.Object;" size="6"/>
+            </at>
+            <at name="item" index="5">
+             <object classname="[Ljava.lang.Object;" size="6"/>
+            </at>
+            <at name="item" index="6">
+             <object classname="[Ljava.lang.Object;" size="6"/>
+            </at>
+           </object>
+          </at>
+         </object>
+        </at>
+        <at name="rowgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+        <at name="colgroups">
+         <object classname="com.jeta.forms.store.memento.FormGroupSet">
+          <at name="groups">
+           <object classname="java.util.HashMap"/>
+          </at>
+         </object>
+        </at>
+       </object>
+      </at>
+     </item>
+    </object>
+   </at>
+   <at name="properties">
+    <object classname="com.jeta.forms.store.memento.PropertiesMemento">
+     <at name="classname">com.jeta.forms.gui.form.GridView</at>
+     <at name="properties">
+      <object classname="com.jeta.forms.store.support.PropertyMap">
+       <at name="border">
+        <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+         <super classname="com.jeta.forms.store.properties.BorderProperty">
+          <at name="name">border</at>
+         </super>
+         <at name="borders">
+          <object classname="java.util.LinkedList"/>
+         </at>
+        </object>
+       </at>
+       <at name="name"></at>
+       <at name="fill">
+        <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
+         <at name="name">fill</at>
+        </object>
+       </at>
+       <at name="scollBars">
+        <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
+         <at name="name">scollBars</at>
+         <at name="verticalpolicy">21</at>
+         <at name="horizontalpolicy">31</at>
+         <at name="border">
+          <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
+           <super classname="com.jeta.forms.store.properties.BorderProperty">
+            <at name="name">border</at>
+           </super>
+           <at name="borders">
+            <object classname="java.util.LinkedList">
+             <item >
+              <at name="value">
+               <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
+                <super classname="com.jeta.forms.store.properties.BorderProperty">
+                 <at name="name">border</at>
+                </super>
+               </object>
+              </at>
+             </item>
+            </object>
+           </at>
+          </object>
+         </at>
+        </object>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="cellpainters">
+    <object classname="com.jeta.forms.store.support.Matrix">
+     <at name="rows">
+      <object classname="[Ljava.lang.Object;" size="11">
+       <at name="item" index="0">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="1">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="2">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="3">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="4">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="5">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="6">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="7">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="8">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="9">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+       <at name="item" index="10">
+        <object classname="[Ljava.lang.Object;" size="5"/>
+       </at>
+      </object>
+     </at>
+    </object>
+   </at>
+   <at name="rowgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+   <at name="colgroups">
+    <object classname="com.jeta.forms.store.memento.FormGroupSet">
+     <at name="groups">
+      <object classname="java.util.HashMap"/>
+     </at>
+    </object>
+   </at>
+  </object>
+ </at>
+</object>
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditorView.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditorView.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditorView.java	(revision 2613)
@@ -0,0 +1,417 @@
+package org.gvsig.legend.aggregate.swing.impl;
+
+import com.jeta.open.i18n.I18NUtils;
+import com.jgoodies.forms.layout.CellConstraints;
+import com.jgoodies.forms.layout.FormLayout;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import javax.swing.Box;
+import javax.swing.ButtonGroup;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JSlider;
+import javax.swing.JSpinner;
+import javax.swing.JTextField;
+
+
+public class DefaultAggregateLegendEditorView extends JPanel
+{
+   JRadioButton rdbBasic = new JRadioButton();
+   ButtonGroup buttongroup1 = new ButtonGroup();
+   JRadioButton rdbStyled = new JRadioButton();
+   JLabel lblOutlineColor = new JLabel();
+   JLabel lblFillColor = new JLabel();
+   JLabel lblTextColor = new JLabel();
+   JLabel lblTextFont = new JLabel();
+   JLabel lblShowBounds = new JLabel();
+   JCheckBox chkShowBounds = new JCheckBox();
+   JLabel lblSymbolSize = new JLabel();
+   JTextField txtOutlineColor = new JTextField();
+   JButton btnOutlineColor = new JButton();
+   JLabel lblOutlineColorAlpha = new JLabel();
+   JSlider sldOutlineColorAlpha = new JSlider();
+   JTextField txtFillColor = new JTextField();
+   JButton btnFillColor = new JButton();
+   JLabel lblFillColorAlpha = new JLabel();
+   JSlider sldFillColorAlpha = new JSlider();
+   JTextField txtTextColor = new JTextField();
+   JButton btnTextColor = new JButton();
+   JLabel lblTextColorAlpha = new JLabel();
+   JSlider sldTextColorAlpha = new JSlider();
+   JTextField txtTextFont = new JTextField();
+   JButton btnTextFont = new JButton();
+   JSpinner spnSymbolSize = new JSpinner();
+   JLabel lblStyle = new JLabel();
+   JTextField txtStyle = new JTextField();
+   JButton btnStyle = new JButton();
+   JPanel pnlStylePreview = new JPanel();
+   JLabel lblOperation = new JLabel();
+   JComboBox cboOperation = new JComboBox();
+   JLabel lblOperationAttribute = new JLabel();
+   JLabel lblOperationValue = new JLabel();
+   JComboBox cboOperationAttribute = new JComboBox();
+   JTextField txtOperationValue = new JTextField();
+   JLabel lblOperationDescription = new JLabel();
+
+   /**
+    * Default constructor
+    */
+   public DefaultAggregateLegendEditorView()
+   {
+      initializePanel();
+   }
+
+   /**
+    * Adds fill components to empty cells in the first row and first column of the grid.
+    * This ensures that the grid spacing will be the same as shown in the designer.
+    * @param cols an array of column indices in the first row where fill components should be added.
+    * @param rows an array of row indices in the first column where fill components should be added.
+    */
+   void addFillComponents( Container panel, int[] cols, int[] rows )
+   {
+      Dimension filler = new Dimension(10,10);
+
+      boolean filled_cell_11 = false;
+      CellConstraints cc = new CellConstraints();
+      if ( cols.length > 0 && rows.length > 0 )
+      {
+         if ( cols[0] == 1 && rows[0] == 1 )
+         {
+            /** add a rigid area  */
+            panel.add( Box.createRigidArea( filler ), cc.xy(1,1) );
+            filled_cell_11 = true;
+         }
+      }
+
+      for( int index = 0; index < cols.length; index++ )
+      {
+         if ( cols[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(cols[index],1) );
+      }
+
+      for( int index = 0; index < rows.length; index++ )
+      {
+         if ( rows[index] == 1 && filled_cell_11 )
+         {
+            continue;
+         }
+         panel.add( Box.createRigidArea( filler ), cc.xy(1,rows[index]) );
+      }
+
+   }
+
+   /**
+    * Helper method to load an image file from the CLASSPATH
+    * @param imageName the package and name of the file to load relative to the CLASSPATH
+    * @return an ImageIcon instance with the specified image file
+    * @throws IllegalArgumentException if the image resource cannot be loaded.
+    */
+   public ImageIcon loadImage( String imageName )
+   {
+      try
+      {
+         ClassLoader classloader = getClass().getClassLoader();
+         java.net.URL url = classloader.getResource( imageName );
+         if ( url != null )
+         {
+            ImageIcon icon = new ImageIcon( url );
+            return icon;
+         }
+      }
+      catch( Exception e )
+      {
+         e.printStackTrace();
+      }
+      throw new IllegalArgumentException( "Unable to load image: " + imageName );
+   }
+
+   /**
+    * Method for recalculating the component orientation for 
+    * right-to-left Locales.
+    * @param orientation the component orientation to be applied
+    */
+   public void applyComponentOrientation( ComponentOrientation orientation )
+   {
+      // Not yet implemented...
+      // I18NUtils.applyComponentOrientation(this, orientation);
+      super.applyComponentOrientation(orientation);
+   }
+
+   public JPanel createPanel()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:4DLU:NONE,FILL:8DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE","CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      rdbBasic.setActionCommand("Basic");
+      rdbBasic.setName("rdbBasic");
+      rdbBasic.setText("_Use_basic_cluster_mark");
+      buttongroup1.add(rdbBasic);
+      jpanel1.add(rdbBasic,cc.xywh(2,2,3,1));
+
+      rdbStyled.setActionCommand("Styled");
+      rdbStyled.setName("rdbStyled");
+      rdbStyled.setText("_Use_styled_cluster_mark");
+      buttongroup1.add(rdbStyled);
+      jpanel1.add(rdbStyled,cc.xywh(2,6,3,1));
+
+      jpanel1.add(createPanel1(),cc.xywh(3,4,2,1));
+      jpanel1.add(createPanel6(),cc.xywh(3,8,2,1));
+      jpanel1.add(createPanel7(),cc.xywh(2,10,3,1));
+      addFillComponents(jpanel1,new int[]{ 1,2,3,4,5 },new int[]{ 1,2,3,4,5,6,7,8,9,10,11 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel1()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0)","CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      lblOutlineColor.setName("lblOutlineColor");
+      lblOutlineColor.setText("_Outline_color");
+      jpanel1.add(lblOutlineColor,cc.xy(1,3));
+
+      lblFillColor.setName("lblFillColor");
+      lblFillColor.setText("_Fill_color");
+      jpanel1.add(lblFillColor,cc.xy(1,5));
+
+      lblTextColor.setName("lblTextColor");
+      lblTextColor.setText("_Text_color");
+      jpanel1.add(lblTextColor,cc.xy(1,7));
+
+      lblTextFont.setName("lblTextFont");
+      lblTextFont.setText("_Text_font");
+      jpanel1.add(lblTextFont,cc.xy(1,9));
+
+      lblShowBounds.setName("lblShowBounds");
+      lblShowBounds.setText("_Show_bounds");
+      jpanel1.add(lblShowBounds,cc.xy(1,11));
+
+      chkShowBounds.setName("chkShowBounds");
+      jpanel1.add(chkShowBounds,cc.xy(3,11));
+
+      lblSymbolSize.setName("lblSymbolSize");
+      lblSymbolSize.setText("_Symbol_size");
+      jpanel1.add(lblSymbolSize,cc.xy(1,1));
+
+      jpanel1.add(createPanel2(),cc.xy(3,3));
+      jpanel1.add(createPanel3(),cc.xy(3,5));
+      jpanel1.add(createPanel4(),cc.xy(3,7));
+      jpanel1.add(createPanel5(),cc.xy(3,9));
+      spnSymbolSize.setName("spnSymbolSize");
+      jpanel1.add(spnSymbolSize,cc.xy(3,1));
+
+      addFillComponents(jpanel1,new int[]{ 2 },new int[]{ 2,4,6,8,10 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel2()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      txtOutlineColor.setBackground(new Color(236,233,216));
+      txtOutlineColor.setEditable(false);
+      txtOutlineColor.setFont(new Font("Courier 10 Pitch",Font.PLAIN,11));
+      txtOutlineColor.setName("txtOutlineColor");
+      txtOutlineColor.setHorizontalAlignment(JTextField.RIGHT);
+      jpanel1.add(txtOutlineColor,cc.xy(1,1));
+
+      btnOutlineColor.setActionCommand("...");
+      btnOutlineColor.setName("btnOutlineColor");
+      btnOutlineColor.setText("...");
+      jpanel1.add(btnOutlineColor,cc.xy(3,1));
+
+      lblOutlineColorAlpha.setName("lblOutlineColorAlpha");
+      lblOutlineColorAlpha.setText("Alpha");
+      jpanel1.add(lblOutlineColorAlpha,cc.xy(5,1));
+
+      sldOutlineColorAlpha.setMajorTickSpacing(20);
+      sldOutlineColorAlpha.setName("sldOutlineColorAlpha");
+      jpanel1.add(sldOutlineColorAlpha,cc.xy(7,1));
+
+      addFillComponents(jpanel1,new int[]{ 2,4,6 },new int[0]);
+      return jpanel1;
+   }
+
+   public JPanel createPanel3()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      txtFillColor.setBackground(new Color(236,233,216));
+      txtFillColor.setEditable(false);
+      txtFillColor.setFont(new Font("Courier 10 Pitch",Font.PLAIN,11));
+      txtFillColor.setName("txtFillColor");
+      txtFillColor.setScrollOffset(1);
+      txtFillColor.setHorizontalAlignment(JTextField.RIGHT);
+      jpanel1.add(txtFillColor,cc.xy(1,1));
+
+      btnFillColor.setActionCommand("...");
+      btnFillColor.setName("btnFillColor");
+      btnFillColor.setText("...");
+      jpanel1.add(btnFillColor,cc.xy(3,1));
+
+      lblFillColorAlpha.setName("lblFillColorAlpha");
+      lblFillColorAlpha.setText("Alpha");
+      jpanel1.add(lblFillColorAlpha,cc.xy(5,1));
+
+      sldFillColorAlpha.setMajorTickSpacing(20);
+      sldFillColorAlpha.setName("sldFillColorAlpha");
+      jpanel1.add(sldFillColorAlpha,cc.xy(7,1));
+
+      addFillComponents(jpanel1,new int[]{ 2,4,6 },new int[0]);
+      return jpanel1;
+   }
+
+   public JPanel createPanel4()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      txtTextColor.setBackground(new Color(236,233,216));
+      txtTextColor.setEditable(false);
+      txtTextColor.setFont(new Font("Courier 10 Pitch",Font.PLAIN,11));
+      txtTextColor.setName("txtTextColor");
+      txtTextColor.setScrollOffset(1);
+      txtTextColor.setHorizontalAlignment(JTextField.RIGHT);
+      jpanel1.add(txtTextColor,cc.xy(1,1));
+
+      btnTextColor.setActionCommand("...");
+      btnTextColor.setName("btnTextColor");
+      btnTextColor.setText("...");
+      jpanel1.add(btnTextColor,cc.xy(3,1));
+
+      lblTextColorAlpha.setName("lblTextColorAlpha");
+      lblTextColorAlpha.setText("Alpha");
+      jpanel1.add(lblTextColorAlpha,cc.xy(5,1));
+
+      sldTextColorAlpha.setMajorTickSpacing(20);
+      sldTextColorAlpha.setName("sldTextColorAlpha");
+      jpanel1.add(sldTextColorAlpha,cc.xy(7,1));
+
+      addFillComponents(jpanel1,new int[]{ 2,4,6 },new int[0]);
+      return jpanel1;
+   }
+
+   public JPanel createPanel5()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      txtTextFont.setBackground(new Color(236,233,216));
+      txtTextFont.setEditable(false);
+      txtTextFont.setName("txtTextFont");
+      jpanel1.add(txtTextFont,cc.xy(1,1));
+
+      btnTextFont.setActionCommand("...");
+      btnTextFont.setName("btnTextFont");
+      btnTextFont.setText("...");
+      jpanel1.add(btnTextFont,cc.xy(3,1));
+
+      addFillComponents(jpanel1,new int[]{ 2 },new int[0]);
+      return jpanel1;
+   }
+
+   public JPanel createPanel6()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE","CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      lblStyle.setName("lblStyle");
+      lblStyle.setText("_Style");
+      jpanel1.add(lblStyle,cc.xy(1,1));
+
+      txtStyle.setBackground(new Color(236,233,216));
+      txtStyle.setEditable(false);
+      txtStyle.setName("txtStyle");
+      jpanel1.add(txtStyle,cc.xy(3,1));
+
+      btnStyle.setActionCommand("...");
+      btnStyle.setName("btnStyle");
+      btnStyle.setText("...");
+      jpanel1.add(btnStyle,cc.xy(5,1));
+
+      pnlStylePreview.setName("pnlStylePreview");
+      jpanel1.add(pnlStylePreview,cc.xy(3,3));
+
+      addFillComponents(jpanel1,new int[]{ 2,4 },new int[]{ 2,3 });
+      return jpanel1;
+   }
+
+   public JPanel createPanel7()
+   {
+      JPanel jpanel1 = new JPanel();
+      FormLayout formlayout1 = new FormLayout("FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE","CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE");
+      CellConstraints cc = new CellConstraints();
+      jpanel1.setLayout(formlayout1);
+
+      lblOperation.setName("lblOperation");
+      lblOperation.setText("_Operation");
+      jpanel1.add(lblOperation,cc.xy(1,1));
+
+      cboOperation.setName("cboOperation");
+      cboOperation.addItem("Count");
+      cboOperation.addItem("Maximum");
+      cboOperation.addItem("Minimum");
+      cboOperation.addItem("Average");
+      jpanel1.add(cboOperation,cc.xywh(3,1,3,1));
+
+      lblOperationAttribute.setName("lblOperationAttribute");
+      lblOperationAttribute.setText("_Attribute");
+      jpanel1.add(lblOperationAttribute,cc.xy(3,5));
+
+      lblOperationValue.setName("lblOperationValue");
+      lblOperationValue.setText("_Aditional_value");
+      jpanel1.add(lblOperationValue,cc.xy(3,7));
+
+      cboOperationAttribute.setName("cboOperationAttribute");
+      jpanel1.add(cboOperationAttribute,cc.xy(5,5));
+
+      txtOperationValue.setName("txtOperationValue");
+      jpanel1.add(txtOperationValue,cc.xy(5,7));
+
+      lblOperationDescription.setName("lblOperationDescription");
+      jpanel1.add(lblOperationDescription,cc.xywh(3,3,3,1));
+
+      addFillComponents(jpanel1,new int[]{ 2,4,5,6 },new int[]{ 2,3,4,5,6,7 });
+      return jpanel1;
+   }
+
+   /**
+    * Initializer
+    */
+   protected void initializePanel()
+   {
+      setLayout(new BorderLayout());
+      add(createPanel(), BorderLayout.CENTER);
+   }
+
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendSwingManager.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendSwingManager.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendSwingManager.java	(revision 2613)
@@ -0,0 +1,36 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright © 2007-2015 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 2
+ * 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.legend.aggregate.swing.impl;
+
+import org.gvsig.legend.aggregate.swing.api.AggregateLegendSwingManager;
+import org.gvsig.legend.aggregate.swing.api.AggregateLegendEditor;
+
+public class DefaultAggregateLegendSwingManager implements AggregateLegendSwingManager {
+
+    @Override
+    public AggregateLegendEditor createAggregatedLegendEditor() {
+        return new DefaultAggregateLegendEditor();
+    }
+
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditor.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditor.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditor.java	(revision 2613)
@@ -0,0 +1,342 @@
+
+package org.gvsig.legend.aggregate.swing.impl;
+
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.Collection;
+import javax.swing.AbstractButton;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.ImageIcon;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.SwingUtilities;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import org.gvsig.app.gui.styling.StyleSelector;
+import org.gvsig.app.project.documents.view.legend.gui.Features;
+import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
+import org.gvsig.fmap.dal.feature.FeatureStore;
+import org.gvsig.fmap.dal.feature.FeatureType;
+import org.gvsig.fmap.geom.Geometry;
+import org.gvsig.fmap.mapcontext.layers.FLayer;
+import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
+import org.gvsig.fmap.mapcontext.rendering.legend.ILegend;
+import org.gvsig.fmap.mapcontext.rendering.symbols.styles.ILabelStyle;
+import org.gvsig.legend.aggregate.lib.api.AggregateLegend;
+import org.gvsig.legend.aggregate.lib.api.AggregateLegendLocator;
+import org.gvsig.legend.aggregate.lib.api.Operation;
+import org.gvsig.legend.aggregate.swing.api.AggregateLegendEditor;
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.i18n.I18nManager;
+import org.gvsig.tools.swing.api.ColorChooserController;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.windowmanager.Dialog;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager;
+import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
+import org.gvsig.tools.swing.icontheme.IconTheme;
+import org.jfree.ui.FontChooserPanel;
+
+
+public class DefaultAggregateLegendEditor extends DefaultAggregateLegendEditorView implements AggregateLegendEditor {
+
+    private static final long serialVersionUID = 4307714097793669675L;
+
+    private final Class<? extends AggregateLegend> legendClass;
+    private AggregateLegend legend;
+    private FLayer layer;
+    private ILabelStyle style;
+    private ColorChooserController outlineColor;
+    private ColorChooserController fillColor;
+    private ColorChooserController textColor;
+    private Font font;
+
+    public DefaultAggregateLegendEditor() {
+        this.legendClass = AggregateLegendLocator.getAggregateLegendManager().getLegendClass();
+        this.initComponents();
+    }
+    
+    private void initComponents() {
+        this.btnStyle.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                doSelectLabelStyle();
+            }
+        });
+        this.outlineColor = ToolsSwingLocator.getToolsSwingManager().createColorChooserController(
+            txtOutlineColor, btnOutlineColor, sldOutlineColorAlpha
+        );
+        this.fillColor = ToolsSwingLocator.getToolsSwingManager().createColorChooserController(
+            txtFillColor, btnFillColor, sldFillColorAlpha
+        );
+        this.textColor = ToolsSwingLocator.getToolsSwingManager().createColorChooserController(
+            txtTextColor, btnTextColor, sldTextColorAlpha
+        );
+        Collection<Operation> operations = AggregateLegendLocator.getAggregateLegendManager().getOperations();
+        DefaultComboBoxModel<Operation> operationsModel = new DefaultComboBoxModel<>();
+        for( Operation operation : operations ) {
+            operationsModel.addElement(operation);
+        }        
+        this.cboOperation.setModel(operationsModel);
+        this.rdbBasic.addChangeListener(new ChangeListener() {
+            @Override
+            public void stateChanged(ChangeEvent e) {
+                doChangeMode();
+            }
+        });
+        this.rdbStyled.addChangeListener(new ChangeListener() {
+            @Override
+            public void stateChanged(ChangeEvent e) {
+                doChangeMode();
+            }
+        });
+        this.btnTextFont.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                showFontChooser();
+            }
+        });
+        this.cboOperation.addItemListener(new ItemListener() {
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                // Para evitar cuelgues en depuracion
+                SwingUtilities.invokeLater(new Runnable() {
+                    @Override
+                    public void run() {
+                        doOperationChanged();
+                    }
+                });
+            }
+        });
+        this.translateAll();
+    }
+    
+    private void translate(AbstractButton component) {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        component.setText(i18n.getTranslation(component.getText()));
+    }
+    
+    private void translate(JLabel component) {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        component.setText(i18n.getTranslation(component.getText()));
+    }
+    
+    private void translateAll() {
+        this.translate(this.rdbBasic);
+        this.translate(this.lblSymbolSize);        
+        this.translate(this.lblFillColor);
+        this.translate(this.lblFillColorAlpha);
+        this.translate(this.lblOutlineColor);
+        this.translate(this.lblOutlineColorAlpha);
+        this.translate(this.lblTextColor);
+        this.translate(this.lblTextColorAlpha);
+        this.translate(this.lblTextFont);
+        this.translate(this.lblShowBounds);
+        this.translate(this.rdbStyled);
+        this.translate(this.lblStyle);
+        this.translate(this.lblOperation);
+        this.translate(this.lblOperationAttribute);
+        this.translate(this.lblOperationValue);
+    }
+
+    @Override
+    public void setData(FLayer layer, ILegend legend) {
+        this.layer = layer;
+        if( this.getLegendClass().isInstance(legend) ) {
+            this.legend = (AggregateLegend) legend;
+        } else {
+            this.legend = AggregateLegendLocator.getAggregateLegendManager().createAggregateLegend();
+        }
+        this.spnSymbolSize.setValue(this.legend.getSymbolSize());
+        this.outlineColor.set(this.legend.getOutlineColor());
+        this.fillColor.set(this.legend.getFillColor());
+        this.textColor.set(this.legend.getTextColor());
+        this.chkShowBounds.setSelected(this.legend.isShowBounds());
+        this.font = this.legend.getFont();
+        this.txtTextFont.setText(getFontLabel(font));
+        if( this.legend.getLabelStyle()!=null ) {
+            this.txtStyle.setText(this.legend.getLabelStyle().getDescription());
+        }
+        Operation operation = this.legend.getOperation();
+        this.txtOperationValue.setText(operation.getAditionalValue()==null? "":operation.getAditionalValue());
+        if( this.layer instanceof FLyrVect ) {
+            FeatureStore store = ((FLyrVect)this.layer).getFeatureStore();
+            try {
+                FeatureType type = store.getDefaultFeatureType();
+                DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>();
+                for( FeatureAttributeDescriptor attr : type ) {
+                    model.addElement(attr.getName());
+                }
+                this.cboOperationAttribute.setModel(model);
+            } catch (DataException ex) {
+                this.cboOperationAttribute.removeAllItems();
+            }
+            this.cboOperationAttribute.setSelectedIndex(0);
+            this.cboOperationAttribute.setSelectedItem(operation.getAttributeName());
+        }
+        for( int i=0; i<this.cboOperation.getItemCount(); i++ ) {
+            Operation x = (Operation) this.cboOperation.getItemAt(i);
+            if( x.getName().equalsIgnoreCase(this.legend.getOperation().getName()) ) {
+                this.cboOperation.setSelectedIndex(i);
+                doOperationChanged();
+                break;
+            }
+        }
+        this.rdbBasic.setSelected(!this.legend.isUseStyle());
+        this.rdbStyled.setSelected(this.legend.isUseStyle());
+    }
+
+    @Override
+    public ILegend getLegend() {
+
+        legend.setUseStyle(this.rdbStyled.isSelected());
+        legend.setSymbolSize((int) this.spnSymbolSize.getValue());
+        legend.setOutlineColor(this.outlineColor.get());
+        legend.setFillColor(this.fillColor.get());
+        legend.setTextColor(this.textColor.get());
+        legend.setShowBounds(this.chkShowBounds.isSelected());
+        legend.setLabelStyle(this.style);
+        legend.setFont(this.font);
+        Operation operation = (Operation) this.cboOperation.getSelectedItem();
+        if( operation!=null ) {
+            operation = operation.clone();
+            if( operation.isAditionalValueRequiered() ) {
+                operation.setAditionalValue(this.txtOperationValue.getText());
+            }
+            if( operation.isAttributeRequiered() ) {
+                operation.setAttributeName((String) this.cboOperationAttribute.getSelectedItem());
+            }
+            this.legend.setOperation(operation);
+        }
+        return legend;
+    }
+
+    private void doChangeMode() {
+        if( this.rdbBasic.isSelected() ) {
+            this.spnSymbolSize.setEnabled(true);
+            this.fillColor.setEnabled(true);
+            this.outlineColor.setEnabled(true);
+            this.textColor.setEnabled(true);
+            this.txtTextFont.setEnabled(true);
+            this.chkShowBounds.setEnabled(true);
+            
+            this.btnStyle.setEnabled(false);
+        } else {
+            this.spnSymbolSize.setEnabled(false);
+            this.fillColor.setEnabled(false);
+            this.outlineColor.setEnabled(false);
+            this.textColor.setEnabled(false);
+            this.txtTextFont.setEnabled(false);
+            this.chkShowBounds.setEnabled(false);
+            
+            this.btnStyle.setEnabled(true);
+        }
+    }
+    
+    private void doOperationChanged() {
+        Operation operation = (Operation) this.cboOperation.getSelectedItem();
+        if( operation==null ) {
+            this.cboOperationAttribute.setEnabled(false);
+            this.txtOperationValue.setEnabled(false);
+            this.lblOperationDescription.setText("");
+            return;
+        }
+        this.txtOperationValue.setEnabled(operation.isAditionalValueRequiered());
+        this.cboOperationAttribute.setEnabled(operation.isAttributeRequiered());
+        if( operation.isAttributeRequiered() && this.cboOperationAttribute.getSelectedIndex()<0 ) {
+            this.cboOperationAttribute.setSelectedIndex(0);
+        }
+        //this.lblOperationDescription.setText(operation.getDescription());
+        this.cboOperation.setToolTipText(operation.getDescription());
+    }
+    
+    private void showFontChooser() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        WindowManager_v2 winmgr = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
+        
+        final FontChooserPanel fontChooser = new FontChooserPanel(font);
+//        fontChooser.setPreferredSize(new Dimension(500,350));
+        final Dialog dialog = winmgr.createDialog(
+            fontChooser,
+            i18n.getTranslation("_Select_font"),
+            null, 
+            WindowManager_v2.BUTTONS_OK_CANCEL
+        );
+        dialog.addActionListener(new ActionListener() {
+            @Override
+            public void actionPerformed(ActionEvent e) {
+                if( dialog.getAction() == WindowManager_v2.BUTTONS_OK ) {
+                    font = fontChooser.getSelectedFont();
+                    txtTextFont.setText(getFontLabel(font));
+                }
+            }
+        });
+        dialog.show(WindowManager.MODE.DIALOG);
+    }
+
+    private String getFontLabel(Font font) {
+        StringBuilder b = new StringBuilder();
+        b.append(font.getFontName());
+        b.append(", ");
+        b.append(font.getSize());
+        return b.toString();
+    }
+    
+    @Override
+    public String getDescription() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        return i18n.getTranslation( "_Aggregate_legend_description");
+    }
+
+    @Override
+    public ImageIcon getIcon() {
+        IconTheme theme = ToolsSwingLocator.getIconThemeManager().getCurrent();
+        return theme.get("legend-overview-vectorial-aggregated");
+    }
+
+    @Override
+	public Class getParentClass() {
+		return Features.class;
+	}
+
+    @Override
+    public String getTitle() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        return i18n.getTranslation( "_Aggregate_legend");
+    }
+
+    @Override
+    public JPanel getPanel() {
+        return this;
+    }
+
+    @Override
+    public Class getLegendClass() {
+        return this.legendClass;
+    }
+
+    @Override
+    public boolean isSuitableFor(FLayer layer) {
+        return true;
+    }
+
+    private void doSelectLabelStyle() {
+        I18nManager i18n = ToolsLocator.getI18nManager();
+        WindowManager_v2 winmanager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
+        final StyleSelector styleSelector = new StyleSelector(this.style, Geometry.TYPES.POINT);
+        styleSelector.setPreferredSize(new Dimension(600, 350));
+        winmanager.showWindow(
+            styleSelector,
+            i18n.getTranslation("_Select_style"),
+            WindowManager.MODE.DIALOG
+        );
+        ILabelStyle x = (ILabelStyle) styleSelector.getSelectedObject();
+        if( x != null ) {
+            this.style = x;
+        }
+    }
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/pom.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/pom.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/pom.xml	(revision 2613)
@@ -0,0 +1,42 @@
+<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>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.legend.aggregate.swing</artifactId>
+    <version>1.0.22</version>
+  </parent>
+  <groupId>org.gvsig</groupId>
+  <artifactId>org.gvsig.legend.aggregate.swing.impl</artifactId>
+  <dependencies>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.legend.aggregate.swing.api</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.legend.aggregate.lib.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.tools.swing.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.symbology.lib.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+        <groupId>org.jfree</groupId>
+        <artifactId>jcommon</artifactId>
+        <scope>compile</scope>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Property changes on: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl
___________________________________________________________________
Added: svn:ignore
   + target


Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendEditor.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendEditor.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendEditor.java	(revision 2613)
@@ -0,0 +1,9 @@
+
+package org.gvsig.legend.aggregate.swing.api;
+
+import org.gvsig.app.project.documents.view.legend.gui.ILegendPanel;
+
+
+public interface AggregateLegendEditor extends ILegendPanel {
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendSwingLocator.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendSwingLocator.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendSwingLocator.java	(revision 2613)
@@ -0,0 +1,107 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright © 2007-2015 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 2
+ * 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.legend.aggregate.swing.api;
+
+import org.gvsig.tools.locator.AbstractLocator;
+import org.gvsig.tools.locator.Locator;
+import org.gvsig.tools.locator.LocatorException;
+
+
+/**
+ * @author fdiaz
+ *
+ */
+public class AggregateLegendSwingLocator extends AbstractLocator {
+    /**
+     * LrsSwing locator name
+     */
+    private static final String LOCATOR_NAME = "AggregateLegendSwingLocator";
+
+    /**
+     * LrsSwing manager name
+     */
+    public static final String MANAGER_NAME = "AggregateLegendSwingManager";
+
+    /**
+     * LrsSwing manager description
+     */
+    private static final String MANAGER_DESCRIPTION =
+        "Lrs Swing Algorithms Manager of gvSIG";
+
+
+    /**
+     * Unique instance
+     */
+    private static final AggregateLegendSwingLocator instance = new AggregateLegendSwingLocator();
+
+
+    /* (non-Javadoc)
+     * @see org.gvsig.tools.locator.Locator#getLocatorName()
+     */
+    @Override
+    public String getLocatorName() {
+        return LOCATOR_NAME;
+    }
+
+
+    /**
+     * Registers the Class implementing the LrsSwingManager interface.
+     *
+     * @param clazz
+     *            implementing the LrsAlgorthmsSwingManager interface
+     */
+    public static void registerAggregateLegendSwingManager(Class clazz){
+        getInstance().register(MANAGER_NAME, MANAGER_DESCRIPTION, clazz);
+    }
+
+    /**
+     * Registers the default Class implementing the LrsSwingManager interface
+     *
+     * @param clazz
+     *            implementing the LrsAlgorthmsSwingManager interface
+     */
+    public static void registerDefaultAggregateLegendSwingManager(Class clazz){
+        getInstance().registerDefault(MANAGER_NAME, MANAGER_DESCRIPTION, clazz);
+    }
+
+    /**
+     * Return a reference to AggregateLegendSwingManager.
+     *
+     * @return a reference to AggregateLegendSwingManager
+     * @throws LocatorException
+     *             if there is no access to the class or the class
+     *             cannot be instantiated
+     * @see Locator#get(String)
+     */
+    public static AggregateLegendSwingManager getAggregateLegendSwingManager() throws LocatorException {
+        return (AggregateLegendSwingManager)(getInstance().get(MANAGER_NAME));
+    }
+
+    /**
+     * @return
+     */
+    public static Locator getInstance() {
+        return instance;
+    }
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendSwingLibrary.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendSwingLibrary.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendSwingLibrary.java	(revision 2613)
@@ -0,0 +1,63 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright © 2007-2015 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 2
+ * 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.legend.aggregate.swing.api;
+
+import java.io.InputStream;
+import org.gvsig.legend.aggregate.lib.api.AggregateLegendLibrary;
+
+import org.gvsig.tools.ToolsLocator;
+import org.gvsig.tools.dynobject.DynStruct;
+import org.gvsig.tools.library.AbstractLibrary;
+import org.gvsig.tools.library.LibraryException;
+import org.gvsig.tools.locator.ReferenceNotRegisteredException;
+import org.gvsig.tools.persistence.PersistenceManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * @author fdiaz
+ *
+ */
+public class AggregateLegendSwingLibrary extends AbstractLibrary {
+
+	private static final Logger LOG = LoggerFactory.getLogger(AggregateLegendSwingLibrary.class);
+	
+	@Override
+	protected void doInitialize() throws LibraryException {
+		registerAsAPI(AggregateLegendSwingLibrary.class);	
+        require(AggregateLegendLibrary.class);
+	}
+	
+	@Override
+	protected void doPostInitialize() throws LibraryException {
+		// Validate there is any implementation registered.
+		AggregateLegendSwingManager manager = AggregateLegendSwingLocator.getAggregateLegendSwingManager();
+		if (manager == null) {
+			throw new ReferenceNotRegisteredException(
+					AggregateLegendSwingLocator.MANAGER_NAME, AggregateLegendSwingLocator.getInstance());
+		}
+	}
+
+
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendSwingManager.java
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendSwingManager.java	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/java/org/gvsig/legend/aggregate/swing/api/AggregateLegendSwingManager.java	(revision 2613)
@@ -0,0 +1,28 @@
+/* gvSIG. Desktop Geographic Information System.
+ *
+ * Copyright © 2007-2015 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 2
+ * 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.legend.aggregate.swing.api;
+
+public interface AggregateLegendSwingManager {
+
+    public AggregateLegendEditor createAggregatedLegendEditor();
+}
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library	(revision 2613)
@@ -0,0 +1 @@
+org.gvsig.legend.aggregate.swing.api.AggregateLegendSwingLibrary
\ No newline at end of file
Index: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/pom.xml
===================================================================
--- org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/pom.xml	(revision 0)
+++ org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api/pom.xml	(revision 2613)
@@ -0,0 +1,28 @@
+<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>
+  <parent>
+    <groupId>org.gvsig</groupId>
+    <artifactId>org.gvsig.legend.aggregate.swing</artifactId>
+    <version>1.0.22</version>
+  </parent>
+  <groupId>org.gvsig</groupId>
+  <artifactId>org.gvsig.legend.aggregate.swing.api</artifactId>
+  <name>org.gvsig.legend.aggregate.swing.api</name>
+  <dependencies>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.tools.swing.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.legend.aggregate.lib.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.gvsig</groupId>
+      <artifactId>org.gvsig.symbology.swing.api</artifactId>
+      <scope>compile</scope>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Property changes on: org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.22/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.api
___________________________________________________________________
Added: svn:ignore
   + target


