Revision 2853

View differences:

org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/buildNumber.properties
1
#Wed Oct 16 00:04:12 CEST 2019
2
buildNumber=30
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
1
<!-- gvSIG. Desktop Geographic Information System. Copyright (C) 2007-2013 gvSIG
2
  Association. This program is free software; you can redistribute it and/or modify
3
  it under the terms of the GNU General Public License as published by the Free Software
4
  Foundation; either version 3 of the License, or (at your option) any later version.
5
  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
6
  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
7
  PURPOSE. See the GNU General Public License for more details. You should have received
8
  a copy of the GNU General Public License along with this program; if not, write to
9
  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
10
  USA. For any additional information, do not hesitate to contact us at info AT gvsig.com,
11
  or visit our website www.gvsig.com. -->
12
<assembly>
13
  <id>gvsig-plugin-package</id>
14
  <formats>
15
    <format>zip</format>
16
  </formats>
17
  <baseDirectory>${project.artifactId}</baseDirectory>
18
  <includeBaseDirectory>true</includeBaseDirectory>
19
  <files>
20
    <file>
21
      <source>target/${project.artifactId}-${project.version}.jar</source>
22
      <outputDirectory>lib</outputDirectory>
23
    </file>
24
    <file>
25
      <source>target/package.info</source>
26
    </file>
27
  </files>
28

  
29
  <fileSets>
30
    <fileSet>
31
      <directory>src/main/resources-plugin</directory>
32
      <outputDirectory>.</outputDirectory>
33
    </fileSet>
34
  </fileSets>
35

  
36

  
37
  <dependencySets>
38
    <dependencySet>
39
      <useProjectArtifact>false</useProjectArtifact>
40
      <useTransitiveDependencies>false</useTransitiveDependencies>
41
      <outputDirectory>lib</outputDirectory>
42
      <includes>
43
        <include>org.gvsig:org.gvsig.legend.aggregate.lib.api</include>
44
        <include>org.gvsig:org.gvsig.legend.aggregate.lib.impl</include>
45
        <include>org.gvsig:org.gvsig.legend.aggregate.swing.api</include>
46
        <include>org.gvsig:org.gvsig.legend.aggregate.swing.impl</include>
47
        <include>org.jfree:jcommon</include>
48
      </includes>
49
    </dependencySet>
50
  </dependencySets>
51

  
52
</assembly>
53

  
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/java/org/gvsig/legend/aggregate/app/AggregateLegendTextExtension.java
1

  
2
package org.gvsig.legend.aggregate.app;
3

  
4
import org.gvsig.andami.IconThemeHelper;
5
import org.gvsig.andami.plugins.Extension;
6

  
7

  
8
public class AggregateLegendTextExtension extends Extension {
9

  
10
    @Override
11
    public void initialize() {
12
        IconThemeHelper.registerIcon("legend", "legend-overview-vectorial-aggregated", this);
13
    }
14

  
15
    @Override
16
    public void execute(String string) {
17
    }
18

  
19
    @Override
20
    public boolean isEnabled() {
21
        return true;
22
    }
23

  
24
    @Override
25
    public boolean isVisible() {
26
        return true;
27
    }
28
    
29
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/config.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!-- gvSIG. Desktop Geographic Information System. Copyright (C) 2007-2013 gvSIG
3
  Association. This program is free software; you can redistribute it and/or modify
4
  it under the terms of the GNU General Public License as published by the Free Software
5
  Foundation; either version 3 of the License, or (at your option) any later version.
6
  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
7
  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8
  PURPOSE. See the GNU General Public License for more details. You should have received
9
  a copy of the GNU General Public License along with this program; if not, write to
10
  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
11
  USA. For any additional information, do not hesitate to contact us at info AT gvsig.com,
12
  or visit our website www.gvsig.com. -->
13
<plugin-config>
14
  <depends plugin-name="org.gvsig.app.mainplugin" />
15
  <resourceBundle name="text" />
16
  <libraries library-dir="lib" />
17
  <extensions>
18
    <extension class-name="org.gvsig.legend.aggregate.app.AggregateLegendTextExtension"
19
      description="" active="true" priority="1">
20

  
21
      <action 
22
          name="aggregatelegend-set" 
23
          label="_Set_aggregated_legend" 
24
          tooltip="_Set_aggregated_legend"
25
          position="900700100" 
26
          action-command="aggregatelegend-set"
27
          accelerator=""
28
      />
29

  
30
    </extension>
31

  
32
  </extensions>
33
</plugin-config>
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/plugin-persistence.def
1
<?xml version="1.0"?>
2
<!--
3
Definitions of plugin persistence org.gvsig.aggregatelegend.app.mainplugin
4
 -->
5
<definitions>
6
  <version>1.0.0</version>
7
  <classes>
8
    <class name="org.gvsig.legend.aggregate.app.mainplugin">
9
      <extends>
10
      </extends>
11
      <description>Persistence of the legend of aggregate texts</description>
12
      <fields>
13
      </fields>
14
    </class>
15
  </classes>
16
</definitions>  
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/i18n/text.properties
1
_Aggregate_legend_description=Leyenda de agrupaci\u00f3n de marcadores
2
_Aggregate_legend=Agrupaci\u00f3n de marcadores
3
_Use_basic_cluster_mark=Usar estilo b\u00e1sico para la agrupaci\u00f3n de marcadores
4
_Use_styled_cluster_mark=Usar un estilo avanzado para la agrupaci\u00f3n de marcadores
5
_Symbol_size=Tama\u00f1o de simbolo
6
_Outline_color=Color del contorno
7
_Fill_color=Color de relleno
8
_Text_color=Color de texto
9
_Text_font=Fuente del texto
10
_Show_bounds=Mostrar l\u00edmites
11
_Style=Estilo
12
_Operation=Operaci\u00f3n
13
_Attribute=Atributo
14
_Aditional_value=Valor adicional
15
Alpha=Alpha
16
Average=Media
17
_Calculate_the_average_of_the_selected_attribute_for_the_grouped_features=Calcula la media del atributo seleccionado para las features agrupadas
18
Count=Cuenta
19
_Count_of_grouped_features=Cuenta de las features agrupadas
20
Maximum=M\u00e1ximo
21
_Calculate_the_maximum_of_the_selected_attribute_for_the_grouped_features=Calcula el maximo del atributo seleccionado para las features agrupadas
22
Minimun=Minimo
23
_Calculate_the_minimun_of_the_selected_attribute_for_the_grouped_features=Calcula el minimo del atributo seleccionado para las features agrupadas
24
_Select_style=Seleccion de estilo
25
Sum=Suma
26
_Calculate_the_sum_of_the_selected_attribute_for_the_grouped_features=Calcula la suma del atributo seleccionado para las features agrupadas
27
_Select_font=Seleccione fuente
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties
1
_Aggregate_legend_description=Marker clustering legend
2
_Aggregate_legend=Marker clustering
3
_Use_basic_cluster_mark=Use basic style cluster mark
4
_Use_styled_cluster_mark=Use advanced style cluster mark
5
_Symbol_size=Symbol size
6
_Outline_color=Outline color
7
_Fill_color=Fill color
8
_Text_color=Text color
9
_Text_font=Text font
10
_Show_bounds=Show bounds
11
_Style=Style
12
_Operation=Operation
13
_Attribute=Attribute
14
_Aditional_value=Aditional value
15
Alpha=Alpha
16
Average=Average
17
_Calculate_the_average_of_the_selected_attribute_for_the_grouped_features=Calculate the average of the selected attribute for the grouped features
18
Count=Count
19
_Count_of_grouped_features=Count of grouped features
20
Maximum=Maximum
21
_Calculate_the_maximum_of_the_selected_attribute_for_the_grouped_features=Calculate the maximum of the selected attribute for the grouped features
22
Minimun=Minimun
23
_Calculate_the_minimun_of_the_selected_attribute_for_the_grouped_features=Calculate the minimun of the selected attribute for the grouped features
24
_Select_style=Select style
25
_Calculate_the_sum_of_the_selected_attribute_for_the_grouped_features=Calculate the sum of the selected attribute for the grouped features
26
Sum=Sum
27
_Select_font=Select font
0 28

  
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.app/org.gvsig.legend.aggregate.app.mainplugin/pom.xml
1
<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">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.legend.aggregate.app</artifactId>
6
    <version>1.0.28</version>
7
  </parent>
8
  <groupId>org.gvsig</groupId>
9
  <artifactId>org.gvsig.legend.aggregate.app.mainplugin</artifactId>
10
  <version>1.0.28</version>
11
  <name>org.gvsig.legend.aggregate.app.mainplugin</name>
12

  
13
    <properties>
14
    <!-- Package info property values -->
15
    <gvsig.package.info.state>testing</gvsig.package.info.state>
16
    <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge 2.4.0-A</gvsig.package.info.dependencies>
17
    <gvsig.package.info.official>true</gvsig.package.info.official>
18
    <gvsig.package.info.name>Vector legend: Aggregate text symbols</gvsig.package.info.name>
19
    <gvsig.package.info.description>Legend for aggregate text symbols that are near.</gvsig.package.info.description>
20
    <gvsig.package.info.categories>View,Vector,Symbology</gvsig.package.info.categories>
21
    <gvsig.package.info.javaVM>j1_7</gvsig.package.info.javaVM>
22
    <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-base-legends/pool</gvsig.package.info.poolURL>
23
  </properties>
24

  
25
  <dependencies>
26
    <dependency>
27
      <groupId>org.gvsig</groupId>
28
      <artifactId>org.gvsig.andami</artifactId>
29
      <scope>compile</scope>
30
    </dependency>
31
    <dependency>
32
      <groupId>org.gvsig</groupId>
33
      <artifactId>org.gvsig.legend.aggregate.swing.api</artifactId>
34
      <scope>compile</scope>
35
    </dependency>
36
    <dependency>
37
      <groupId>org.gvsig</groupId>
38
      <artifactId>org.gvsig.legend.aggregate.lib.api</artifactId>
39
      <scope>compile</scope>
40
    </dependency>
41
    <dependency>
42
      <groupId>org.gvsig</groupId>
43
      <artifactId>org.gvsig.legend.aggregate.lib.impl</artifactId>
44
      <scope>runtime</scope>
45
    </dependency>
46
    <dependency>
47
      <groupId>org.gvsig</groupId>
48
      <artifactId>org.gvsig.legend.aggregate.swing.impl</artifactId>
49
      <scope>runtime</scope>
50
    </dependency>
51
    <dependency>
52
      <groupId>org.gvsig</groupId>
53
      <artifactId>org.gvsig.app.mainplugin</artifactId>
54
      <scope>compile</scope>
55
    </dependency>
56
    <dependency>
57
        <groupId>org.jfree</groupId>
58
        <artifactId>jcommon</artifactId>
59
        <scope>runtime</scope>
60
    </dependency>
61
  </dependencies>
62
</project>
0 63

  
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.app/pom.xml
1
<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">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.legend.aggregate</artifactId>
6
    <version>1.0.28</version>
7
  </parent>
8
  <groupId>org.gvsig</groupId>
9
  <artifactId>org.gvsig.legend.aggregate.app</artifactId>
10
  <packaging>pom</packaging>
11
  <name>org.gvsig.legend.aggregate.app</name>
12

  
13
  <modules>
14
    <module>org.gvsig.legend.aggregate.app.mainplugin</module>
15
  </modules>
16

  
17
</project>
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/pom.xml
1
<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">
2
  <modelVersion>4.0.0</modelVersion>
3
  <groupId>org.gvsig</groupId>
4
  <artifactId>org.gvsig.legend.aggregate</artifactId>
5
  <version>1.0.28</version>
6
  <packaging>pom</packaging>
7
  <name>${project.artifactId}</name>
8
  <description>Legend for aggregate text symbols that are near.</description>
9
  <parent>
10
    <groupId>org.gvsig</groupId>
11
    <artifactId>org.gvsig.desktop</artifactId>
12
    <version>2.0.250</version>
13
  </parent>
14

  
15
  <url>https://devel.gvsig.org/sites/org.gvsig.legend.aggregate/${project.version}</url>
16
  <scm>
17
    <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28</connection>
18
    <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28</developerConnection>
19
    <url>https://devel.gvsig.org/redmine/projects/gvsig-base-legends/repository/show/org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28</url>
20
  </scm>
21
  <repositories>
22
    <repository>
23
      <id>gvsig-public-http-repository</id>
24
      <name>gvSIG maven public HTTP repository</name>
25
      <url>http://devel.gvsig.org/m2repo/j2se</url>
26
      <releases>
27
        <enabled>true</enabled>
28
        <updatePolicy>daily</updatePolicy>
29
        <checksumPolicy>warn</checksumPolicy>
30
      </releases>
31
      <snapshots>
32
        <enabled>true</enabled>
33
        <updatePolicy>daily</updatePolicy>
34
        <checksumPolicy>warn</checksumPolicy>
35
      </snapshots>
36
    </repository>
37
  </repositories>
38

  
39
  <distributionManagement>
40
    <site>
41
      <id>gvsig-repository</id>
42
      <url>dav:https://devel.gvsig.org/download/projects/gvsig-base-legends/pool/${project.artifactId}/${project.version}</url>
43
    </site>
44
  </distributionManagement>
45

  
46
  <build>
47
    <plugins>
48
      <plugin>
49
        <groupId>org.apache.maven.plugins</groupId>
50
        <artifactId>maven-release-plugin</artifactId>
51
        <configuration>
52
          <tagBase>https://devel.gvsig.org/svn/gvsig-base-legends/org.gvsig.legend.aggregate/tags</tagBase>
53
        </configuration>
54
      </plugin>
55
    </plugins>
56
  </build>
57

  
58

  
59

  
60
  <dependencyManagement>
61
    <dependencies>
62
      <dependency>
63
        <groupId>org.gvsig</groupId>
64
        <artifactId>org.gvsig.legend.aggregate.lib.api</artifactId>
65
        <version>1.0.28</version>
66
      </dependency>
67
      <dependency>
68
        <groupId>org.gvsig</groupId>
69
        <artifactId>org.gvsig.legend.aggregate.lib.impl</artifactId>
70
        <version>1.0.28</version>
71
      </dependency>
72
      <dependency>
73
        <groupId>org.gvsig</groupId>
74
        <artifactId>org.gvsig.legend.aggregate.swing.api</artifactId>
75
        <version>1.0.28</version>
76
      </dependency>
77
      <dependency>
78
        <groupId>org.gvsig</groupId>
79
        <artifactId>org.gvsig.legend.aggregate.swing.impl</artifactId>
80
        <version>1.0.28</version>
81
      </dependency>
82
      <dependency>
83
        <groupId>org.gvsig</groupId>
84
        <artifactId>org.gvsig.legend.aggregate.app.mainplugin</artifactId>
85
        <version>1.0.28</version>
86
      </dependency>
87
      <dependency>
88
        <groupId>org.jfree</groupId>
89
        <artifactId>jcommon</artifactId>
90
        <version>1.0.24</version>
91
      </dependency>
92
      
93
    </dependencies>
94
  </dependencyManagement>
95
  <modules>
96
    <module>org.gvsig.legend.aggregate.lib</module>
97
    <module>org.gvsig.legend.aggregate.swing</module>
98
    <module>org.gvsig.legend.aggregate.app</module>
99
  </modules>
100
</project>
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/pom.xml
1
<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">
2
  <modelVersion>4.0.0</modelVersion>
3
  <groupId>org.gvsig</groupId>
4
  <artifactId>org.gvsig.legend.aggregate.lib.api</artifactId>
5
  <name>org.gvsig.legend.aggregate.lib.api</name>
6
  <parent>
7
    <groupId>org.gvsig</groupId>
8
    <artifactId>org.gvsig.legend.aggregate.lib</artifactId>
9
    <version>1.0.28</version>
10
  </parent>
11

  
12
  <build>
13
    <plugins>
14
      <plugin>
15
        <groupId>org.apache.maven.plugins</groupId>
16
        <artifactId>maven-jar-plugin</artifactId>
17
        <configuration>
18
        </configuration>
19
        <executions>
20
          <!-- Generates a jar file only with the test classes -->
21
          <execution>
22
            <goals>
23
              <goal>test-jar</goal>
24
            </goals>
25
          </execution>
26
        </executions>
27
      </plugin>
28
    </plugins>
29
  </build>
30

  
31
  <dependencies>
32
    <dependency>
33
      <groupId>org.gvsig</groupId>
34
      <artifactId>org.gvsig.tools.lib</artifactId>
35
      <scope>compile</scope>
36
    </dependency>
37
    <dependency>
38
      <groupId>org.gvsig</groupId>
39
      <artifactId>org.gvsig.fmap.mapcontext.api</artifactId>
40
      <scope>compile</scope>
41
    </dependency>
42
  </dependencies>
43
</project>
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.legend.aggregate.lib.api.AggregateLegendLibrary
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendLibrary.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2015 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.legend.aggregate.lib.api;
24

  
25
import org.gvsig.tools.library.AbstractLibrary;
26
import org.gvsig.tools.library.LibraryException;
27
import org.gvsig.tools.locator.ReferenceNotRegisteredException;
28

  
29

  
30
/**
31
 * @author fdiaz
32
 *
33
 */
34
public class AggregateLegendLibrary extends AbstractLibrary {
35

  
36
    /* (non-Javadoc)
37
     * @see org.gvsig.tools.library.AbstractLibrary#doInitialize()
38
     */
39
    @Override
40
    protected void doInitialize() throws LibraryException {
41
        registerAsAPI(AggregateLegendLibrary.class);
42
    }
43

  
44
    /* (non-Javadoc)
45
     * @see org.gvsig.tools.library.AbstractLibrary#doPostInitialize()
46
     */
47
    @Override
48
    protected void doPostInitialize() throws LibraryException {
49
        // Validate there is any implementation registered.
50
        AggregateLegendManager manager = AggregateLegendLocator.getAggregateLegendManager();
51
        if (manager == null) {
52
            throw new ReferenceNotRegisteredException(
53
                AggregateLegendLocator.MANAGER_NAME, AggregateLegendLocator.getInstance());
54
        }
55
    }
56

  
57
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendManager.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2015 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 3
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.legend.aggregate.lib.api;
24

  
25
import java.util.Collection;
26
import org.gvsig.fmap.mapcontext.rendering.symbols.styles.ILabelStyle;
27

  
28

  
29
public interface AggregateLegendManager {
30

  
31
    /**
32
     * Creates an aggregate legend
33
     *
34
     * @return the aggregate legend
35
     */
36
    public AggregateLegend createAggregateLegend();
37

  
38
    public Class<? extends AggregateLegend> getLegendClass();
39
    
40
    public ILabelStyle getDefaultLabelStyle();
41
    
42
    public void setDefaultLabelStyle(ILabelStyle defaultLabelStyle);
43

  
44
    public Operation getDefaultOperation();
45

  
46
    void addOperation(Operation operation);
47
    
48
    public Collection<Operation> getOperations();
49

  
50
    public Operation createOperation(String name);
51
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/Operation.java
1

  
2
package org.gvsig.legend.aggregate.lib.api;
3

  
4
import org.gvsig.fmap.dal.feature.Feature;
5

  
6

  
7
public interface Operation extends org.gvsig.tools.lang.Cloneable {
8
    
9
    public String getName();
10
    
11
    public String getDescription();
12
    
13
    public boolean isAttributeRequiered();
14
    
15
    public boolean isAditionalValueRequiered();
16
    
17
    public void reset();
18
    
19
    public void perform(Feature feature);
20
        
21
    public Object getValue();
22

  
23
    public String format();
24
    
25
    public String getAttributeName();
26
    
27
    public void setAttributeName(String attributeName);
28
    
29
    public String getAditionalValue();
30
    
31
    public void setAditionalValue(String constant);
32

  
33
    @Override
34
    public Operation clone();
35
    
36
    
37
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegend.java
1
package org.gvsig.legend.aggregate.lib.api;
2

  
3
import java.awt.Color;
4
import java.awt.Font;
5
import org.gvsig.fmap.mapcontext.rendering.legend.ISingleSymbolLegend;
6
import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend;
7
import org.gvsig.fmap.mapcontext.rendering.symbols.styles.ILabelStyle;
8

  
9
public interface AggregateLegend extends IVectorLegend, ISingleSymbolLegend {
10

  
11
    public int getSymbolSize();
12
    public void setSymbolSize(int simbolSize);
13
    
14
    public ILabelStyle getLabelStyle();
15
    public void setLabelStyle(ILabelStyle labelStyle);    
16

  
17
    Color getFillColor();
18

  
19
    void setFillColor(Color fillColor);
20

  
21
    Color getTextColor();
22

  
23
    void setTextColor(Color textColor);
24

  
25
    Font getFont();
26

  
27
    void setFont(Font font);
28

  
29
    Operation getOperation();
30

  
31
    void setOperation(Operation operation);
32

  
33
    Color getOutlineColor();
34

  
35
    void setOutlineColor(Color outlineColor);
36

  
37
    boolean isShowBounds();
38

  
39
    void setShowBounds(boolean showBounds);
40

  
41
    boolean isUseStyle();
42

  
43
    void setUseStyle(boolean useStyle);
44

  
45
}
46

  
47

  
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/api/AggregateLegendLocator.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2015 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.legend.aggregate.lib.api;
24

  
25
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
26
import org.gvsig.tools.locator.AbstractLocator;
27
import org.gvsig.tools.locator.Locator;
28
import org.gvsig.tools.locator.LocatorException;
29

  
30

  
31
public class AggregateLegendLocator extends AbstractLocator {
32

  
33
    /**
34
     * AggregateLegend locator name
35
     */
36
    private static final String LOCATOR_NAME = "AggregateLegendLocator";
37

  
38
    /**
39
     * AggregateLegend manager name
40
     */
41
    public static final String MANAGER_NAME = "AggregateLegendManager";
42

  
43
    /**
44
     * AggregateLegend manager description
45
     */
46
    private static final String MANAGER_DESCRIPTION =
47
        "AggregateLegend Manager of gvSIG";
48

  
49

  
50
    /**
51
     * Unique instance
52
     */
53
    private static final AggregateLegendLocator instance = new AggregateLegendLocator();
54

  
55
    @Override
56
    public String getLocatorName() {
57
        return LOCATOR_NAME;
58
    }
59

  
60
    /**
61
     * Registers the Class implementing the AggregateLegendManager interface.
62
     *
63
     * @param clazz
64
     *            implementing the AggregateLegendManager interface
65
     */
66
    public static void registerAggregateLegendManager(Class clazz){
67
        getInstance().register(MANAGER_NAME, MANAGER_DESCRIPTION, clazz);
68
    }
69

  
70
    /**
71
     * Registers the default Class implementing the AggregateLegendManager interface
72
     *
73
     * @param clazz
74
     *            implementing the AggregateLegendManager interface
75
     */
76
    public static void registerDefaultAggregateLegendManager(Class clazz){
77
        getInstance().registerDefault(MANAGER_NAME, MANAGER_DESCRIPTION, clazz);
78
    }
79

  
80
    /**
81
     * Return a reference to AggregateLegendManager.
82
     *
83
     * @return a reference to AggregateLegendManager
84
     * @throws LocatorException
85
     *             if there is no access to the class or the class
86
     *             cannot be instantiated
87
     * @see Locator#get(String)
88
     */
89
    public static AggregateLegendManager getAggregateLegendManager() throws LocatorException {
90
        return (AggregateLegendManager) getInstance().get(MANAGER_NAME);
91
    }
92

  
93
    /**
94
     * @return
95
     */
96
    public static Locator getInstance() {
97
        return instance;
98
    }
99

  
100
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.api/src/main/java/org/gvsig/legend/aggregate/lib/spi/AbstractOperation.java
1
package org.gvsig.legend.aggregate.lib.spi;
2

  
3
import org.gvsig.legend.aggregate.lib.api.Operation;
4
import org.gvsig.tools.ToolsLocator;
5
import org.gvsig.tools.i18n.I18nManager;
6

  
7

  
8
public abstract class AbstractOperation implements Operation {
9
    private final String name;
10
    private final String description;
11
    private String attrName;
12
    private String aditionalValue;
13
    
14
    protected AbstractOperation(String name, String description) {
15
        this.name = name;
16
        this.description = description;
17
        reset();
18
    }
19
    
20
    @Override
21
    public String getName() {
22
        return this.name;
23
    }
24

  
25
    @Override
26
    public String getDescription() {
27
        I18nManager i18n = ToolsLocator.getI18nManager();
28
        return i18n.getTranslation(this.description);
29
    }
30

  
31
    @Override
32
    public boolean isAttributeRequiered() {
33
        return false;
34
    }
35

  
36
    @Override
37
    public boolean isAditionalValueRequiered() {
38
        return false;
39
    }
40

  
41
    @Override
42
    public String getAttributeName() {
43
        return attrName;
44
    }
45

  
46
    @Override
47
    public void setAttributeName(String attributeName) {
48
        this.attrName = attributeName;
49
    }
50

  
51
    @Override
52
    public String getAditionalValue() {
53
        return aditionalValue;
54
    }
55

  
56
    @Override
57
    public void setAditionalValue(String aditionalValue) {
58
        this.aditionalValue = aditionalValue;
59
    }
60

  
61
    @Override
62
    public String format() {
63
        return String.valueOf(getValue());
64
    }
65

  
66
    @Override
67
    public String toString() {
68
        I18nManager i18n = ToolsLocator.getI18nManager();
69
        return i18n.getTranslation(this.getName());
70
    }
71

  
72
    @Override
73
    public Operation clone() {
74
        try {
75
            return (Operation) super.clone();
76
        } catch (CloneNotSupportedException ex) {
77
            return null;
78
        }
79
    }
80
}
0 81

  
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/pom.xml
1
<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">
2
  <modelVersion>4.0.0</modelVersion>
3
  <parent>
4
    <groupId>org.gvsig</groupId>
5
    <artifactId>org.gvsig.legend.aggregate</artifactId>
6
    <version>1.0.28</version>
7
  </parent>
8
  <groupId>org.gvsig</groupId>
9
  <artifactId>org.gvsig.legend.aggregate.lib</artifactId>
10
  <packaging>pom</packaging>
11
  <modules>
12
    <module>org.gvsig.legend.aggregate.lib.api</module>
13
    <module>org.gvsig.legend.aggregate.lib.impl</module>
14
  </modules>
15
</project>
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/pom.xml
1
<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">
2
  <modelVersion>4.0.0</modelVersion>
3
  <artifactId>org.gvsig.legend.aggregate.lib.impl</artifactId>
4
  <name>org.gvsig.legend.aggregate.lib.impl</name>
5
  <parent>
6
    <groupId>org.gvsig</groupId>
7
    <artifactId>org.gvsig.legend.aggregate.lib</artifactId>
8
    <version>1.0.28</version>
9
  </parent>
10
  <groupId>org.gvsig</groupId>
11
  <dependencies>
12
    <dependency>
13
      <groupId>org.gvsig</groupId>
14
      <artifactId>org.gvsig.legend.aggregate.lib.api</artifactId>
15
      <scope>compile</scope>
16
    </dependency>
17
    <dependency>
18
      <groupId>org.gvsig</groupId>
19
      <artifactId>org.gvsig.fmap.dal.api</artifactId>
20
      <scope>compile</scope>
21
    </dependency>
22
    <dependency>
23
      <groupId>org.gvsig</groupId>
24
      <artifactId>org.gvsig.symbology.lib.impl</artifactId>
25
      <scope>compile</scope>
26
    </dependency>
27
  </dependencies>
28
</project>
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/AggregateLegendLibraryImpl.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright ? 2007-2015 gvSIG Association
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24

  
25
package org.gvsig.legend.aggregate.lib.impl;
26

  
27
import org.gvsig.fmap.mapcontext.MapContextLibrary;
28
import org.gvsig.fmap.mapcontext.MapContextLocator;
29
import org.gvsig.fmap.mapcontext.MapContextManager;
30
import org.gvsig.legend.aggregate.lib.api.AggregateLegendLibrary;
31
import org.gvsig.legend.aggregate.lib.api.AggregateLegendLocator;
32
import org.gvsig.symbology.impl.SymbologyDefaultImplLibrary;
33
import org.gvsig.tools.ToolsLocator;
34
import org.gvsig.tools.library.AbstractLibrary;
35
import org.gvsig.tools.library.LibraryException;
36
import org.gvsig.tools.persistence.PersistenceManager;
37

  
38
public class AggregateLegendLibraryImpl extends AbstractLibrary {
39

  
40
    @Override
41
    public void doRegistration() {
42
        registerAsImplementationOf(AggregateLegendLibrary.class);
43
        this.require(MapContextLibrary.class);
44
        this.require(SymbologyDefaultImplLibrary.class);
45
    }
46

  
47
    @Override
48
    protected void doInitialize() throws LibraryException {
49
        AggregateLegendLocator.registerAggregateLegendManager(DefaultAggregateLegendManager.class);
50

  
51
        MapContextManager mcmanager = MapContextLocator.getMapContextManager();
52
        mcmanager.registerLegend("AggregateLegend", DefaultAggregateLegend.class);
53
    }
54

  
55
    @Override
56
    protected void doPostInitialize() throws LibraryException {
57
        PersistenceManager persistenceManager = ToolsLocator.getPersistenceManager();
58
        persistenceManager.registerFactory(new OperationPersistenceFactory());
59
        persistenceManager.addDefinition(
60
            DefaultAggregateLegend.class, 
61
            "DefaultAggregateLegend", 
62
            "/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegend.persistence.xml"
63
        );
64
    }
65

  
66
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/OperationPersistenceFactory.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.legend.aggregate.lib.impl;
25

  
26
import org.gvsig.legend.aggregate.lib.api.AggregateLegendLocator;
27
import org.gvsig.legend.aggregate.lib.api.AggregateLegendManager;
28
import org.gvsig.legend.aggregate.lib.api.Operation;
29

  
30
import org.gvsig.tools.dynobject.DynStruct;
31
import org.gvsig.tools.persistence.AbstractSinglePersistenceFactory;
32
import org.gvsig.tools.persistence.PersistentState;
33
import org.gvsig.tools.persistence.exception.PersistenceException;
34

  
35
public class OperationPersistenceFactory extends AbstractSinglePersistenceFactory {
36

  
37
    static final String FIELD_NAME = "name";
38
    static final String FIELD_ATTRIBUTE = "attribute";
39
    static final String FIELD_VALUE = "value";
40

  
41
    private static final String DYNCLASS_NAME = "AggregateLegendOperation";
42
    private static final String DYNCLASS_DESCRIPTION = "Operation for aggregate legend";
43

  
44
    public OperationPersistenceFactory() {
45
        super(Operation.class, DYNCLASS_NAME, DYNCLASS_DESCRIPTION, null, null);
46

  
47
        DynStruct definition = this.getDefinition();
48

  
49
        definition.addDynFieldString(FIELD_NAME).setMandatory(true);
50
        definition.addDynFieldString(FIELD_ATTRIBUTE).setMandatory(false);
51
        definition.addDynFieldString(FIELD_VALUE).setMandatory(false);
52
    }
53

  
54
    @Override
55
    public Object createFromState(PersistentState state)
56
        throws PersistenceException {
57
        AggregateLegendManager manager = AggregateLegendLocator.getAggregateLegendManager();
58

  
59
        String name = (String) state.get(FIELD_NAME);
60
        Operation operation = manager.createOperation(name);
61
        operation.setAttributeName(state.getString(FIELD_ATTRIBUTE));
62
        operation.setAditionalValue(state.getString(FIELD_VALUE));
63

  
64
        return operation;
65
    }
66

  
67
    @Override
68
    public void saveToState(PersistentState state, Object obj)
69
        throws PersistenceException {
70

  
71
        Operation op = (Operation) obj;
72
        state.set(FIELD_NAME, op.getName());
73
        state.set(FIELD_ATTRIBUTE, op.getAttributeName());
74
        state.set(FIELD_VALUE, op.getAditionalValue());
75
    }
76
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/MinOperation.java
1
package org.gvsig.legend.aggregate.lib.impl.operation;
2

  
3
import org.gvsig.fmap.dal.feature.Feature;
4
import org.gvsig.legend.aggregate.lib.spi.AbstractOperation;
5

  
6
public class MinOperation extends AbstractOperation {
7

  
8
    private int min = 0;
9

  
10
    public MinOperation() {
11
        super("Minimun", "_Calculate_the_minimum_of_the_selected_attribute_for_the_grouped_features");
12
    }
13

  
14
    @Override
15
    public boolean isAttributeRequiered() {
16
        return true;
17
    }
18

  
19
    @Override
20
    public void reset() {
21
        min = 0;
22
    }
23

  
24
    @Override
25
    public void perform(Feature feature) {
26
        try {
27
            int x = feature.getInt(this.getAttributeName());
28
            if( x > min ) {
29
                min = x;
30
            }
31
        } catch (Exception ex) {
32
        }
33
    }
34

  
35
    @Override
36
    public Object getValue() {
37
        return this.min;
38
    }
39

  
40
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/SumOperation.java
1
package org.gvsig.legend.aggregate.lib.impl.operation;
2

  
3
import java.text.MessageFormat;
4
import org.apache.commons.lang3.StringUtils;
5
import org.gvsig.fmap.dal.feature.Feature;
6
import org.gvsig.legend.aggregate.lib.spi.AbstractOperation;
7

  
8

  
9
public class SumOperation extends AbstractOperation {
10
    int sum = 0;
11
    
12
    public SumOperation() {
13
        super("Sum", "_Calculate_the_sum_of_the_selected_attribute_for_the_grouped_features");
14

  
15
    }
16

  
17
    @Override
18
    public boolean isAttributeRequiered() {
19
        return true;
20
    }
21

  
22
    @Override
23
    public boolean isAditionalValueRequiered() {
24
        return true;
25
    }
26
    
27
    @Override
28
    public void reset() {
29
        sum = 0;
30
    }
31
    
32
    @Override
33
    public void perform(Feature feature) {
34
        try {
35
            double x = feature.getDouble(this.getAttributeName());
36
            sum += x;
37
        } catch (Exception ex) {
38
        }
39
    }
40

  
41
    @Override
42
    public Object getValue() {
43
        return sum;
44
    }
45

  
46
    @Override
47
    public String format() {
48
        if( StringUtils.isEmpty(this.getAditionalValue()) ) {
49
            return super.format(); 
50
        }
51
        try {
52
            return MessageFormat.format("{0,number,"+this.getAditionalValue().trim()+"}", this.getValue());
53
        } catch(Exception ex) {
54
            return super.format(); 
55
        }
56
    }    
57
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/MaxOperation.java
1
package org.gvsig.legend.aggregate.lib.impl.operation;
2

  
3
import org.gvsig.fmap.dal.feature.Feature;
4
import org.gvsig.legend.aggregate.lib.spi.AbstractOperation;
5

  
6
public class MaxOperation extends AbstractOperation {
7

  
8
    private int max = 0;
9

  
10
    public MaxOperation() {
11
        super("Maximum", "_Calculate_the_maximum_of_the_selected_attribute_for_the_grouped_features");
12
    }
13

  
14
    @Override
15
    public boolean isAttributeRequiered() {
16
        return true;
17
    }
18

  
19
    @Override
20
    public void reset() {
21
        max = 0;
22
    }
23

  
24
    @Override
25
    public void perform(Feature feature) {
26
        try {
27
            int x = feature.getInt(this.getAttributeName());
28
            if( x > max ) {
29
                max = x;
30
            }
31
        } catch (Exception ex) {
32
        }
33
    }
34

  
35
    @Override
36
    public Object getValue() {
37
        return this.max;
38
    }
39
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/CountOperation.java
1
package org.gvsig.legend.aggregate.lib.impl.operation;
2

  
3
import org.gvsig.fmap.dal.feature.Feature;
4
import org.gvsig.legend.aggregate.lib.spi.AbstractOperation;
5

  
6

  
7
public class CountOperation extends AbstractOperation {
8
    int count = 0;
9
    
10
    public CountOperation() {
11
        super("Count", "_Count_of_grouped_features");
12
    }
13

  
14
    @Override
15
    public void reset() {
16
        count = 0;
17
    }
18
    
19
    @Override
20
    public void perform(Feature feature) {
21
        count++;
22
    }
23

  
24
    @Override
25
    public Object getValue() {
26
        return count;
27
    }
28
    
29
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/operation/AvgOperation.java
1
package org.gvsig.legend.aggregate.lib.impl.operation;
2

  
3
import java.text.MessageFormat;
4
import org.apache.commons.lang3.StringUtils;
5
import org.gvsig.fmap.dal.feature.Feature;
6
import org.gvsig.legend.aggregate.lib.spi.AbstractOperation;
7

  
8
public class AvgOperation extends AbstractOperation {
9

  
10
    private double avg = 0;
11
    private int count = 0;
12

  
13
    public AvgOperation() {
14
        super(
15
            "Average", 
16
            "_Calculate_the_average_of_the_selected_attribute_for_the_grouped_features"
17
        );
18
    }
19

  
20
    @Override
21
    public boolean isAttributeRequiered() {
22
        return true;
23
    }
24

  
25
    @Override
26
    public boolean isAditionalValueRequiered() {
27
        return true;
28
    }
29

  
30
    @Override
31
    public void reset() {
32
        avg = 0;
33
        count = 0;
34
    }
35

  
36
    @Override
37
    public void perform(Feature feature) {
38
            try {
39
                double value = feature.getDouble(this.getAttributeName());
40
                avg = ( avg * count + value ) / (count+1);
41
                count++;
42
            } catch(Exception ex) {
43
            }
44
    }
45

  
46
    @Override
47
    public Object getValue() {
48
        return this.avg;
49
    }
50

  
51
    @Override
52
    public String format() {
53
        if( StringUtils.isEmpty(this.getAditionalValue()) ) {
54
            return super.format(); 
55
        }
56
        try {
57
            return MessageFormat.format("{0,number,"+this.getAditionalValue()+"}", this.getValue());
58
        } catch(Exception ex) {
59
            return super.format(); 
60
        }
61
    }
62
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegendManager.java
1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2015 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.legend.aggregate.lib.impl;
24

  
25
import java.util.Collection;
26
import java.util.HashMap;
27
import java.util.Map;
28
import org.gvsig.fmap.mapcontext.rendering.symbols.styles.ILabelStyle;
29
import org.gvsig.legend.aggregate.lib.api.AggregateLegend;
30
import org.gvsig.legend.aggregate.lib.api.AggregateLegendManager;
31
import org.gvsig.legend.aggregate.lib.api.Operation;
32
import org.gvsig.legend.aggregate.lib.impl.operation.AvgOperation;
33
import org.gvsig.legend.aggregate.lib.impl.operation.CountOperation;
34
import org.gvsig.legend.aggregate.lib.impl.operation.MaxOperation;
35
import org.gvsig.legend.aggregate.lib.impl.operation.MinOperation;
36
import org.gvsig.legend.aggregate.lib.impl.operation.SumOperation;
37
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.style.SimpleLabelStyle;
38

  
39

  
40
public class DefaultAggregateLegendManager implements AggregateLegendManager {
41

  
42
    private ILabelStyle defaultLabelStyle = null;
43
    private Map<String,Operation> operations;
44
    private Operation defaultOperation = null;
45
    
46
    public DefaultAggregateLegendManager() {
47
        this.defaultLabelStyle = new SimpleLabelStyle();
48
        this.addOperation(new CountOperation());
49
        this.addOperation(new MinOperation());
50
        this.addOperation(new MaxOperation());
51
        this.addOperation(new AvgOperation());
52
        this.addOperation(new SumOperation());
53
    }
54
    
55
    @Override
56
    public AggregateLegend createAggregateLegend() {
57
        return new DefaultAggregateLegend();
58
    }
59

  
60
    @Override
61
    public Class<? extends AggregateLegend> getLegendClass() {
62
        return DefaultAggregateLegend.class;
63
    }
64

  
65
    @Override
66
    public ILabelStyle getDefaultLabelStyle() {
67
        return this.defaultLabelStyle;
68
    }
69

  
70
    @Override
71
    public void setDefaultLabelStyle(ILabelStyle defaultLabelStyle) {
72
        this.defaultLabelStyle = defaultLabelStyle;
73
    }
74

  
75
    @Override
76
    public void addOperation(Operation operation) {
77
        if( this.operations == null ) {
78
            this.operations = new HashMap<>();
79
        }
80
        if( this.operations.isEmpty() ) {
81
            this.defaultOperation = operation;
82
        }
83
        this.operations.put(operation.getName(),operation);
84
    }
85
    
86
    @Override
87
    public Collection<Operation> getOperations() {
88
        if( this.operations == null ) {
89
            this.operations = new HashMap<>();
90
        }
91
        return this.operations.values();
92
    }
93
    
94
    @Override
95
    public Operation getDefaultOperation() {
96
        return this.defaultOperation;
97
    }
98

  
99
    @Override
100
    public Operation createOperation(String name) {
101
        Operation op = this.operations.get(name);
102
        if( op == null ) {
103
            throw new IllegalArgumentException("Can't locate operation '"+name+"'.");
104
        }
105
        return op.clone();
106
    }
107

  
108

  
109
}
org.gvsig.legend.aggregate/tags/org.gvsig.legend.aggregate-1.0.28/org.gvsig.legend.aggregate.lib/org.gvsig.legend.aggregate.lib.impl/src/main/java/org/gvsig/legend/aggregate/lib/impl/DefaultAggregateLegend.java
1
package org.gvsig.legend.aggregate.lib.impl;
2

  
3
import java.awt.Color;
4
import java.awt.Dimension;
5
import java.awt.Font;
6
import java.awt.FontMetrics;
7
import java.awt.Graphics2D;
8
import java.awt.Rectangle;
9
import java.awt.geom.AffineTransform;
10
import java.awt.geom.Ellipse2D;
11
import java.awt.geom.Rectangle2D;
12
import java.awt.image.BufferedImage;
13
import java.util.ArrayList;
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff