dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #13071
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 4134: (GIS) Centroid layer implemented. Shows polygon values represented by an icon centered in the mid...
Merge authors:
Jan Henrik Øverland (janhenrik-overland)
------------------------------------------------------------
revno: 4134 [merge]
committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2011-07-13 23:22:00 +0200
message:
(GIS) Centroid layer implemented. Shows polygon values represented by an icon centered in the middle of the polygon. To use this layer create predefined legend sets with images instead of colors. Image export and map views currently not supported.
added:
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/blank-map.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/blank.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-0-map.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-0.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-1-map.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-1.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-2-map.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-2.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-3-map.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-3.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-4-map.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-4.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-5-map.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-5.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Centroid.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Centroid.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/openlayers-2.10/img/blank.gif
renamed:
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-0.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-0.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-1.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-1.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-10.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-10.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-11.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-11.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-12.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-12.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-2.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-2.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-3.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-3.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-4.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-4.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-5.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-5.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-6.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-6.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-7.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-7.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-8.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-8.png
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-9.png => dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-9.png
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapLegend.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapLegendSet.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java
dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java
dhis-2/dhis-services/dhis-service-mapping/src/main/resources/org/hisp/dhis/mapping/hibernate/MapLegend.hbm.xml
dhis-2/dhis-services/dhis-service-mapping/src/main/resources/org/hisp/dhis/mapping/hibernate/MapLegendSet.hbm.xml
dhis-2/dhis-services/dhis-service-mapping/src/test/java/org/hisp/dhis/mapping/MappingServiceTest.java
dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendAction.java
dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendSetAction.java
dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetsByTypeAction.java
dhis-2/dhis-web/dhis-web-mapping/src/main/resources/org/hisp/dhis/mapping/i18n_module.properties
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/i18n.vm
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSet.vm
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSets.vm
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegends.vm
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/index.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/ext-ux.css
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/MapFish.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Choropleth.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Point.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js
dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapLegend.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapLegend.java 2010-04-12 21:23:33 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapLegend.java 2011-07-13 11:32:07 +0000
@@ -43,16 +43,19 @@
private String color;
+ private String image;
+
public MapLegend()
{
}
- public MapLegend( String name, Double startValue, Double endValue, String color )
+ public MapLegend( String name, Double startValue, Double endValue, String color, String image )
{
this.name = name;
this.startValue = startValue;
this.endValue = endValue;
this.color = color;
+ this.image = image;
}
// -------------------------------------------------------------------------
@@ -141,4 +144,14 @@
{
this.color = color;
}
+
+ public String getImage()
+ {
+ return image;
+ }
+
+ public void setImage( String image )
+ {
+ this.image = image;
+ }
}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapLegendSet.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapLegendSet.java 2010-09-09 19:19:51 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapLegendSet.java 2011-07-13 21:01:29 +0000
@@ -45,33 +45,24 @@
private String type;
- private int method;
-
- private int classes;
-
- private String colorLow;
-
- private String colorHigh;
+ private String symbolizer;
private Set<MapLegend> mapLegends = new HashSet<MapLegend>();
private Set<Indicator> indicators = new HashSet<Indicator>();
-
+
private Set<DataElement> dataElements = new HashSet<DataElement>();
public MapLegendSet()
{
}
- public MapLegendSet( String name, String type, int method, int classes, String colorLow, String colorHigh,
- Set<MapLegend> mapLegends, Set<Indicator> indicators, Set<DataElement> dataElements )
+ public MapLegendSet( String name, String type, String symbolizer, Set<MapLegend> mapLegends,
+ Set<Indicator> indicators, Set<DataElement> dataElements )
{
this.name = name;
this.type = type;
- this.method = method;
- this.classes = classes;
- this.colorLow = colorLow;
- this.colorHigh = colorHigh;
+ this.symbolizer = symbolizer;
this.mapLegends = mapLegends;
this.indicators = indicators;
this.dataElements = dataElements;
@@ -144,44 +135,14 @@
this.type = type;
}
- public int getMethod()
- {
- return method;
- }
-
- public void setMethod( int method )
- {
- this.method = method;
- }
-
- public int getClasses()
- {
- return classes;
- }
-
- public void setClasses( int classes )
- {
- this.classes = classes;
- }
-
- public String getColorLow()
- {
- return colorLow;
- }
-
- public void setColorLow( String colorLow )
- {
- this.colorLow = colorLow;
- }
-
- public String getColorHigh()
- {
- return colorHigh;
- }
-
- public void setColorHigh( String colorHigh )
- {
- this.colorHigh = colorHigh;
+ public String getSymbolizer()
+ {
+ return symbolizer;
+ }
+
+ public void setSymbolizer( String symbolizer )
+ {
+ this.symbolizer = symbolizer;
}
public Set<MapLegend> getMapLegends()
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java 2011-06-08 13:52:49 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java 2011-07-13 21:01:29 +0000
@@ -47,6 +47,10 @@
final String MAP_VALUE_TYPE_INDICATOR = "indicator";
final String MAP_VALUE_TYPE_DATAELEMENT = "dataelement";
+
+ final String MAP_LEGEND_SYMBOLIZER_COLOR = "color";
+
+ final String MAP_LEGEND_SYMBOLIZER_IMAGE = "image";
final String MAPLEGENDSET_TYPE_AUTOMATIC = "automatic";
@@ -86,7 +90,7 @@
// MapLegend
// -------------------------------------------------------------------------
- void addOrUpdateMapLegend( String name, Double startValue, Double endValue, String color );
+ void addOrUpdateMapLegend( String name, Double startValue, Double endValue, String color, String image );
void deleteMapLegend( MapLegend legend );
@@ -104,8 +108,7 @@
void updateMapLegendSet( MapLegendSet legendSet );
- void addOrUpdateMapLegendSet( String name, String type, int method, int classes, String colorLow, String colorHigh,
- Set<MapLegend> mapLegends );
+ void addOrUpdateMapLegendSet( String name, String type, String symbolizer, Set<MapLegend> mapLegends );
void deleteMapLegendSet( MapLegendSet legendSet );
=== modified file 'dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java'
--- dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java 2011-06-08 13:52:49 +0000
+++ dhis-2/dhis-services/dhis-service-mapping/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java 2011-07-13 21:01:29 +0000
@@ -359,7 +359,7 @@
// MapLegend
// -------------------------------------------------------------------------
- public void addOrUpdateMapLegend( String name, Double startValue, Double endValue, String color )
+ public void addOrUpdateMapLegend( String name, Double startValue, Double endValue, String color, String image )
{
MapLegend mapLegend = getMapLegendByName( name );
@@ -369,12 +369,13 @@
mapLegend.setStartValue( startValue );
mapLegend.setEndValue( endValue );
mapLegend.setColor( color );
+ mapLegend.setImage( image );
mappingStore.updateMapLegend( mapLegend );
}
else
{
- mapLegend = new MapLegend( name, startValue, endValue, color );
+ mapLegend = new MapLegend( name, startValue, endValue, color, image );
mappingStore.addMapLegend( mapLegend );
}
@@ -414,8 +415,7 @@
mappingStore.updateMapLegendSet( mapLegendSet );
}
- public void addOrUpdateMapLegendSet( String name, String type, int method, int classes, String colorLow,
- String colorHigh, Set<MapLegend> mapLegends )
+ public void addOrUpdateMapLegendSet( String name, String type, String symbolizer, Set<MapLegend> mapLegends )
{
MapLegendSet mapLegendSet = getMapLegendSetByName( name );
@@ -426,10 +426,7 @@
if ( mapLegendSet != null )
{
mapLegendSet.setType( type );
- mapLegendSet.setMethod( method );
- mapLegendSet.setClasses( classes );
- mapLegendSet.setColorLow( colorLow );
- mapLegendSet.setColorHigh( colorHigh );
+ mapLegendSet.setSymbolizer( symbolizer );
mapLegendSet.setMapLegends( mapLegends );
mapLegendSet.setIndicators( indicators );
mapLegendSet.setDataElements( dataElements );
@@ -438,8 +435,7 @@
}
else
{
- mapLegendSet = new MapLegendSet( name, type, method, classes, colorLow, colorHigh, mapLegends, indicators,
- dataElements );
+ mapLegendSet = new MapLegendSet( name, type, symbolizer, mapLegends, indicators, dataElements );
this.mappingStore.addMapLegendSet( mapLegendSet );
}
=== modified file 'dhis-2/dhis-services/dhis-service-mapping/src/main/resources/org/hisp/dhis/mapping/hibernate/MapLegend.hbm.xml'
--- dhis-2/dhis-services/dhis-service-mapping/src/main/resources/org/hisp/dhis/mapping/hibernate/MapLegend.hbm.xml 2011-05-29 11:10:20 +0000
+++ dhis-2/dhis-services/dhis-service-mapping/src/main/resources/org/hisp/dhis/mapping/hibernate/MapLegend.hbm.xml 2011-07-13 11:32:07 +0000
@@ -18,5 +18,7 @@
<property name="color" column="color" />
+ <property name="image" column="image" />
+
</class>
</hibernate-mapping>
=== modified file 'dhis-2/dhis-services/dhis-service-mapping/src/main/resources/org/hisp/dhis/mapping/hibernate/MapLegendSet.hbm.xml'
--- dhis-2/dhis-services/dhis-service-mapping/src/main/resources/org/hisp/dhis/mapping/hibernate/MapLegendSet.hbm.xml 2011-05-29 11:10:20 +0000
+++ dhis-2/dhis-services/dhis-service-mapping/src/main/resources/org/hisp/dhis/mapping/hibernate/MapLegendSet.hbm.xml 2011-07-13 21:01:29 +0000
@@ -14,13 +14,7 @@
<property name="type" column="type" />
- <property name="method" column="method" not-null="true" />
-
- <property name="classes" column="classes" not-null="true" />
-
- <property name="colorLow" column="colorlow" />
-
- <property name="colorHigh" column="colorhigh" />
+ <property name="symbolizer" column="symbolizer" />
<set name="mapLegends" table="maplegendsetmaplegend">
<key column="legendsetid" foreign-key="fk_maplegendsetmaplegend_legendsetid" />
=== modified file 'dhis-2/dhis-services/dhis-service-mapping/src/test/java/org/hisp/dhis/mapping/MappingServiceTest.java'
--- dhis-2/dhis-services/dhis-service-mapping/src/test/java/org/hisp/dhis/mapping/MappingServiceTest.java 2011-05-26 06:48:52 +0000
+++ dhis-2/dhis-services/dhis-service-mapping/src/test/java/org/hisp/dhis/mapping/MappingServiceTest.java 2011-07-13 17:28:22 +0000
@@ -141,7 +141,7 @@
MapLegend legend = createMapLegend( 'A', 0.1, 0.2 );
mappingService.addOrUpdateMapLegend( legend.getName(), legend.getStartValue(), legend.getEndValue(), legend
- .getColor() );
+ .getColor(), legend.getImage() );
legend = mappingService.getMapLegendByName( legend.getName() );
@@ -149,12 +149,13 @@
int id = legend.getId();
- mappingService.addOrUpdateMapLegend( legend.getName(), legend.getStartValue(), 0.3, "ColorB" );
+ mappingService.addOrUpdateMapLegend( legend.getName(), legend.getStartValue(), 0.3, "ColorB", "img.png" );
assertEquals( "MapLegendA", mappingService.getMapLegend( id ).getName() );
assertEquals( 0.1, mappingService.getMapLegend( id ).getStartValue() );
assertEquals( 0.3, mappingService.getMapLegend( id ).getEndValue() );
assertEquals( "ColorB", mappingService.getMapLegend( id ).getColor() );
+ assertEquals( "img.png", mappingService.getMapLegend( id ).getImage() );
}
@Test
@@ -163,7 +164,7 @@
MapLegend legend = createMapLegend( 'A', 0.1, 0.2 );
mappingService.addOrUpdateMapLegend( legend.getName(), legend.getStartValue(), legend.getEndValue(), legend
- .getColor() );
+ .getColor(), legend.getImage() );
legend = mappingService.getMapLegendByName( legend.getName() );
@@ -184,9 +185,9 @@
MapLegend legend3 = createMapLegend( 'C', 0.5, 0.6 );
mappingService.addOrUpdateMapLegend( legend1.getName(), legend1.getStartValue(), legend1.getEndValue(), legend1
- .getColor() );
+ .getColor(), legend1.getImage() );
mappingService.addOrUpdateMapLegend( legend3.getName(), legend3.getStartValue(), legend3.getEndValue(), legend3
- .getColor() );
+ .getColor(), legend3.getImage() );
legend1 = mappingService.getMapLegendByName( legend1.getName() );
legend3 = mappingService.getMapLegendByName( legend3.getName() );
@@ -228,14 +229,10 @@
assertNotNull( legendSet );
legendSet.setName( "MapLegendSetB" );
- legendSet.setColorLow( "ColorLowB" );
- legendSet.setColorHigh( "ColorHighB" );
mappingService.updateMapLegendSet( legendSet );
assertEquals( "MapLegendSetB", mappingService.getMapLegendSetByName( "MapLegendSetB" ).getName() );
- assertEquals( "ColorLowB", mappingService.getMapLegendSetByName( "MapLegendSetB" ).getColorLow() );
- assertEquals( "ColorHighB", mappingService.getMapLegendSetByName( "MapLegendSetB" ).getColorHigh() );
}
@Test
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendAction.java'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendAction.java 2010-04-12 21:23:33 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendAction.java 2011-07-13 11:32:07 +0000
@@ -27,8 +27,9 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import org.hisp.dhis.mapping.MappingService;
+
import com.opensymphony.xwork2.Action;
-import org.hisp.dhis.mapping.MappingService;
/**
* @author Jan Henrik Overland
@@ -40,9 +41,9 @@
// -------------------------------------------------------------------------
// Dependencies
// -------------------------------------------------------------------------
-
+
private MappingService mappingService;
-
+
public void setMappingService( MappingService mappingService )
{
this.mappingService = mappingService;
@@ -51,23 +52,23 @@
// -------------------------------------------------------------------------
// Input
// -------------------------------------------------------------------------
-
+
private String name;
-
+
public void setName( String name )
{
this.name = name;
}
private String startValue;
-
+
public void setStartValue( String startValue )
{
this.startValue = startValue;
}
private String endValue;
-
+
public void setEndValue( String endValue )
{
this.endValue = endValue;
@@ -79,14 +80,22 @@
{
this.color = color;
}
-
+
+ private String image;
+
+ public void setImage( String image )
+ {
+ this.image = image;
+ }
+
// -------------------------------------------------------------------------
// Action implementation
// -------------------------------------------------------------------------
public String execute()
{
- this.mappingService.addOrUpdateMapLegend( name, Double.parseDouble( startValue ), Double.parseDouble( endValue ), color );
+ this.mappingService.addOrUpdateMapLegend( name, Double.parseDouble( startValue ),
+ Double.parseDouble( endValue ), color, image );
return SUCCESS;
}
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendSetAction.java'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendSetAction.java 2010-04-12 21:23:33 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/AddOrUpdateMapLegendSetAction.java 2011-07-13 21:01:29 +0000
@@ -71,33 +71,12 @@
{
this.type = type;
}
-
- private int method;
-
- public void setMethod( int method )
- {
- this.method = method;
- }
-
- private int classes;
-
- public void setClasses( int classes )
- {
- this.classes = classes;
- }
-
- private String colorLow;
-
- public void setColorLow( String colorLow )
- {
- this.colorLow = colorLow;
- }
-
- private String colorHigh;
-
- public void setColorHigh( String colorHigh )
- {
- this.colorHigh = colorHigh;
+
+ private String symbolizer;
+
+ public void setSymbolizer( String symbolizer )
+ {
+ this.symbolizer = symbolizer;
}
private Collection<String> mapLegends;
@@ -115,17 +94,16 @@
{
Set<MapLegend> legends = new HashSet<MapLegend>();
- if ( this.mapLegends != null )
+ if ( mapLegends != null )
{
- for ( String legend : this.mapLegends )
+ for ( String legend : mapLegends )
{
- legends.add( this.mappingService.getMapLegend( Integer.parseInt( legend ) ) );
+ legends.add( mappingService.getMapLegend( Integer.parseInt( legend ) ) );
}
}
- this.mappingService.addOrUpdateMapLegendSet( this.name, this.type, this.method, this.classes, this.colorLow,
- this.colorHigh, legends );
+ mappingService.addOrUpdateMapLegendSet( name, type, symbolizer, legends );
- return "success";
+ return SUCCESS;
}
}
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetsByTypeAction.java'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetsByTypeAction.java 2010-04-12 21:23:33 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetMapLegendSetsByTypeAction.java 2011-07-13 21:01:29 +0000
@@ -29,6 +29,7 @@
import com.opensymphony.xwork2.Action;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import org.hisp.dhis.mapping.MapLegendSet;
import org.hisp.dhis.mapping.MappingService;
@@ -43,25 +44,32 @@
// -------------------------------------------------------------------------
// Dependencies
// -------------------------------------------------------------------------
-
+
private MappingService mappingService;
-
+
public void setMappingService( MappingService mappingService )
{
this.mappingService = mappingService;
}
-
+
// -------------------------------------------------------------------------
// Input
// -------------------------------------------------------------------------
-
+
private String type;
-
+
public void setType( String type )
{
this.type = type;
}
-
+
+ private String symbolizer;
+
+ public void setSymbolizer( String symbolizer )
+ {
+ this.symbolizer = symbolizer;
+ }
+
// -------------------------------------------------------------------------
// Output
// -------------------------------------------------------------------------
@@ -72,15 +80,44 @@
{
return this.object;
}
-
+
// -------------------------------------------------------------------------
// Action implementation
// -------------------------------------------------------------------------
public String execute()
{
- this.object = new ArrayList<MapLegendSet>( this.mappingService.getMapLegendSetsByType( type ) );
-
- return "success";
+ object = new ArrayList<MapLegendSet>( mappingService.getMapLegendSetsByType( type ) );
+
+ if ( symbolizer != null )
+ {
+ Collection<MapLegendSet> remove = new ArrayList<MapLegendSet>();
+
+ for ( MapLegendSet legendSet : object )
+ {
+ if ( legendSet.getSymbolizer() != null )
+ {
+ if ( (symbolizer.equals( MappingService.MAP_LEGEND_SYMBOLIZER_COLOR ) && legendSet.getSymbolizer()
+ .equals( MappingService.MAP_LEGEND_SYMBOLIZER_IMAGE ))
+ || (symbolizer.equals( MappingService.MAP_LEGEND_SYMBOLIZER_IMAGE ) && legendSet
+ .getSymbolizer().equals( MappingService.MAP_LEGEND_SYMBOLIZER_COLOR )) )
+ {
+ remove.add( legendSet );
+ }
+ }
+
+ else
+ {
+ if ( symbolizer.equals( MappingService.MAP_LEGEND_SYMBOLIZER_IMAGE ) )
+ {
+ remove.add( legendSet );
+ }
+ }
+ }
+
+ object.removeAll( remove );
+ }
+
+ return SUCCESS;
}
}
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/resources/org/hisp/dhis/mapping/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/resources/org/hisp/dhis/mapping/i18n_module.properties 2011-06-30 08:39:32 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/resources/org/hisp/dhis/mapping/i18n_module.properties 2011-07-06 19:35:22 +0000
@@ -286,7 +286,8 @@
export_image = Export image
export_thematic_map_to_png = Export thematic map to PNG
total_distance = Total distance
-legend_ = legend
symbol_layer = Symbol layer
set_thematic_map_date_type = Set thematic map date type
-date = Date
\ No newline at end of file
+date = Date
+legend_symbolizer = Symbolizer
+image = Image
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/i18n.vm'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/i18n.vm 2011-06-30 08:39:32 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/i18n.vm 2011-07-06 19:35:22 +0000
@@ -297,8 +297,9 @@
export_image: '$encoder.jsEscape($i18n.getString( 'export_image' ) , "'")',
export_thematic_map_to_png: '$encoder.jsEscape($i18n.getString( 'export_thematic_map_to_png' ) , "'")',
total_distance: '$encoder.jsEscape($i18n.getString( 'total_distance' ) , "'")',
- legend_: '$encoder.jsEscape($i18n.getString( 'legend_' ) , "'")',
symbol_layer: '$encoder.jsEscape($i18n.getString( 'symbol_layer' ) , "'")',
set_thematic_map_date_type: '$encoder.jsEscape($i18n.getString( 'set_thematic_map_date_type' ) , "'")',
- date: '$encoder.jsEscape($i18n.getString( 'date' ) , "'")'
+ date: '$encoder.jsEscape($i18n.getString( 'date' ) , "'")',
+ legend_symbolizer: '$encoder.jsEscape($i18n.getString( 'legend_symbolizer' ) , "'")',
+ image: '$encoder.jsEscape($i18n.getString( 'image' ) , "'")'
};
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSet.vm'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSet.vm 2010-11-25 15:08:07 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSet.vm 2011-07-13 21:01:29 +0000
@@ -4,6 +4,7 @@
[{
"id": "$!{object.id}",
"name": "$!encoder.jsonEncode( ${object.name} )",
+ "symbolizer": "$!encoder.jsonEncode( ${object.symbolizer} )",
"indicators": [#foreach( $indicator in $object.indicators )$!{indicator.id}#if( $velocityCount < $indicators_size ),#end#end],
"dataElements": [#foreach( $dataElement in $object.dataElements )$!{dataElement.id}#if( $velocityCount < $dataelements_size ),#end#end]
}]
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSets.vm'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSets.vm 2010-11-25 15:08:07 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegendSets.vm 2011-07-13 21:01:29 +0000
@@ -4,6 +4,7 @@
{
"id": "$!{legendSet.id}",
"name": "$!encoder.jsonEncode( ${legendSet.name} )",
+ "symbolizer": "$!encoder.jsonEncode( ${legendSet.symbolizer} )",
"indicators": [#foreach( $indicator in $legendSet.indicators )$!{indicator.id}#if( $velocityCount < $legendSet.indicators.size() ),#end#end],
"dataElements": [#foreach( $dataElement in $legendSet.dataElements )$!{dataElement.id}#if( $velocityCount < $legendSet.dataElements.size() ),#end#end]
}#if( $velocityCount < $size ),#end
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegends.vm'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegends.vm 2010-11-25 15:08:07 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/jsonMapLegends.vm 2011-07-13 11:32:07 +0000
@@ -7,7 +7,8 @@
"startValue": $!{mapLegend.startValue},
"endValue": $!{mapLegend.endValue},
"color": "$!encoder.jsonEncode( ${mapLegend.color} )",
- "displayString": "$!encoder.jsonEncode( ${mapLegend.name} ), $!{mapLegend.startValue} - $!{mapLegend.endValue}, $!encoder.jsonEncode( ${mapLegend.color} )"
+ "image": "$!encoder.jsonEncode( ${mapLegend.image} )",
+ "displayString": "$!encoder.jsonEncode( ${mapLegend.name} ), $!{mapLegend.startValue} - $!{mapLegend.endValue}"
}#if( $velocityCount < $size ),#end
#end
] }
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css 2011-06-23 19:16:44 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/css/style.css 2011-07-03 18:52:18 +0000
@@ -285,7 +285,7 @@
.window-info {
padding:0 0 8px 0;
font:bold 11px arial;
- color:#222;
+ color:#111;
}
.window-p {
padding:4px 0;
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html 2011-06-22 07:36:16 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/index.html 2011-07-08 09:25:05 +0000
@@ -39,6 +39,8 @@
<div id="pointlegend"></div>
<div id="symbollegend"></div>
+
+ <div id="centroidlegend"></div>
<form id="exportForm" method="post">
<input type="hidden" id="titleField" name="title"/>
@@ -87,7 +89,7 @@
<!-- DHIS -->
<script type="text/javascript" src="i18n.action"></script>
<script type="text/javascript">window.google = null;</script>
- <script src="http://maps.google.com/maps/api/js?v=3.5&sensor=false"></script>
+ <script src="http://maps.google.com/maps/api/js?v=3.5&sensor=false"></script>
<script type="text/javascript" src="javascript/global.js"></script>
<script type="text/javascript" src="javascript/index.js"></script>
</body>
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js 2011-06-22 07:36:16 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js 2011-07-13 21:01:29 +0000
@@ -17,6 +17,7 @@
thematicMap: 'gisThematicMap',
thematicMap2: 'gisThematicMap2',
thematicMap3: 'gisThematicMap3',
+ thematicMap4: 'gisThematicMap4',
overlayRegistration: 'gisOverlay',
administration: 'gisAdministration',
favorites: 'gisFavoriteMapView',
@@ -32,14 +33,18 @@
combo_width_fieldset: 127,
combo_list_width_fieldset: 127 + 17,
combo_number_width: 65,
- combo_number_width_small: 40,
+ combo_number_width_small: 44,
window_width: 251,
window_position_x: 55,
window_position_y: 41,
adminwindow_collapsed: 54,
adminwindow_expanded_1: Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 121 : 116,
adminwindow_expanded_2: Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 145 : 143,
-
+ predefinedmaplegendsetwindow_collapsed: 123,
+ predefinedmaplegendsetwindow_expanded_1: Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 373 : 371,
+ predefinedmaplegendsetwindow_expanded_2: Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 323 : 320,
+ predefinedmaplegendsetwindow_expanded_3: Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 242 : 240,
+ predefinedmaplegendsetwindow_expanded_4: Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 240 : 238,
// GUI
@@ -55,8 +60,10 @@
map_source_type_database: 'database',
map_source_type_geojson: 'geojson',
map_source_type_shapefile: 'shapefile',
- map_legend_type_automatic: 'automatic',
- map_legend_type_predefined: 'predefined',
+ map_legend_symbolizer_color: 'color',
+ map_legend_symbolizer_image: 'image',
+ map_legendset_type_automatic: 'automatic',
+ map_legendset_type_predefined: 'predefined',
map_layer_type_baselayer: 'baselayer',
map_layer_type_overlay: 'overlay',
map_layer_type_thematic: 'thematic',
@@ -349,6 +356,11 @@
return p.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
},
+ getTransformedPoint: function(p) {
+ return p.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
+ },
+
+
createOverlay: function(name, fillColor, fillOpacity, strokeColor, strokeWidth, url) {
return new OpenLayers.Layer.Vector(name, {
'visibility': false,
@@ -468,6 +480,9 @@
setSymbol: function() {
this.value = G.conf.thematicMap3;
},
+ setCentroid: function() {
+ this.value = G.conf.thematicMap4;
+ },
isPolygon: function() {
return this.value === G.conf.thematicMap;
},
@@ -476,9 +491,14 @@
},
isSymbol: function() {
return this.value === G.conf.thematicMap3;
+ },
+ isCentroid: function() {
+ return this.value === G.conf.thematicMap4;
}
},
+ activeWidget: null,
+
relocate: {},
mouseMove: {}
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/index.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/index.js 2011-06-30 08:39:32 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/index.js 2011-07-13 21:01:29 +0000
@@ -129,7 +129,7 @@
var predefinedMapLegendStore = new Ext.data.JsonStore({
url: G.conf.path_mapping + 'getAllMapLegends' + G.conf.type,
root: 'mapLegends',
- fields: ['id', 'name', 'startValue', 'endValue', 'color', 'displayString'],
+ fields: ['id', 'name', 'startValue', 'endValue', 'color', 'image', 'displayString'],
autoLoad: false,
isLoaded: false,
listeners: {
@@ -139,12 +139,41 @@
var predefinedMapLegendSetStore = new Ext.data.JsonStore({
url: G.conf.path_mapping + 'getMapLegendSetsByType' + G.conf.type,
- baseParams: {type: G.conf.map_legend_type_predefined},
- root: 'mapLegendSets',
- fields: ['id', 'name', 'indicators', 'dataelements'],
- sortInfo: {field:'name', direction:'ASC'},
- autoLoad: false,
- isLoaded: false,
+ baseParams: {type: G.conf.map_legendset_type_predefined},
+ root: 'mapLegendSets',
+ fields: ['id', 'name', 'legendType', 'indicators', 'dataelements'],
+ sortInfo: {field:'name', direction:'ASC'},
+ autoLoad: false,
+ isLoaded: false,
+ legendType: null,
+ listeners: {
+ 'load': G.func.storeLoadListener
+ }
+ });
+
+ var predefinedColorMapLegendSetStore = new Ext.data.JsonStore({
+ url: G.conf.path_mapping + 'getMapLegendSetsByType' + G.conf.type,
+ baseParams: {type: G.conf.map_legendset_type_predefined, symbolizer: G.conf.map_legend_symbolizer_color},
+ root: 'mapLegendSets',
+ fields: ['id', 'name', 'symbolizer', 'indicators', 'dataelements'],
+ sortInfo: {field:'name', direction:'ASC'},
+ autoLoad: false,
+ isLoaded: false,
+ legendType: null,
+ listeners: {
+ 'load': G.func.storeLoadListener
+ }
+ });
+
+ var predefinedImageMapLegendSetStore = new Ext.data.JsonStore({
+ url: G.conf.path_mapping + 'getMapLegendSetsByType' + G.conf.type,
+ baseParams: {type: G.conf.map_legendset_type_predefined, symbolizer: G.conf.map_legend_symbolizer_image},
+ root: 'mapLegendSets',
+ fields: ['id', 'name', 'symbolizer', 'indicators', 'dataelements'],
+ sortInfo: {field:'name', direction:'ASC'},
+ autoLoad: false,
+ isLoaded: false,
+ legendType: null,
listeners: {
'load': G.func.storeLoadListener
}
@@ -222,6 +251,18 @@
}
});
+ var mapLegendTypeIconStore = new Ext.data.ArrayStore({
+ fields: ['name', 'css'],
+ data: [
+ ['0','ux-ic-icon-maplegend-type-0'],
+ ['1','ux-ic-icon-maplegend-type-1'],
+ ['2','ux-ic-icon-maplegend-type-2'],
+ ['3','ux-ic-icon-maplegend-type-3'],
+ ['4','ux-ic-icon-maplegend-type-4'],
+ ['5','ux-ic-icon-maplegend-type-5']
+ ]
+ });
+
G.stores = {
mapView: mapViewStore,
indicatorGroup: indicatorGroupStore,
@@ -233,12 +274,15 @@
infrastructuralPeriodsByType: infrastructuralPeriodsByTypeStore,
predefinedMapLegend: predefinedMapLegendStore,
predefinedMapLegendSet: predefinedMapLegendSetStore,
+ predefinedColorMapLegendSet: predefinedColorMapLegendSetStore,
+ predefinedImageMapLegendSet: predefinedImageMapLegendSetStore,
organisationUnitLevel: organisationUnitLevelStore,
organisationUnitsAtLevel: organisationUnitsAtLevelStore,
geojsonFiles: geojsonFilesStore,
overlay: overlayStore,
groupSet: groupSetStore,
- groupsByGroupSet: groupsByGroupSetStore
+ groupsByGroupSet: groupsByGroupSetStore,
+ mapLegendTypeIcon: mapLegendTypeIconStore
};
/* Thematic layers */
@@ -299,6 +343,25 @@
symbolLayer.layerType = G.conf.map_layer_type_thematic;
G.vars.map.addLayer(symbolLayer);
+ centroidLayer = new OpenLayers.Layer.Vector('Centroid layer', {
+ 'visibility': false,
+ 'displayInLayerSwitcher': false,
+ 'styleMap': new OpenLayers.StyleMap({
+ 'default': new OpenLayers.Style(
+ OpenLayers.Util.applyDefaults(
+ {'fillOpacity': 1, 'strokeColor': '#222222', 'strokeWidth': 1, 'pointRadius': 5},
+ OpenLayers.Feature.Vector.style['default']
+ )
+ ),
+ 'select': new OpenLayers.Style(
+ {'strokeColor': '#000000', 'strokeWidth': 2, 'cursor': 'pointer'}
+ )
+ })
+ });
+
+ centroidLayer.layerType = G.conf.map_layer_type_thematic;
+ G.vars.map.addLayer(centroidLayer);
+
/* Init base layers */
if (window.google) {
var gmap = new OpenLayers.Layer.Google(
@@ -563,7 +626,6 @@
valueField: 'id',
displayField: 'text',
width: G.conf.combo_width_fieldset,
- mode: 'local',
triggerAction: 'all'
},
{
@@ -606,7 +668,7 @@
{
xtype: 'checkbox',
id: 'exportimageincludelegend_chb',
- fieldLabel: G.i18n.legend_,
+ fieldLabel: G.i18n.legend,
labelSeparator: '',
isFormField: true,
checked: true
@@ -728,7 +790,7 @@
items: [
{
id: 'newpredefinedmaplegend_p',
- title: G.i18n.legend_,
+ title: G.i18n.legend,
items: [
{
xtype: 'form',
@@ -761,8 +823,41 @@
width: G.conf.combo_number_width_small
},
{
+ xtype: 'combo',
+ id: 'predefinedmaplegendtype_cb',
+ fieldLabel: G.i18n.legend_symbolizer,
+ labelSeparator: G.conf.labelseparator,
+ editable: false,
+ valueField: 'id',
+ displayField: 'symbolizer',
+ width: G.conf.combo_width_fieldset,
+ minListWidth: G.conf.combo_width_fieldset,
+ mode: 'local',
+ triggerAction: 'all',
+ value: 'color',
+ store: new Ext.data.ArrayStore({
+ fields: ['id','symbolizer'],
+ data: [
+ [G.conf.map_legend_symbolizer_color, G.i18n.color],
+ [G.conf.map_legend_symbolizer_image, G.i18n.image]
+ ]
+ }),
+ listeners: {
+ 'select': function(cb) {
+ if (cb.getValue() == G.conf.map_legend_symbolizer_color) {
+ Ext.getCmp('predefinedmaplegendcolor_cf').showField();
+ Ext.getCmp('predefinedmaplegendimage_cb').hideField();
+ }
+ else if (cb.getValue() == G.conf.map_legend_symbolizer_image) {
+ Ext.getCmp('predefinedmaplegendcolor_cf').hideField();
+ Ext.getCmp('predefinedmaplegendimage_cb').showField();
+ }
+ }
+ }
+ },
+ {
xtype: 'colorfield',
- id: 'predefinedmaplegendcolor_cp',
+ id: 'predefinedmaplegendcolor_cf',
emptyText: G.conf.emptytext,
labelSeparator: G.conf.labelseparator,
fieldLabel: G.i18n.color,
@@ -770,6 +865,23 @@
width: G.conf.combo_width_fieldset,
value:"#C0C0C0"
},
+ {
+ xtype: 'combo',
+ id: 'predefinedmaplegendimage_cb',
+ plugins: new Ext.ux.plugins.IconCombo(),
+ valueField: 'name',
+ displayField: 'css',
+ iconClsField: 'css',
+ editable: false,
+ triggerAction: 'all',
+ mode: 'local',
+ labelSeparator: G.conf.labelseparator,
+ fieldLabel: G.i18n.image,
+ hidden: true,
+ width: G.conf.combo_number_width_small,
+ listWidth: G.conf.combo_number_width_small,
+ store: G.stores.mapLegendTypeIcon
+ },
{html: '<div class="window-p"></div>'},
{html: '<div class="window-info">Delete legend</div>'},
{
@@ -784,10 +896,15 @@
selectOnFocus: true,
emptyText: G.conf.emptytext,
labelSeparator: G.conf.labelseparator,
- fieldLabel: G.i18n.legend_,
+ fieldLabel: G.i18n.legend,
width: G.conf.combo_width_fieldset,
minListWidth: G.conf.combo_width_fieldset,
- store: G.stores.predefinedMapLegend
+ store: G.stores.predefinedMapLegend,
+ listeners: {
+ 'focus': function(cb) {
+ cb.getStore().clearFilter();
+ }
+ }
}
]
},
@@ -808,14 +925,18 @@
var mln = Ext.getCmp('predefinedmaplegendname_tf').getValue();
var mlsv = parseFloat(Ext.getCmp('predefinedmaplegendstartvalue_nf').getValue());
var mlev = parseFloat(Ext.getCmp('predefinedmaplegendendvalue_nf').getValue());
- var mlc = Ext.getCmp('predefinedmaplegendcolor_cp').getValue();
+ var type = Ext.getCmp('predefinedmaplegendtype_cb').getValue();
+ var mlc = type == G.conf.map_legend_symbolizer_color ?
+ Ext.getCmp('predefinedmaplegendcolor_cf').getValue() : null;
+ var mli = type == G.conf.map_legend_symbolizer_image ?
+ Ext.getCmp('predefinedmaplegendimage_cb').getRawValue() : null;
if (!Ext.isNumber(parseFloat(mlsv)) || !Ext.isNumber(mlev)) {
Ext.message.msg(false, G.i18n.form_is_not_complete);
return;
}
- if (!mln || !mlc) {
+ if (!mln || (!mlc && !mli)) {
Ext.message.msg(false, G.i18n.form_is_not_complete);
return;
}
@@ -830,17 +951,27 @@
return;
}
+ var params = {};
+ params.name = mln;
+ params.startValue = mlsv;
+ params.endValue = mlev;
+ if (type == G.conf.map_legend_symbolizer_color) {
+ params.color = mlc;
+ }
+ else if (type == G.conf.map_legend_symbolizer_image) {
+ params.image = mli;
+ }
+
Ext.Ajax.request({
url: G.conf.path_mapping + 'addOrUpdateMapLegend' + G.conf.type,
method: 'POST',
- params: {name: mln, startValue: mlsv, endValue: mlev, color: mlc},
+ params: params,
success: function(r) {
Ext.message.msg(true, G.i18n.legend + ' <span class="x-msg-hl">' + mln + '</span> ' + G.i18n.was_registered);
G.stores.predefinedMapLegend.load();
Ext.getCmp('predefinedmaplegendname_tf').reset();
Ext.getCmp('predefinedmaplegendstartvalue_nf').reset();
Ext.getCmp('predefinedmaplegendendvalue_nf').reset();
- Ext.getCmp('predefinedmaplegendcolor_cp').reset();
}
});
}
@@ -878,10 +1009,10 @@
],
listeners: {
expand: function() {
- predefinedMapLegendSetWindow.setHeight(Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 348 : 346);
+ predefinedMapLegendSetWindow.setHeight(G.conf.predefinedmaplegendsetwindow_expanded_1);
},
collapse: function() {
- predefinedMapLegendSetWindow.setHeight(123);
+ predefinedMapLegendSetWindow.setHeight(G.conf.predefinedmaplegendsetwindow_collapsed);
}
}
},
@@ -903,6 +1034,38 @@
fieldLabel: G.i18n.display_name,
width: G.conf.combo_width_fieldset
},
+ {
+ xtype: 'combo',
+ id: 'predefinedmaplegendsettype_cb',
+ fieldLabel: G.i18n.legend_symbolizer,
+ labelSeparator: G.conf.labelseparator,
+ editable: false,
+ valueField: 'id',
+ displayField: 'symbolizer',
+ width: G.conf.combo_width_fieldset,
+ minListWidth: G.conf.combo_width_fieldset,
+ mode: 'local',
+ triggerAction: 'all',
+ store: new Ext.data.ArrayStore({
+ fields: ['id','symbolizer'],
+ data: [
+ [G.conf.map_legend_symbolizer_color, G.i18n.color],
+ [G.conf.map_legend_symbolizer_image, G.i18n.image]
+ ]
+ }),
+ listeners: {
+ 'select': function(cb) {
+ G.stores.predefinedMapLegend.filterBy( function(r, rid) {
+ if (cb.getValue() == G.conf.map_legend_symbolizer_color) {
+ return r.data.color;
+ }
+ else if (cb.getValue() == G.conf.map_legend_symbolizer_image) {
+ return r.data.image;
+ }
+ });
+ }
+ }
+ },
{html: '<div class="window-field-label">'+G.i18n.legends+'</div>'},
{
xtype: 'multiselect',
@@ -994,15 +1157,23 @@
}
}
+ var symbolizer = Ext.getCmp('predefinedmaplegendsettype_cb').getValue();
+
Ext.Ajax.request({
url: G.conf.path_mapping + 'addOrUpdateMapLegendSet.action' + params,
method: 'POST',
- params: {name: mlsv, type: G.conf.map_legend_type_predefined},
+ params: {name: mlsv, type: G.conf.map_legendset_type_predefined, symbolizer: symbolizer},
success: function(r) {
Ext.message.msg(true, G.i18n.new_legend_set+' <span class="x-msg-hl">' + mlsv + '</span> ' + G.i18n.was_registered);
- G.stores.predefinedMapLegendSet.load();
Ext.getCmp('predefinedmaplegendsetname_tf').reset();
- Ext.getCmp('predefinednewmaplegend_ms').reset();
+ Ext.getCmp('predefinednewmaplegend_ms').reset();
+ G.stores.predefinedMapLegendSet.load();
+ if (symbolizer == G.conf.map_legend_symbolizer_color) {
+ G.stores.predefinedColorMapLegendSet.load();
+ }
+ else if (symbolizer == G.conf.map_legend_symbolizer_image) {
+ G.stores.predefinedImageMapLegendSet.load();
+ }
}
});
}
@@ -1046,10 +1217,28 @@
],
listeners: {
expand: function() {
- predefinedMapLegendSetWindow.setHeight((G.util.getMultiSelectHeight() / 2) + (Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 298:295));
+ predefinedMapLegendSetWindow.setHeight((G.util.getMultiSelectHeight() / 2) + G.conf.predefinedmaplegendsetwindow_expanded_2);
+
+ var pmlst = Ext.getCmp('predefinedmaplegendsettype_cb');
+ if (pmlst.getValue()) {
+ G.stores.predefinedMapLegend.filterBy( function(r) {
+ if (pmlst.getValue() == G.conf.map_legend_symbolizer_color) {
+ return r.data.color;
+ }
+ else if (pmlst.getValue() == G.conf.map_legend_symbolizer_image) {
+ return r.data.image;
+ }
+ });
+ }
+ else {
+ pmlst.setValue(G.conf.map_legend_symbolizer_color);
+ G.stores.predefinedMapLegend.filterBy( function(r, rid) {
+ return r.data.color;
+ });
+ }
},
collapse: function() {
- predefinedMapLegendSetWindow.setHeight(123);
+ predefinedMapLegendSetWindow.setHeight(G.conf.predefinedmaplegendsetwindow_collapsed);
}
}
},
@@ -1168,14 +1357,14 @@
],
listeners: {
expand: function() {
- predefinedMapLegendSetWindow.setHeight(G.util.getMultiSelectHeight() + (Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 242 : 240));
+ predefinedMapLegendSetWindow.setHeight(G.util.getMultiSelectHeight() + G.conf.predefinedmaplegendsetwindow_expanded_3);
if (!G.stores.indicator.isLoaded) {
G.stores.indicator.load();
}
},
collapse: function() {
- predefinedMapLegendSetWindow.setHeight(123);
+ predefinedMapLegendSetWindow.setHeight(G.conf.predefinedmaplegendsetwindow_collapsed);
}
}
},
@@ -1294,21 +1483,21 @@
],
listeners: {
expand: function() {
- predefinedMapLegendSetWindow.setHeight(G.util.getMultiSelectHeight() + (Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 240 : 238));
+ predefinedMapLegendSetWindow.setHeight(G.util.getMultiSelectHeight() + G.conf.predefinedmaplegendsetwindow_expanded_4);
if (!G.stores.dataElement.isLoaded) {
G.stores.dataElement.load();
}
},
collapse: function() {
- predefinedMapLegendSetWindow.setHeight(123);
+ predefinedMapLegendSetWindow.setHeight(G.conf.predefinedmaplegendsetwindow_collapsed);
}
}
}
],
listeners: {
afterrender: function() {
- predefinedMapLegendSetWindow.setHeight(Ext.isChrome || (Ext.isWindows && Ext.isGecko) ? 348 : 346);
+ predefinedMapLegendSetWindow.setHeight(G.conf.predefinedmaplegendsetwindow_expanded_1);
}
}
});
@@ -1465,8 +1654,8 @@
triggerAction: 'all',
labelSeparator: G.conf.labelseparator,
fieldLabel: G.i18n.fill_opacity,
- width: G.conf.combo_number_width,
- minListWidth: G.conf.combo_number_width,
+ width: G.conf.combo_number_width_small,
+ minListWidth: G.conf.combo_number_width_small,
value: 0.5,
store: {
xtype: 'arraystore',
@@ -1494,8 +1683,8 @@
triggerAction: 'all',
labelSeparator: G.conf.labelseparator,
fieldLabel: G.i18n.stroke_width,
- width: G.conf.combo_number_width,
- minListWidth: G.conf.combo_number_width,
+ width: G.conf.combo_number_width_small,
+ minListWidth: G.conf.combo_number_width_small,
value: 2,
store: {
xtype: 'arraystore',
@@ -1714,6 +1903,10 @@
{
nodeType: 'gx_layer',
layer: 'Symbol layer'
+ },
+ {
+ nodeType: 'gx_layer',
+ layer: 'Centroid layer'
}
]
},
@@ -2180,6 +2373,41 @@
}
});
+ centroid = new mapfish.widgets.geostat.Centroid({
+ id: 'centroid',
+ title: '<span class="panel-title">Centroid layer</span>',
+ map: G.vars.map,
+ layer: centroidLayer,
+ featureSelection: false,
+ legendDiv: 'centroidlegend',
+ defaults: {width: 130},
+ tools: [
+ {
+ id: 'refresh',
+ qtip: 'Refresh layer',
+ handler: function() {
+ centroid.updateValues = true;
+ centroid.classify();
+ }
+ },
+ {
+ id: 'close',
+ qtip: 'Clear layer',
+ handler: function() {
+ choropleth.formValues.clearForm.call(centroid);
+ }
+ }
+ ],
+ listeners: {
+ 'expand': function() {
+ G.vars.activePanel.setCentroid();
+ },
+ 'afterrender': function() {
+ this.layer.widget = this;
+ }
+ }
+ });
+
/* Section: map toolbar */
var mapLabel = new Ext.form.Label({
text: G.i18n.map,
@@ -2219,6 +2447,16 @@
G.vars.map.zoomToExtent(point.layer.getDataExtent());
}
}
+ else if (G.vars.activePanel.isSymbol()) {
+ if (symbol.layer.getDataExtent()) {
+ G.vars.map.zoomToExtent(symbol.layer.getDataExtent());
+ }
+ }
+ else if (G.vars.activePanel.isCentroid()) {
+ if (centroid.layer.getDataExtent()) {
+ G.vars.map.zoomToExtent(centroid.layer.getDataExtent());
+ }
+ }
}
});
@@ -2330,7 +2568,7 @@
var x = Ext.getCmp('center').x + G.conf.window_position_x;
var y = Ext.getCmp('center').y + G.conf.window_position_y;
predefinedMapLegendSetWindow.setPosition(x,y);
- predefinedMapLegendSetWindow.show();
+ predefinedMapLegendSetWindow.show();
if (!G.stores.predefinedMapLegend.isLoaded) {
G.stores.predefinedMapLegend.load();
}
@@ -2527,6 +2765,10 @@
{
title: '<span class="panel-title">Symbol layer legend</span>',
contentEl: 'symbollegend'
+ },
+ {
+ title: '<span class="panel-title">Centroid layer legend</span>',
+ contentEl: 'centroidlegend'
}
]
},
@@ -2549,7 +2791,8 @@
items: [
choropleth,
point,
- symbol
+ symbol,
+ centroid
]
},
{
@@ -2568,7 +2811,7 @@
G.util.setOpacityByLayerType(G.conf.map_layer_type_overlay, G.conf.defaultLayerOpacity);
G.util.setOpacityByLayerType(G.conf.map_layer_type_thematic, G.conf.defaultLayerOpacity);
symbolLayer.setOpacity(1);
-
+ centroidLayer.setOpacity(1);
var svg = document.getElementsByTagName('svg');
@@ -2587,14 +2830,16 @@
Ext.getCmp('mapdatetype_cb').setValue(G.system.mapDateType.value);
choropleth.prepareMapViewValueType();
+ choropleth.prepareMapViewDateType();
+ choropleth.prepareMapViewLegend();
+
point.prepareMapViewValueType();
-
- choropleth.prepareMapViewDateType();
point.prepareMapViewDateType();
-
- choropleth.prepareMapViewLegend();
point.prepareMapViewLegend();
+ centroid.prepareMapViewValueType();
+ centroid.prepareMapViewDateType();
+
G.vars.map.events.register('addlayer', null, function(e) {
var svg = document.getElementsByTagName('svg');
e.layer.svgId = svg[svg.length-1].id;
@@ -2638,8 +2883,8 @@
G.vars.map.addControl(new OpenLayers.Control.ZoomBox());
G.vars.map.addControl(new OpenLayers.Control.MousePosition({
- displayClass: 'void',
- div: $('mouseposition'),
+ displayClass: 'void',
+ div: $('mouseposition'),
prefix: '<span style="color:#666">x: </span>',
separator: '<br/><span style="color:#666">y: </span>'
}));
@@ -2649,7 +2894,7 @@
div: $('overviewmap'),
size: new OpenLayers.Size(188, 97),
minRectSize: 0,
- layers: [new OpenLayers.Layer.OSM.Osmarender("OSM Osmarender")]
+ layers: [new OpenLayers.Layer.OSM.Osmarender('OSM Osmarender')]
}));
G.vars.map.addControl(new OpenLayers.Control.PanPanel({
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/ext-ux.css'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/ext-ux.css 2011-05-19 08:26:11 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/ext-ux.css 2011-07-13 17:28:22 +0000
@@ -81,123 +81,6 @@
.x-form-check-wrap-inner input,.x-form-radio-wrap-inner input{position:absolute;-ms-filter:"alpha(opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;}
/* IconCombo */
-.ux-ic-icon-0 {
- background-image:url(iconcombo/ux-ic-icon-0.png) ! important;
-}
-.ux-ic-icon-0-title {
- background:url(iconcombo/ux-ic-icon-0.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-1 {
- background-image:url(iconcombo/ux-ic-icon-1.png) ! important;
-}
-.ux-ic-icon-1-title {
- background:url(iconcombo/ux-ic-icon-1.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-2 {
- background-image:url(iconcombo/ux-ic-icon-2.png) ! important;
-}
-.ux-ic-icon-2-title {
- background:url(iconcombo/ux-ic-icon-2.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-3 {
- background-image:url(iconcombo/ux-ic-icon-3.png) ! important;
-}
-.ux-ic-icon-3-title {
- background:url(iconcombo/ux-ic-icon-3.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-4 {
- background-image:url(iconcombo/ux-ic-icon-4.png) ! important;
-}
-.ux-ic-icon-4-title {
- background:url(iconcombo/ux-ic-icon-4.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-5 {
- background-image:url(iconcombo/ux-ic-icon-5.png) ! important;
-}
-.ux-ic-icon-5-title {
- background:url(iconcombo/ux-ic-icon-5.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-6 {
- background-image:url(iconcombo/ux-ic-icon-6.png) ! important;
-}
-.ux-ic-icon-6-title {
- background:url(iconcombo/ux-ic-icon-6.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-7 {
- background-image:url(iconcombo/ux-ic-icon-7.png) ! important;
-}
-.ux-ic-icon-7-title {
- background:url(iconcombo/ux-ic-icon-7.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-8 {
- background-image:url(iconcombo/ux-ic-icon-8.png) ! important;
-}
-.ux-ic-icon-8-title {
- background:url(iconcombo/ux-ic-icon-8.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-9 {
- background-image:url(iconcombo/ux-ic-icon-9.png) ! important;
-}
-.ux-ic-icon-9-title {
- background:url(iconcombo/ux-ic-icon-9.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-10 {
- background-image:url(iconcombo/ux-ic-icon-10.png) ! important;
-}
-.ux-ic-icon-10-title {
- background:url(iconcombo/ux-ic-icon-10.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-11 {
- background-image:url(iconcombo/ux-ic-icon-11.png) ! important;
-}
-.ux-ic-icon-11-title {
- background:url(iconcombo/ux-ic-icon-11.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
-.ux-ic-icon-12 {
- background-image:url(iconcombo/ux-ic-icon-12.png) ! important;
-}
-.ux-ic-icon-12-title {
- background:url(iconcombo/ux-ic-icon-12.png) no-repeat 0 0 transparent;
- padding:0 0 3px 21px;
- font:bold 11px arial;
- color:#111;
-}
.ux-icon-combo-icon {
background-repeat: no-repeat;
background-position: 5px 50%;
@@ -218,5 +101,141 @@
}
.x-form-field-wrap .ux-icon-combo-icon {
top: 3px;
- left: 5px;
+ left: 2px;
+}
+
+.ux-ic-icon-groupset-type-0 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-0.png) ! important;
+}
+.ux-ic-icon-groupset-type-0-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-0.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-1 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-1.png) ! important;
+}
+.ux-ic-icon-groupset-type-1-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-1.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-2 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-2.png) ! important;
+}
+.ux-ic-icon-groupset-type-2-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-2.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-3 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-3.png) ! important;
+}
+.ux-ic-icon-groupset-type-3-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-3.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-4 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-4.png) ! important;
+}
+.ux-ic-icon-groupset-type-4-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-4.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-5 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-5.png) ! important;
+}
+.ux-ic-icon-groupset-type-5-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-5.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-6 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-6.png) ! important;
+}
+.ux-ic-icon-groupset-type-6-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-6.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-7 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-7.png) ! important;
+}
+.ux-ic-icon-groupset-type-7-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-7.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-8 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-8.png) ! important;
+}
+.ux-ic-icon-groupset-type-8-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-8.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-9 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-9.png) ! important;
+}
+.ux-ic-icon-groupset-type-9-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-9.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-10 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-10.png) ! important;
+}
+.ux-ic-icon-groupset-type-10-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-10.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-11 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-11.png) ! important;
+}
+.ux-ic-icon-groupset-type-11-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-11.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-groupset-type-12 {
+ background-image:url(iconcombo/ux-ic-icon-groupset-type-12.png) ! important;
+}
+.ux-ic-icon-groupset-type-12-title {
+ background:url(iconcombo/ux-ic-icon-groupset-type-12.png) no-repeat 0 0 transparent;
+ padding:0 0 3px 21px;
+ font:bold 11px arial;
+ color:#111;
+}
+.ux-ic-icon-maplegend-type-0 {
+ background-image:url(iconcombo/ux-ic-icon-maplegend-type-0.png) ! important;
+}
+.ux-ic-icon-maplegend-type-1 {
+ background-image:url(iconcombo/ux-ic-icon-maplegend-type-1.png) ! important;
+}
+.ux-ic-icon-maplegend-type-2 {
+ background-image:url(iconcombo/ux-ic-icon-maplegend-type-2.png) ! important;
+}
+.ux-ic-icon-maplegend-type-3 {
+ background-image:url(iconcombo/ux-ic-icon-maplegend-type-3.png) ! important;
+}
+.ux-ic-icon-maplegend-type-4 {
+ background-image:url(iconcombo/ux-ic-icon-maplegend-type-4.png) ! important;
+}
+.ux-ic-icon-maplegend-type-5 {
+ background-image:url(iconcombo/ux-ic-icon-maplegend-type-5.png) ! important;
}
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/blank-map.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/blank-map.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/blank-map.png 2011-07-08 09:25:05 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/blank.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/blank.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/blank.png 2011-07-07 15:10:55 +0000 differ
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-0.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-0.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-1.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-1.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-10.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-10.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-11.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-11.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-12.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-12.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-2.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-2.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-3.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-3.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-4.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-4.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-5.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-5.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-6.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-6.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-7.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-7.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-8.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-8.png'
=== renamed file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-9.png' => 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-groupset-type-9.png'
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-0-map.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-0-map.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-0-map.png 2011-07-08 09:25:05 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-0.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-0.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-0.png 2011-07-08 09:25:05 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-1-map.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-1-map.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-1-map.png 2011-07-13 12:30:32 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-1.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-1.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-1.png 2011-07-13 12:30:32 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-2-map.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-2-map.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-2-map.png 2011-07-13 12:30:32 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-2.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-2.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-2.png 2011-07-13 12:30:32 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-3-map.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-3-map.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-3-map.png 2011-07-13 12:30:32 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-3.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-3.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-3.png 2011-07-13 12:30:32 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-4-map.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-4-map.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-4-map.png 2011-07-13 12:30:32 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-4.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-4.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-4.png 2011-07-13 12:30:32 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-5-map.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-5-map.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-5-map.png 2011-07-13 12:30:32 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-5.png'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-5.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/ext-ux/iconcombo/ux-ic-icon-maplegend-type-5.png 2011-07-13 12:30:32 +0000 differ
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/MapFish.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/MapFish.js 2011-04-12 17:22:06 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/MapFish.js 2011-07-05 19:34:01 +0000
@@ -98,6 +98,7 @@
"core/GeoStat/Choropleth.js",
"core/GeoStat/Point.js",
"core/GeoStat/Symbol.js",
+ "core/GeoStat/Centroid.js",
//"core/Routing.js",
"core/Util.js",
//"core/Searcher.js",
@@ -120,7 +121,8 @@
//"widgets/data/GridRowFeatureMediator.js",
"widgets/geostat/Choropleth.js",
"widgets/geostat/Point.js",
- "widgets/geostat/Symbol.js"
+ "widgets/geostat/Symbol.js",
+ "widgets/geostat/Centroid.js"
//"widgets/geostat/Mapping.js",
//"widgets/tree/LayerTree.js",
//"widgets/tree/LayerTreeExtra.js",
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js 2011-06-09 09:03:56 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat.js 2011-07-13 21:01:29 +0000
@@ -79,7 +79,8 @@
setUrl: function(url, params) {
this.url = url;
if (this.url) {
- OpenLayers.loadURL(this.url, '', this, this.onSuccess, this.onFailure);
+ var success = G.vars.activeWidget == centroid ? this.onSuccess2 : this.onSuccess;
+ OpenLayers.loadURL(this.url, '', this, success, this.onFailure);
}
},
@@ -114,6 +115,29 @@
}
},
+ onSuccess2: function(request) {
+ var doc = request.responseXML;
+ if (!doc || !doc.documentElement) {
+ doc = request.responseText;
+ }
+
+ var format = this.format || new OpenLayers.Format.GeoJSON();
+ this.layer.removeFeatures(this.layer.features);
+
+ for (var i = 0, a = null, p = null, geo = format.read(doc); i < geo.length; i++) {
+ p = G.util.getTransformedPoint(geo[i].geometry.getCentroid());
+ geo[i] = new OpenLayers.Feature.Vector(p, geo[i].attributes);;
+ }
+
+ this.layer.addFeatures(geo);
+ this.requestSuccess(request);
+
+ if (!centroid.formValidation.validateForm.call(centroid)) {
+ G.vars.mask.hide();
+ }
+ centroid.classify(false);
+ },
+
onFailure: function(request) {
this.requestFailure(request);
},
@@ -266,14 +290,11 @@
return Math.floor(1 + 3.3 * Math.log(this.nbVal, 10));
},
- classify: function(method, nbBins, bounds) {
- var mlt = G.vars.activePanel.isPolygon() ?
- choropleth.legend.value : G.vars.activePanel.isPoint() ?
- point.legend.value : G.conf.map_legend_type_automatic;
-
- if (mlt == G.conf.map_legend_type_automatic) {
+ classify: function(method, nbBins, bounds) {
+ if (G.vars.activeWidget.legend.value == G.conf.map_legendset_type_automatic) {
if (method == mapfish.GeoStat.Distribution.CLASSIFY_WITH_BOUNDS) {
- var str = G.vars.activePanel.isPolygon() ? choropleth.form.findField('bounds').getValue() : point.form.findField('bounds').getValue();
+ var str = G.vars.activePanel.isPolygon() ?
+ choropleth.form.findField('bounds').getValue() : point.form.findField('bounds').getValue();
for (var i = 0; i < str.length; i++) {
str = str.replace(' ','');
@@ -313,26 +334,26 @@
bounds.push(this.maxVal);
}
}
- else if (mlt == G.conf.map_legend_type_predefined) {
- bounds = G.vars.activePanel.isPolygon() ? choropleth.bounds : point.bounds;
+ else if (G.vars.activeWidget.legend.value == G.conf.map_legendset_type_predefined) {
+ bounds = G.vars.activeWidget.bounds;
if (bounds[0] > this.minVal) {
- bounds.unshift(this.minVal);
- if (G.vars.activePanel.isPolygon()) {
- choropleth.colorInterpolation.unshift(new mapfish.ColorRgb(240,240,240));
+ bounds.unshift(this.minVal);
+ if (G.vars.activeWidget == centroid) {
+ G.vars.activeWidget.symbolizerInterpolation.unshift('blank');
}
else {
- point.colorInterpolation.unshift(new mapfish.ColorRgb(240,240,240));
+ G.vars.activeWidget.colorInterpolation.unshift(new mapfish.ColorRgb(240,240,240));
}
}
if (bounds[bounds.length-1] < this.maxVal) {
- bounds.push(this.maxVal);
- if (G.vars.activePanel.isPolygon()) {
- choropleth.colorInterpolation.push(new mapfish.ColorRgb(240,240,240));
+ bounds.push(this.maxVal);
+ if (G.vars.activeWidget == centroid) {
+ G.vars.activeWidget.symbolizerInterpolation.push('blank');
}
else {
- point.colorInterpolation.push(new mapfish.ColorRgb(240,240,240));
+ G.vars.activeWidget.colorInterpolation.push(new mapfish.ColorRgb(240,240,240));
}
}
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Centroid.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Centroid.js 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Centroid.js 2011-07-13 12:24:40 +0000
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2007 Camptocamp
+ *
+ * This file is part of MapFish Client
+ *
+ * MapFish Client 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.
+ *
+ * MapFish Client 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 MapFish Client. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * @requires core/GeoStat.js
+ */
+
+mapfish.GeoStat.Centroid = OpenLayers.Class(mapfish.GeoStat, {
+
+ colors: [
+ new mapfish.ColorRgb(120, 120, 0),
+ new mapfish.ColorRgb(255, 0, 0)
+ ],
+
+ method: mapfish.GeoStat.Distribution.CLASSIFY_BY_QUANTILS,
+
+ numClasses: 5,
+
+ minSize: 3,
+
+ maxSize: 20,
+
+ minVal: null,
+
+ maxVal: null,
+
+ defaultSymbolizer: {'fillOpacity': 1},
+
+ classification: null,
+
+ symbolizerInterpolation: null,
+
+ widget: null,
+
+ initialize: function(map, options) {
+ mapfish.GeoStat.prototype.initialize.apply(this, arguments);
+ },
+
+ updateOptions: function(newOptions) {
+ var oldOptions = OpenLayers.Util.extend({}, this.options);
+ this.addOptions(newOptions);
+ if (newOptions) {
+ this.setClassification();
+ }
+ },
+
+ createSymbolizerInterpolation: function() {
+ this.widget.imageLegend = [];
+ this.symbolizerInterpolation = this.widget.symbolizerInterpolation;
+
+ for (var i = 0; i < this.classification.bins.length; i++) {
+ this.widget.imageLegend.push({
+ label: this.classification.bins[i].label.replace(' ', ' '),
+ color: this.symbolizerInterpolation[i]
+ });
+ }
+ },
+
+ setClassification: function() {
+ var values = [];
+ for (var i = 0; i < this.layer.features.length; i++) {
+ values.push(this.layer.features[i].attributes[this.indicator]);
+ }
+
+ var distOptions = {
+ 'labelGenerator': this.options.labelGenerator
+ };
+ var dist = new mapfish.GeoStat.Distribution(values, distOptions);
+
+ this.minVal = dist.minVal;
+ this.maxVal = dist.maxVal;
+
+ this.classification = dist.classify(
+ this.method,
+ this.numClasses,
+ null
+ );
+
+ this.createSymbolizerInterpolation();
+ },
+
+ applyClassification: function(options, widget) {
+ this.widget = widget;
+ this.updateOptions(options);
+
+ var boundsArray = this.classification.getBoundsArray();
+ var rules = new Array(boundsArray.length-1);
+ for (var i = 0; i < boundsArray.length-1; i++) {
+ var rule = new OpenLayers.Rule({
+ symbolizer: {
+ 'pointRadius': this.symbolizerInterpolation[i] == 'blank' ? 0 : 16,
+ 'externalGraphic': '../resources/ext-ux/iconcombo/' + this.symbolizerInterpolation[i] + '-map.png'
+ },
+ filter: new OpenLayers.Filter.Comparison({
+ type: OpenLayers.Filter.Comparison.BETWEEN,
+ property: this.indicator,
+ lowerBoundary: boundsArray[i],
+ upperBoundary: boundsArray[i + 1]
+ })
+ });
+ rules[i] = rule;
+ }
+
+ this.extendStyle(rules);
+ mapfish.GeoStat.prototype.applyClassification.apply(this, arguments);
+ },
+
+ updateLegend: function() {
+ if (!this.legendDiv) {
+ return;
+ }
+
+ this.legendDiv.update("");
+ for (var i = 0; i < this.classification.bins.length; i++) {
+ var element = document.createElement("div");
+ element.style.backgroundImage = 'url(../resources/ext-ux/iconcombo/' + this.symbolizerInterpolation[i] + '.png)';
+ element.style.backgroundRepeat = 'no-repeat';
+ element.style.width = "25px";
+ element.style.height = "18px";
+ element.style.cssFloat = "left";
+ element.style.marginLeft = "3px";
+ this.legendDiv.appendChild(element);
+
+ element = document.createElement("div");
+ element.innerHTML = this.classification.bins[i].label;
+ this.legendDiv.appendChild(element);
+
+ element = document.createElement("div");
+ element.style.clear = "left";
+ this.legendDiv.appendChild(element);
+ }
+ },
+
+ CLASS_NAME: "mapfish.GeoStat.Centroid"
+});
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Choropleth.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Choropleth.js 2011-05-25 13:20:20 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Choropleth.js 2011-07-13 21:01:29 +0000
@@ -65,7 +65,7 @@
var mapLegendType = this.widget.form.findField('maplegendtype').getValue();
this.widget.imageLegend = [];
- this.colorInterpolation = mapLegendType == G.conf.map_legend_type_automatic ?
+ this.colorInterpolation = mapLegendType == G.conf.map_legendset_type_automatic ?
mapfish.ColorRgb.getColorsArrayByRgbInterpolation(this.colors[0], this.colors[1], numColors) : this.widget.colorInterpolation;
for (var i = 0; i < this.classification.bins.length; i++) {
@@ -80,7 +80,7 @@
var values = [];
for (var i = 0; i < this.layer.features.length; i++) {
values.push(this.layer.features[i].attributes[this.indicator]);
- }
+ }
var distOptions = {
'labelGenerator': this.options.labelGenerator
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Point.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Point.js 2011-05-25 13:20:20 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/core/GeoStat/Point.js 2011-07-13 21:01:29 +0000
@@ -65,7 +65,7 @@
var mapLegendType = this.widget.form.findField('maplegendtype').getValue();
this.widget.imageLegend = [];
- this.colorInterpolation = mapLegendType == G.conf.map_legend_type_automatic ?
+ this.colorInterpolation = mapLegendType == G.conf.map_legendset_type_automatic ?
mapfish.ColorRgb.getColorsArrayByRgbInterpolation(this.colors[0], this.colors[1], numColors) : this.widget.colorInterpolation;
for (var i = 0; i < this.classification.bins.length; i++) {
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Centroid.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Centroid.js 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Centroid.js 2011-07-13 21:14:52 +0000
@@ -0,0 +1,1233 @@
+/*
+ * Copyright (C) 2007-2008 Camptocamp|
+ *
+ * This file is part of MapFish Client
+ *
+ * MapFish Client 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.
+ *
+ * MapFish Client 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 MapFish Client. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * @requires core/GeoStat/Centroid.js
+ * @requires core/Color.js
+ */
+
+Ext.namespace('mapfish.widgets', 'mapfish.widgets.geostat');
+
+mapfish.widgets.geostat.Centroid = Ext.extend(Ext.FormPanel, {
+
+ layer: null,
+
+ format: null,
+
+ url: null,
+
+ featureSelection: true,
+
+ nameAttribute: null,
+
+ indicator: null,
+
+ indicatorText: null,
+
+ coreComp: null,
+
+ classificationApplied: false,
+
+ ready: false,
+
+ border: false,
+
+ loadMask: false,
+
+ labelGenerator: null,
+
+ colorInterpolation: false,
+
+ newUrl: false,
+
+ legend: false,
+
+ bounds: false,
+
+ mapView: false,
+
+ mapData: false,
+
+ labels: false,
+
+ valueType: false,
+
+ selectFeatures: false,
+
+ organisationUnitSelection: false,
+
+ updateValues: false,
+
+ isDrillDown: false,
+
+ imageLegend: false,
+
+ stores: false,
+
+ infrastructuralPeriod: false,
+
+ featureOptions: {},
+
+ initComponent: function() {
+
+ this.initProperties();
+
+ this.createItems();
+
+ this.createSelectFeatures();
+
+ mapfish.widgets.geostat.Centroid.superclass.initComponent.apply(this);
+ },
+
+ setUrl: function(url) {
+ this.url = url;
+ this.coreComp.setUrl(this.url);
+ },
+
+ requestSuccess: function(request) {
+ this.ready = true;
+
+ if (this.loadMask && this.rendered) {
+ this.loadMask.hide();
+ }
+ },
+
+ requestFailure: function(request) {
+ OpenLayers.Console.error(G.i18n.ajax_request_failed);
+ },
+
+ getColors: function() {
+ var startColor = new mapfish.ColorRgb();
+ startColor.setFromHex(this.form.findField('startcolor').getValue());
+ var endColor = new mapfish.ColorRgb();
+ endColor.setFromHex(this.form.findField('endcolor').getValue());
+ return [startColor, endColor];
+ },
+
+ initProperties: function() {
+ this.legend = {
+ value: G.conf.map_legendset_type_predefined
+ };
+
+ this.organisationUnitSelection = {
+ parent: {
+ id: null,
+ name: null,
+ level: null
+ },
+ level: {
+ level: null,
+ name: null
+ },
+ setValues: function(pid, pn, pl, ll, ln) {
+ this.parent.id = pid || this.parent.id;
+ this.parent.name = pn || this.parent.name;
+ this.parent.level = pl || this.parent.level;
+ this.level.level = ll || this.level.level;
+ this.level.name = ln || this.level.name;
+ },
+ getValues: function() {
+ return {
+ parent: {
+ id: this.parent.id,
+ name: this.parent.name,
+ level: this.parent.level
+ },
+ level: {
+ level: this.level.level,
+ name: this.level.name
+ }
+ };
+ },
+ setValuesOnDrillDown: function(pid, pn) {
+ this.parent.id = pid;
+ this.parent.name = pn;
+ this.parent.level = this.level.level;
+ this.level.level++;
+ this.level.name = G.stores.organisationUnitLevel.getAt(
+ G.stores.organisationUnitLevel.find('level', this.level.level)).data.name;
+
+ return [this.parent.name, this.level.name];
+ }
+ };
+
+ this.valueType = {
+ value: G.conf.map_value_type_indicator,
+ setIndicator: function() {
+ this.value = G.conf.map_value_type_indicator;
+ },
+ setDatElement: function() {
+ this.value = G.conf.map_value_type_dataelement;
+ },
+ isIndicator: function() {
+ return this.value == G.conf.map_value_type_indicator;
+ },
+ isDataElement: function() {
+ return this.value == G.conf.map_value_type_dataelement;
+ }
+ };
+
+ this.stores = {
+ mapLegendTypeIcon: new Ext.data.ArrayStore({
+ fields: ['name', 'css'],
+ data: [
+ ['0','ux-ic-icon-maplegend-type-0'],
+ ['1','ux-ic-icon-maplegend-type-1'],
+ ['2','ux-ic-icon-maplegend-type-2'],
+ ['3','ux-ic-icon-maplegend-type-3'],
+ ['4','ux-ic-icon-maplegend-type-4'],
+ ['5','ux-ic-icon-maplegend-type-5'],
+ ['6','ux-ic-icon-maplegend-type-6'],
+ ['7','ux-ic-icon-maplegend-type-7'],
+ ['8','ux-ic-icon-maplegend-type-8'],
+ ['9','ux-ic-icon-maplegend-type-9']
+ ]
+ }),
+ indicatorsByGroup: new Ext.data.JsonStore({
+ url: G.conf.path_mapping + 'getIndicatorsByIndicatorGroup' + G.conf.type,
+ root: 'indicators',
+ fields: ['id', 'name', 'shortName'],
+ idProperty: 'id',
+ sortInfo: {field: 'name', direction: 'ASC'},
+ autoLoad: false,
+ isLoaded: false,
+ listeners: {
+ 'load': function(store) {
+ store.isLoaded = true;
+ store.each(
+ function fn(record) {
+ var name = record.get('name');
+ name = name.replace('<', '<').replace('>', '>');
+ record.set('name', name);
+ }
+ );
+ }
+ }
+ }),
+ dataElementsByGroup: new Ext.data.JsonStore({
+ url: G.conf.path_mapping + 'getDataElementsByDataElementGroup' + G.conf.type,
+ root: 'dataElements',
+ fields: ['id', 'name', 'shortName'],
+ sortInfo: {field: 'name', direction: 'ASC'},
+ autoLoad: false,
+ isLoaded: false,
+ listeners: {
+ 'load': function(store) {
+ store.isLoaded = true;
+ store.each(
+ function fn(record) {
+ var name = record.get('name');
+ name = name.replace('<', '<').replace('>', '>');
+ record.set('name', name);
+ }
+ );
+ }
+ }
+ }),
+ periodsByType: new Ext.data.JsonStore({
+ url: G.conf.path_mapping + 'getPeriodsByPeriodType' + G.conf.type,
+ root: 'periods',
+ fields: ['id', 'name'],
+ autoLoad: false,
+ isLoaded: false,
+ listeners: {
+ 'load': G.func.storeLoadListener
+ }
+ })
+ };
+ },
+
+ createItems: function() {
+
+ this.defaults = {
+ labelSeparator: G.conf.labelseparator,
+ emptyText: G.conf.emptytext
+ };
+
+ this.items = [
+ {
+ xtype: 'combo',
+ name: 'mapview',
+ fieldLabel: G.i18n.favorite,
+ typeAhead: true,
+ editable: false,
+ valueField: 'id',
+ displayField: 'name',
+ mode: 'remote',
+ forceSelection: true,
+ triggerAction: 'all',
+ emptyText: G.i18n.optional,
+ selectOnFocus: true,
+ hidden: true,
+ width: G.conf.combo_width,
+ store: G.stores.mapView,
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function(cb) {
+ this.mapView = G.stores.mapView.getAt(G.stores.mapView.find('id', cb.getValue())).data;
+ this.updateValues = true;
+
+ this.legend.value = this.mapView.mapLegendType;
+ this.legend.method = this.mapView.method || this.legend.method;
+ this.legend.classes = this.mapView.classes || this.legend.classes;
+
+ G.vars.map.setCenter(new OpenLayers.LonLat(this.mapView.longitude, this.mapView.latitude), this.mapView.zoom);
+ G.system.mapDateType.value = this.mapView.mapDateType;
+ Ext.getCmp('mapdatetype_cb').setValue(G.system.mapDateType.value);
+
+ this.valueType.value = this.mapView.mapValueType;
+ this.form.findField('mapvaluetype').setValue(this.valueType.value);
+ this.setMapView();
+ }
+ }
+ }
+ },
+
+ //{ html: '<div class="thematic-br">' },
+
+ {
+ xtype: 'combo',
+ name: 'mapvaluetype',
+ fieldLabel: G.i18n.mapvaluetype,
+ editable: false,
+ valueField: 'id',
+ displayField: 'name',
+ mode: 'local',
+ triggerAction: 'all',
+ width: G.conf.combo_width,
+ value: G.conf.map_value_type_indicator,
+ store: new Ext.data.ArrayStore({
+ fields: ['id', 'name'],
+ data: [
+ [G.conf.map_value_type_indicator, 'Indicator'],
+ [G.conf.map_value_type_dataelement, 'Data element']
+ ]
+ }),
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function(cb) {
+ this.valueType.value = cb.getValue();
+ this.prepareMapViewValueType();
+ this.classify(false, true);
+ }
+ }
+ }
+ },
+
+ {
+ xtype: 'combo',
+ name: 'indicatorgroup',
+ fieldLabel: G.i18n.indicator_group,
+ typeAhead: true,
+ editable: false,
+ valueField: 'id',
+ displayField: 'name',
+ mode: 'remote',
+ forceSelection: true,
+ triggerAction: 'all',
+ selectOnFocus: true,
+ width: G.conf.combo_width,
+ store: G.stores.indicatorGroup,
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function(cb) {
+ this.form.findField('indicator').clearValue();
+ this.stores.indicatorsByGroup.setBaseParam('indicatorGroupId', cb.getValue());
+ this.stores.indicatorsByGroup.load();
+ }
+ }
+ }
+ },
+
+ {
+ xtype: 'combo',
+ name: 'indicator',
+ fieldLabel: G.i18n.indicator,
+ typeAhead: true,
+ editable: false,
+ valueField: 'id',
+ displayField: 'shortName',
+ mode: 'remote',
+ forceSelection: true,
+ triggerAction: 'all',
+ selectOnFocus: true,
+ width: G.conf.combo_width,
+ store: this.stores.indicatorsByGroup,
+ currentValue: null,
+ keepPosition: false,
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function(cb) {
+ if (G.util.setCurrentValue.call(this, cb, 'mapview')) {
+ return;
+ }
+ this.updateValues = true;
+ this.classify(false, cb.keepPosition);
+ G.util.setKeepPosition(cb);
+ }
+ }
+ }
+ },
+
+ {
+ xtype: 'combo',
+ name: 'dataelementgroup',
+ fieldLabel: G.i18n.dataelement_group,
+ typeAhead: true,
+ editable: false,
+ valueField: 'id',
+ displayField: 'name',
+ mode: 'remote',
+ forceSelection: true,
+ triggerAction: 'all',
+ selectOnFocus: true,
+ width: G.conf.combo_width,
+ store: G.stores.dataElementGroup,
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function(cb) {
+ this.form.findField('dataelement').clearValue();
+ this.stores.dataElementsByGroup.setBaseParam('dataElementGroupId', cb.getValue());
+ this.stores.dataElementsByGroup.load();
+ }
+ }
+ }
+ },
+
+ {
+ xtype: 'combo',
+ name: 'dataelement',
+ fieldLabel: G.i18n.dataelement,
+ typeAhead: true,
+ editable: false,
+ valueField: 'id',
+ displayField: 'shortName',
+ mode: 'remote',
+ forceSelection: true,
+ triggerAction: 'all',
+ selectOnFocus: true,
+ width: G.conf.combo_width,
+ store: this.stores.dataElementsByGroup,
+ keepPosition: false,
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function(cb) {
+ if (G.util.setCurrentValue.call(this, cb, 'mapview')) {
+ return;
+ }
+ this.updateValues = true;
+ this.classify(false, cb.keepPosition);
+ G.util.setKeepPosition(cb);
+ }
+ }
+ }
+ },
+
+ {
+ xtype: 'combo',
+ name: 'periodtype',
+ fieldLabel: G.i18n.period_type,
+ typeAhead: true,
+ editable: false,
+ valueField: 'name',
+ displayField: 'displayName',
+ mode: 'remote',
+ forceSelection: true,
+ triggerAction: 'all',
+ selectOnFocus: true,
+ width: G.conf.combo_width,
+ store: G.stores.periodType,
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function(cb) {
+ this.form.findField('period').clearValue();
+ this.stores.periodsByType.setBaseParam('name', cb.getValue());
+ this.stores.periodsByType.load();
+ }
+ }
+ }
+ },
+
+ {
+ xtype: 'combo',
+ name: 'period',
+ fieldLabel: G.i18n.period,
+ typeAhead: true,
+ editable: false,
+ valueField: 'id',
+ displayField: 'name',
+ mode: 'remote',
+ forceSelection: true,
+ triggerAction: 'all',
+ selectOnFocus: true,
+ width: G.conf.combo_width,
+ store: this.stores.periodsByType,
+ keepPosition: false,
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function(cb) {
+ if (G.util.setCurrentValue.call(this, cb, 'mapview')) {
+ return;
+ }
+ this.updateValues = true;
+ this.classify(false, cb.keepPosition);
+ G.util.setKeepPosition(cb);
+ }
+ }
+ }
+ },
+
+ {
+ xtype: 'datefield',
+ name: 'startdate',
+ fieldLabel: G.i18n.start_date,
+ format: 'Y-m-d',
+ hidden: true,
+ width: G.conf.combo_width,
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function(df, date) {
+ this.form.findField('mapview').clearValue();
+ this.updateValues = true;
+ this.form.findField('enddate').setMinValue(date);
+ this.classify(false, true);
+ }
+ }
+ }
+ },
+
+ {
+ xtype: 'datefield',
+ name: 'enddate',
+ fieldLabel: G.i18n.end_date,
+ format: 'Y-m-d',
+ hidden: true,
+ width: G.conf.combo_width,
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function(df, date) {
+ this.form.findField('mapview').clearValue();
+ this.updateValues = true;
+ this.form.findField('startdate').setMaxValue(date);
+ this.classify(false, true);
+ }
+ }
+ }
+ },
+
+ { html: '<div class="thematic-br">' },
+
+ {
+ xtype: 'textfield',
+ name: 'boundary',
+ fieldLabel: G.i18n.boundary,
+ width: G.conf.combo_width,
+ style: 'cursor:pointer',
+ node: {attributes: {hasChildrenWithCoordinates: false}},
+ selectedNode: null,
+ treeWindow: null,
+ treePanel: null,
+ listeners: {
+ 'focus': {
+ scope: this,
+ fn: function(tf) {
+ if (tf.treeWindow) {
+ tf.treeWindow.show();
+ }
+ else {
+ this.createSingletonCmp.treeWindow.call(this);
+ }
+ }
+ }
+ }
+ },
+
+ {
+ xtype: 'textfield',
+ name: 'level',
+ fieldLabel: G.i18n.level,
+ width: G.conf.combo_width,
+ style: 'cursor:pointer',
+ levelComboBox: null,
+ listeners: {
+ 'focus': {
+ scope: this,
+ fn: function() {
+ if (this.form.findField('boundary').treeWindow) {
+ this.form.findField('boundary').treeWindow.show();
+ }
+ else {
+ this.createSingletonCmp.treeWindow.call(this);
+ }
+ }
+ }
+ }
+ },
+
+ { html: '<div class="thematic-br">' },
+
+ {
+ xtype: 'combo',
+ name: 'maplegendset',
+ editable: false,
+ valueField: 'id',
+ displayField: 'name',
+ mode: 'remote',
+ fieldLabel: G.i18n.legendset,
+ triggerAction: 'all',
+ width: G.conf.combo_width,
+ store: G.stores.predefinedImageMapLegendSet,
+ listeners: {
+ 'select': {
+ scope: this,
+ fn: function() {
+ this.applyPredefinedLegend();
+ }
+ }
+ }
+ }
+
+ ];
+ },
+
+ createSingletonCmp: {
+ treeWindow: function() {
+ Ext.Ajax.request({
+ url: G.conf.path_commons + 'getOrganisationUnits' + G.conf.type,
+ params: {level: 1},
+ method: 'POST',
+ scope: this,
+ success: function(r) {
+ var rootNode = Ext.util.JSON.decode(r.responseText).organisationUnits[0];
+ var rootUnit = {
+ id: rootNode.id,
+ name: rootNode.name,
+ level: 1,
+ hasChildrenWithCoordinates: rootNode.hasChildrenWithCoordinates
+ };
+
+ var w = new Ext.Window({
+ title: 'Boundary and level',
+ closeAction: 'hide',
+ autoScroll: true,
+ height: 'auto',
+ autoHeight: true,
+ width: G.conf.window_width,
+ items: [
+ {
+ xtype: 'panel',
+ bodyStyle: 'padding:8px; background-color:#ffffff',
+ items: [
+ {html: '<div class="window-info">' + G.i18n.select_outer_boundary + '</div>'},
+ {
+ xtype: 'treepanel',
+ bodyStyle: 'background-color:#ffffff',
+ height: screen.height / 3,
+ autoScroll: true,
+ lines: false,
+ loader: new Ext.tree.TreeLoader({
+ dataUrl: G.conf.path_mapping + 'getOrganisationUnitChildren' + G.conf.type
+ }),
+ root: {
+ id: rootUnit.id,
+ text: rootUnit.name,
+ level: rootUnit.level,
+ hasChildrenWithCoordinates: rootUnit.hasChildrenWithCoordinates,
+ nodeType: 'async',
+ draggable: false,
+ expanded: true
+ },
+ clickedNode: null,
+ listeners: {
+ 'click': {
+ scope: this,
+ fn: function(n) {
+ this.form.findField('boundary').selectedNode = n;
+ }
+ },
+ 'afterrender': {
+ scope: this,
+ fn: function(tp) {
+ this.form.findField('boundary').treePanel = tp;
+ }
+ }
+ }
+ }
+ ]
+ },
+ {
+ xtype: 'panel',
+ layout: 'form',
+ bodyStyle: 'padding:8px; background-color:#ffffff',
+ labelWidth: G.conf.label_width,
+ items: [
+ {html: '<div class="window-info">' + G.i18n.select_organisation_unit_level + '</div>'},
+ {
+ xtype: 'combo',
+ fieldLabel: G.i18n.level,
+ editable: false,
+ valueField: 'level',
+ displayField: 'name',
+ mode: 'remote',
+ forceSelection: true,
+ triggerAction: 'all',
+ selectOnFocus: true,
+ emptyText: G.conf.emptytext,
+ labelSeparator: G.conf.labelseparator,
+ fieldLabel: G.i18n.level,
+ width: G.conf.combo_width_fieldset,
+ minListWidth: G.conf.combo_width_fieldset,
+ store: G.stores.organisationUnitLevel,
+ listeners: {
+ 'afterrender': {
+ scope: this,
+ fn: function(cb) {
+ this.form.findField('level').levelComboBox = cb;
+ }
+ }
+ }
+ }
+ ]
+ }
+ ],
+ bbar: [
+ '->',
+ {
+ xtype: 'button',
+ text: G.i18n.apply,
+ iconCls: 'icon-assign',
+ scope: this,
+ handler: function() {
+ var node = this.form.findField('boundary').selectedNode;
+ if (!node || !this.form.findField('level').levelComboBox.getValue()) {
+ return;
+ }
+ if (node.attributes.level > this.form.findField('level').levelComboBox.getValue()) {
+ Ext.message.msg(false, 'Level is higher than boundary level');
+ return;
+ }
+
+ if (Ext.getCmp('locatefeature_w')) {
+ Ext.getCmp('locatefeature_w').destroy();
+ }
+
+ this.form.findField('mapview').clearValue();
+ this.updateValues = true;
+ this.organisationUnitSelection.setValues(node.attributes.id, node.attributes.text, node.attributes.level,
+ this.form.findField('level').levelComboBox.getValue(), this.form.findField('level').levelComboBox.getRawValue());
+
+ this.form.findField('boundary').setValue(node.attributes.text);
+ this.form.findField('level').setValue(this.form.findField('level').levelComboBox.getRawValue());
+
+ this.form.findField('boundary').treeWindow.hide();
+ this.loadGeoJson();
+ }
+ }
+ ]
+ });
+
+ var x = Ext.getCmp('center').x + G.conf.window_position_x;
+ var y = Ext.getCmp('center').y + G.conf.window_position_y;
+ w.setPosition(x,y);
+ w.show();
+ this.form.findField('boundary').treeWindow = w;
+ }
+ });
+ }
+ },
+
+ createSelectFeatures: function() {
+ var scope = this;
+
+ var onHoverSelect = function onHoverSelect(feature) {
+ if (feature.attributes.name) {
+ document.getElementById('featuredatatext').innerHTML =
+ '<div style="' + G.conf.feature_data_style_name + '">' + feature.attributes.name + '</div>' +
+ '<div style="' + G.conf.feature_data_style_value + '">' + feature.attributes.value + '</div>';
+ }
+ else {
+ document.getElementById('featuredatatext').innerHTML = '';
+ }
+ };
+
+ var onHoverUnselect = function onHoverUnselect(feature) {
+ if (feature.attributes.name) {
+ document.getElementById('featuredatatext').innerHTML =
+ '<div style="' + G.conf.feature_data_style_empty + '">' + G.i18n.no_feature_selected + '</div>';
+ }
+ else {
+ document.getElementById('featuredatatext').innerHTML = '';
+ }
+ };
+
+ this.selectFeatures = new OpenLayers.Control.newSelectFeature(
+ this.layer, {
+ onHoverSelect: onHoverSelect,
+ onHoverUnselect: onHoverUnselect
+ }
+ );
+
+ G.vars.map.addControl(this.selectFeatures);
+ this.selectFeatures.activate();
+ },
+
+ prepareMapViewValueType: function() {
+ var obj = {};
+ if (this.valueType.isIndicator()) {
+ this.form.findField('indicatorgroup').showField();
+ this.form.findField('indicator').showField();
+ this.form.findField('dataelementgroup').hideField();
+ this.form.findField('dataelement').hideField();
+ obj.components = {
+ valueTypeGroup: this.form.findField('indicatorgroup'),
+ valueType: this.form.findField('indicator')
+ };
+ obj.stores = {
+ valueTypeGroup: G.stores.indicatorGroup,
+ valueType: this.stores.indicatorsByGroup
+ };
+ obj.mapView = {
+ valueTypeGroup: 'indicatorGroupId',
+ valueType: 'indicatorId'
+ };
+ }
+ else if (this.valueType.isDataElement()) {
+ this.form.findField('indicatorgroup').hideField();
+ this.form.findField('indicator').hideField();
+ this.form.findField('dataelementgroup').showField();
+ this.form.findField('dataelement').showField();
+ obj.components = {
+ valueTypeGroup: this.form.findField('dataelementgroup'),
+ valueType: this.form.findField('dataelement')
+ };
+ obj.stores = {
+ valueTypeGroup: G.stores.dataElementGroup,
+ valueType: this.stores.dataElementsByGroup
+ };
+ obj.mapView = {
+ valueTypeGroup: 'dataElementGroupId',
+ valueType: 'dataElementId'
+ };
+ }
+ return obj;
+ },
+
+ prepareMapViewDateType: function() {
+ var obj = {};
+ if (G.system.mapDateType.isFixed()) {
+ this.form.findField('periodtype').showField();
+ this.form.findField('period').showField();
+ this.form.findField('startdate').hideField();
+ this.form.findField('enddate').hideField();
+ obj.components = {
+ c1: this.form.findField('periodtype'),
+ c2: this.form.findField('period')
+ };
+ obj.stores = {
+ c1: G.stores.periodType,
+ c2: this.stores.periodsByType
+ };
+ obj.mapView = {
+ c1: 'periodTypeId',
+ c2: 'periodId'
+ };
+ }
+ else if (G.system.mapDateType.isStartEnd()) {
+ this.form.findField('periodtype').hideField();
+ this.form.findField('period').hideField();
+ this.form.findField('startdate').showField();
+ this.form.findField('enddate').showField();
+ obj.components = {
+ c1: this.form.findField('startdate'),
+ c2: this.form.findField('enddate')
+ };
+ obj.mapView = {
+ c1: 'startDate',
+ c2: 'endDate'
+ };
+ }
+ return obj;
+ },
+
+ setMapView: function() {
+ var obj = this.prepareMapViewValueType();
+
+ function valueTypeGroupStoreCallback() {
+ obj.components.valueTypeGroup.setValue(this.mapView[obj.mapView.valueTypeGroup]);
+ obj.stores.valueType.setBaseParam(obj.mapView.valueTypeGroup, obj.components.valueTypeGroup.getValue());
+ obj.stores.valueType.load({scope: this, callback: function() {
+ obj.components.valueType.setValue(this.mapView[obj.mapView.valueType]);
+ obj.components.valueType.currentValue = this.mapView[obj.mapView.valueType];
+
+ obj = this.prepareMapViewDateType();
+ if (G.system.mapDateType.isFixed()) {
+ if (obj.stores.c1.isLoaded) {
+ dateTypeGroupStoreCallback.call(this);
+ }
+ else {
+ obj.stores.c1.load({scope: this, callback: function() {
+ dateTypeGroupStoreCallback.call(this);
+ }});
+ }
+ }
+ else if (G.system.mapDateType.isStartEnd()) {
+ obj.components.c1.setValue(new Date(this.mapView[obj.mapView.c1]));
+ obj.components.c2.setValue(new Date(this.mapView[obj.mapView.c2]));
+
+ this.setMapViewLegend();
+ }
+ }});
+ }
+
+ function dateTypeGroupStoreCallback() {
+ obj.components.c1.setValue(this.mapView[obj.mapView.c1]);
+
+ obj.stores.c2.setBaseParam('name', this.mapView[obj.mapView.c1]);
+ obj.stores.c2.load({scope: this, callback: function() {
+ obj.components.c2.setValue(this.mapView[obj.mapView.c2]);
+ obj.components.c2.currentValue = this.mapView[obj.mapView.c2];
+ obj.components.c2.keepPosition = true;
+
+ this.setMapViewLegend();
+ }});
+ }
+
+ if (obj.stores.valueTypeGroup.isLoaded) {
+ valueTypeGroupStoreCallback.call(this);
+ }
+ else {
+ obj.stores.valueTypeGroup.load({scope: this, callback: function() {
+ valueTypeGroupStoreCallback.call(this);
+ }});
+ }
+ },
+
+ setMapViewLegend: function() {
+ function predefinedMapLegendSetStoreCallback() {
+ this.form.findField('maplegendset').setValue(this.mapView.mapLegendSetId);
+ this.applyPredefinedLegend(true);
+ }
+
+ if (G.stores.predefinedMapLegendSet.isLoaded) {
+ predefinedMapLegendSetStoreCallback.call(this);
+ }
+ else {
+ G.stores.predefinedMapLegendSet.load({scope: this, callback: function() {
+ predefinedMapLegendSetStoreCallback.call(this);
+ }});
+ }
+ },
+
+ setMapViewMap: function() {
+ this.organisationUnitSelection.setValues(this.mapView.parentOrganisationUnitId, this.mapView.parentOrganisationUnitName,
+ this.mapView.parentOrganisationUnitLevel, this.mapView.organisationUnitLevel, this.mapView.organisationUnitLevelName);
+
+ G.stores.organisationUnitLevel.load();
+ this.form.findField('boundary').setValue(this.mapView.parentOrganisationUnitName);
+ this.form.findField('level').setValue(this.mapView.organisationUnitLevelName);
+
+ this.loadGeoJson();
+ },
+
+ applyPredefinedLegend: function(isMapView) {
+ this.legend.value = G.conf.map_legendset_type_predefined;
+ var mls = this.form.findField('maplegendset').getValue();
+ Ext.Ajax.request({
+ url: G.conf.path_mapping + 'getMapLegendsByMapLegendSet' + G.conf.type,
+ method: 'POST',
+ params: {mapLegendSetId: mls},
+ scope: this,
+ success: function(r) {
+ var mapLegends = Ext.util.JSON.decode(r.responseText).mapLegends;
+ this.symbolizerInterpolation = [];
+ this.bounds = [];
+ for (var i = 0; i < mapLegends.length; i++) {
+ if (this.bounds[this.bounds.length-1] != mapLegends[i].startValue) {
+ if (this.bounds.length !== 0) {
+ this.symbolizerInterpolation.push('blank');
+ }
+ this.bounds.push(mapLegends[i].startValue);
+ }
+ this.symbolizerInterpolation.push(mapLegends[i].image);
+ this.bounds.push(mapLegends[i].endValue);
+ }
+
+ if (isMapView) {
+ this.setMapViewMap();
+ }
+ else {
+ this.classify(false, true);
+ }
+ }
+ });
+ },
+
+ formValidation: {
+ validateForm: function(exception) {
+ if (this.form.findField('mapvaluetype').getValue() == G.conf.map_value_type_indicator) {
+ if (!this.form.findField('indicator').getValue()) {
+ if (exception) {
+ Ext.message.msg(false, G.i18n.form_is_not_complete);
+ }
+ return false;
+ }
+ }
+ else if (this.form.findField('mapvaluetype').getValue() == G.conf.map_value_type_dataelement) {
+ if (!this.form.findField('dataelement').getValue()) {
+ if (exception) {
+ Ext.message.msg(false, G.i18n.form_is_not_complete);
+ }
+ return false;
+ }
+ }
+
+ if (G.system.mapDateType.isFixed()) {
+ if (!this.form.findField('period').getValue()) {
+ if (exception) {
+ Ext.message.msg(false, G.i18n.form_is_not_complete);
+ }
+ return false;
+ }
+ }
+ else {
+ if (!this.form.findField('startdate').getValue() || !this.form.findField('enddate').getValue()) {
+ if (exception) {
+ Ext.message.msg(false, G.i18n.form_is_not_complete);
+ }
+ return false;
+ }
+ }
+
+ if (!this.form.findField('boundary').getValue() || !this.form.findField('level').getValue()) {
+ if (exception) {
+ Ext.message.msg(false, G.i18n.form_is_not_complete);
+ }
+ return false;
+ }
+
+ if (!this.form.findField('maplegendset').getValue()) {
+ if (exception) {
+ Ext.message.msg(false, G.i18n.form_is_not_complete);
+ }
+ return false;
+ }
+
+ return true;
+ }
+ },
+
+ formValues: {
+ getAllValues: function() {
+ return {
+ mapValueType: this.form.findField('mapvaluetype').getValue(),
+ indicatorGroupId: this.valueType.isIndicator() ? this.form.findField('indicatorgroup').getValue() : null,
+ indicatorId: this.valueType.isIndicator() ? this.form.findField('indicator').getValue() : null,
+ indicatorName: this.valueType.isIndicator() ? this.form.findField('indicator').getRawValue() : null,
+ dataElementGroupId: this.valueType.isDataElement() ? this.form.findField('dataelementgroup').getValue() : null,
+ dataElementId: this.valueType.isDataElement() ? this.form.findField('dataelement').getValue() : null,
+ dataElementName: this.valueType.isDataElement() ? this.form.findField('dataelement').getRawValue() : null,
+ mapDateType: G.system.mapDateType.value,
+ periodTypeId: G.system.mapDateType.isFixed() ? this.form.findField('periodtype').getValue() : null,
+ periodId: G.system.mapDateType.isFixed() ? this.form.findField('period').getValue() : null,
+ periodName: G.system.mapDateType.isFixed() ? this.form.findField('period').getRawValue() : null,
+ startDate: G.system.mapDateType.isStartEnd() ? this.form.findField('startdate').getRawValue() : null,
+ endDate: G.system.mapDateType.isStartEnd() ? this.form.findField('enddate').getRawValue() : null,
+ parentOrganisationUnitId: this.organisationUnitSelection.parent.id,
+ parentOrganisationUnitLevel: this.organisationUnitSelection.parent.level,
+ parentOrganisationUnitName: this.organisationUnitSelection.parent.name,
+ organisationUnitLevel: this.organisationUnitSelection.level.level,
+ organisationUnitLevelName: this.organisationUnitSelection.level.name,
+ mapLegendSetId: this.form.findField('maplegendset').getValue(),
+ longitude: G.vars.map.getCenter().lon,
+ latitude: G.vars.map.getCenter().lat,
+ zoom: parseFloat(G.vars.map.getZoom())
+ };
+ },
+
+ getImageExportValues: function() {
+ return {
+ mapValueTypeValue: this.form.findField('mapvaluetype').getValue() == G.conf.map_value_type_indicator ?
+ this.form.findField('indicator').getRawValue() : this.form.findField('dataelement').getRawValue(),
+ dateValue: G.system.mapDateType.isFixed() ?
+ this.form.findField('period').getRawValue() : new Date(this.form.findField('startdate').getRawValue()).format('Y M j') + ' - ' + new Date(this.form.findField('enddate').getRawValue()).format('Y M j')
+ };
+ },
+
+ clearForm: function() {
+ this.form.findField('mapview').clearValue();
+
+ this.form.findField('mapvaluetype').setValue(G.conf.map_value_type_indicator);
+ this.valueType.setIndicator();
+ this.prepareMapViewValueType();
+ this.form.findField('indicatorgroup').clearValue();
+ this.form.findField('indicator').clearValue();
+ this.form.findField('dataelementgroup').clearValue();
+ this.form.findField('dataelement').clearValue();
+
+ G.system.mapDateType.setFixed();
+ this.prepareMapViewDateType();
+ this.form.findField('periodtype').clearValue();
+ this.form.findField('period').clearValue();
+ this.form.findField('startdate').reset();
+ this.form.findField('enddate').reset();
+
+ var boundary = this.form.findField('boundary')
+ var level = this.form.findField('level');
+ boundary.reset();
+ level.reset();
+ if (boundary.treePanel && level.levelComboBox) {
+ boundary.treePanel.selectPath(boundary.treePanel.getRootNode().getPath());
+ level.levelComboBox.clearValue();
+ }
+
+ document.getElementById(this.legendDiv).innerHTML = '';
+
+ this.layer.destroyFeatures();
+ this.layer.setVisibility(false);
+ }
+ },
+
+ loadGeoJson: function() {
+ G.vars.mask.msg = G.i18n.loading_geojson;
+ G.vars.mask.show();
+ G.vars.activeWidget = this;
+
+ this.setUrl(G.conf.path_mapping + 'getGeoJson.action?' +
+ 'parentId=' + this.organisationUnitSelection.parent.id +
+ '&level=' + this.organisationUnitSelection.level.level
+ );
+ },
+
+ classify: function(exception, position) {
+ if (this.formValidation.validateForm.apply(this, [exception])) {
+ G.vars.mask.msg = G.i18n.aggregating_map_values;
+ G.vars.mask.show();
+
+ if (!position && this.layer.features.length) {
+ G.vars.map.zoomToExtent(this.layer.getDataExtent());
+ }
+
+ if (this.mapView) {
+ if (this.mapView.longitude && this.mapView.latitude && this.mapView.zoom) {
+ var point = G.util.getTransformedPointByXY(this.mapView.longitude, this.mapView.latitude);
+ G.vars.map.setCenter(new OpenLayers.LonLat(point.x, point.y), this.mapView.zoom);
+ }
+ else {
+ G.vars.map.zoomToExtent(this.layer.getDataExtent());
+ }
+ this.mapView = false;
+ }
+
+ if (this.updateValues) {
+ var dataUrl = this.valueType.isIndicator() ? 'getIndicatorMapValues' : 'getDataElementMapValues';
+ var params = {
+ id: this.valueType.isIndicator() ? this.form.findField('indicator').getValue() : this.form.findField('dataelement').getValue(),
+ periodId: G.system.mapDateType.isFixed() ? this.form.findField('period').getValue() : null,
+ startDate: G.system.mapDateType.isStartEnd() ? new Date(this.form.findField('startdate').getValue()).format('Y-m-d') : null,
+ endDate: G.system.mapDateType.isStartEnd() ? new Date(this.form.findField('enddate').getValue()).format('Y-m-d') : null,
+ parentId: this.organisationUnitSelection.parent.id,
+ level: this.organisationUnitSelection.level.level
+ };
+
+ Ext.Ajax.request({
+ url: G.conf.path_mapping + dataUrl + G.conf.type,
+ method: 'POST',
+ params: params,
+ scope: this,
+ success: function(r) {
+ var mapvalues = Ext.util.JSON.decode(r.responseText).mapValues;
+
+ if (!this.layer.features.length) {
+ Ext.message.msg(false, 'No coordinates found');
+ G.vars.mask.hide();
+ return;
+ }
+
+ if (mapvalues.length === 0) {
+ Ext.message.msg(false, G.i18n.current_selection_no_data);
+ G.vars.mask.hide();
+ return;
+ }
+
+ for (var i = 0; i < mapvalues.length; i++) {
+ for (var j = 0; j < this.layer.features.length; j++) {
+ if (mapvalues[i].orgUnitName == this.layer.features[j].attributes.name) {
+ this.layer.features[j].attributes.value = parseFloat(mapvalues[i].value);
+ this.layer.features[j].attributes.labelString = this.layer.features[j].attributes.name + ' (' + this.layer.features[j].attributes.value + ')';
+ break;
+ }
+ }
+ }
+
+ this.updateValues = false;
+ this.applyValues();
+ }
+ });
+ }
+ else {
+ this.applyValues();
+ }
+ }
+ },
+
+ applyValues: function() {
+ Ext.getCmp('viewhistory_b').addItem(this);
+
+ var options = {
+ indicator: 'value',
+ method: G.conf.classify_by_equal_intervals
+ };
+
+ G.vars.activeWidget = this;
+ this.coreComp.applyClassification(options, this);
+ this.classificationApplied = true;
+
+ G.vars.mask.hide();
+ },
+
+ onRender: function(ct, position) {
+ mapfish.widgets.geostat.Centroid.superclass.onRender.apply(this, arguments);
+
+ var coreOptions = {
+ 'layer': this.layer,
+ 'format': this.format,
+ 'url': this.url,
+ 'requestSuccess': this.requestSuccess.createDelegate(this),
+ 'requestFailure': this.requestFailure.createDelegate(this),
+ 'featureSelection': this.featureSelection,
+ 'nameAttribute': this.nameAttribute,
+ 'legendDiv': this.legendDiv,
+ 'labelGenerator': this.labelGenerator
+ };
+
+ this.coreComp = new mapfish.GeoStat.Centroid(this.map, coreOptions);
+ }
+});
+
+Ext.reg('centroid', mapfish.widgets.geostat.Centroid);
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js 2011-06-26 06:49:46 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js 2011-07-13 21:01:29 +0000
@@ -151,11 +151,11 @@
initProperties: function() {
this.legend = {
- value: G.conf.map_legend_type_automatic,
+ value: G.conf.map_legendset_type_automatic,
method: G.conf.classify_by_equal_intervals,
classes: 5,
reset: function() {
- this.value = G.conf.map_legend_type_automatic;
+ this.value = G.conf.map_legendset_type_automatic;
this.method = G.conf.classify_by_equal_intervals;
this.classes = 5;
}
@@ -422,7 +422,7 @@
success: function(r) {
var mapLegendSet = Ext.util.JSON.decode(r.responseText).mapLegendSet[0];
if (mapLegendSet.id) {
- this.legend.value = G.conf.map_legend_type_predefined;
+ this.legend.value = G.conf.map_legendset_type_predefined;
this.prepareMapViewLegend();
function load() {
@@ -440,7 +440,7 @@
}
}
else {
- this.legend.value = G.conf.map_legend_type_automatic;
+ this.legend.value = G.conf.map_legendset_type_automatic;
this.prepareMapViewLegend();
this.classify(false, cb.keepPosition);
G.util.setKeepPosition(cb);
@@ -510,7 +510,7 @@
success: function(r) {
var mapLegendSet = Ext.util.JSON.decode(r.responseText).mapLegendSet[0];
if (mapLegendSet.id) {
- this.legend.value = G.conf.map_legend_type_predefined;
+ this.legend.value = G.conf.map_legendset_type_predefined;
this.prepareMapViewLegend();
function load() {
@@ -528,7 +528,7 @@
}
}
else {
- this.legend.value = G.conf.map_legend_type_automatic;
+ this.legend.value = G.conf.map_legendset_type_automatic;
this.prepareMapViewLegend();
this.classify(false, cb.keepPosition);
G.util.setKeepPosition(cb);
@@ -702,24 +702,24 @@
store: new Ext.data.ArrayStore({
fields: ['value', 'text'],
data: [
- [G.conf.map_legend_type_automatic, G.i18n.automatic],
- [G.conf.map_legend_type_predefined, G.i18n.predefined]
+ [G.conf.map_legendset_type_automatic, G.i18n.automatic],
+ [G.conf.map_legendset_type_predefined, G.i18n.predefined]
]
}),
listeners: {
'select': {
scope: this,
fn: function(cb) {
- if (cb.getValue() == G.conf.map_legend_type_predefined && cb.getValue() != this.legend.value) {
- this.legend.value = G.conf.map_legend_type_predefined;
+ if (cb.getValue() == G.conf.map_legendset_type_predefined && cb.getValue() != this.legend.value) {
+ this.legend.value = G.conf.map_legendset_type_predefined;
this.prepareMapViewLegend();
if (this.form.findField('maplegendset').getValue()) {
this.applyPredefinedLegend();
}
}
- else if (cb.getValue() == G.conf.map_legend_type_automatic && cb.getValue() != this.legend.value) {
- this.legend.value = G.conf.map_legend_type_automatic;
+ else if (cb.getValue() == G.conf.map_legendset_type_automatic && cb.getValue() != this.legend.value) {
+ this.legend.value = G.conf.map_legendset_type_automatic;
this.prepareMapViewLegend();
this.classify(false, true);
}
@@ -739,7 +739,7 @@
triggerAction: 'all',
width: G.conf.combo_width,
hidden: true,
- store: G.stores.predefinedMapLegendSet,
+ store: G.stores.predefinedColorMapLegendSet,
listeners: {
'select': {
scope: this,
@@ -1383,7 +1383,7 @@
prepareMapViewLegend: function() {
this.form.findField('maplegendtype').setValue(this.legend.value);
- if (this.legend.value == G.conf.map_legend_type_automatic) {
+ if (this.legend.value == G.conf.map_legendset_type_automatic) {
this.form.findField('method').showField();
this.form.findField('startcolor').showField();
this.form.findField('endcolor').showField();
@@ -1398,7 +1398,7 @@
this.form.findField('bounds').hideField();
}
}
- else if (this.legend.value == G.conf.map_legend_type_predefined) {
+ else if (this.legend.value == G.conf.map_legendset_type_predefined) {
this.form.findField('method').hideField();
this.form.findField('classes').hideField();
this.form.findField('bounds').hideField();
@@ -1472,7 +1472,7 @@
this.form.findField('radiuslow').setValue(this.mapView.radiusLow || G.conf.defaultLowRadius);
this.form.findField('radiushigh').setValue(this.mapView.radiusHigh || G.conf.defaultHighRadius);
- if (this.legend.value == G.conf.map_legend_type_automatic) {
+ if (this.legend.value == G.conf.map_legendset_type_automatic) {
this.form.findField('method').setValue(this.mapView.method);
this.form.findField('startcolor').setValue(this.mapView.colorLow);
this.form.findField('endcolor').setValue(this.mapView.colorHigh);
@@ -1486,7 +1486,7 @@
this.setMapViewMap();
}
- else if (this.legend.value == G.conf.map_legend_type_predefined) {
+ else if (this.legend.value == G.conf.map_legendset_type_predefined) {
if (G.stores.predefinedMapLegendSet.isLoaded) {
predefinedMapLegendSetStoreCallback.call(this);
}
@@ -1511,9 +1511,8 @@
},
applyPredefinedLegend: function(isMapView) {
- this.legend.value = G.conf.map_legend_type_predefined;
+ this.legend.value = G.conf.map_legendset_type_predefined;
var mls = this.form.findField('maplegendset').getValue();
- var bounds = [];
Ext.Ajax.request({
url: G.conf.path_mapping + 'getMapLegendsByMapLegendSet' + G.conf.type,
method: 'POST',
@@ -1533,7 +1532,7 @@
colors.push(new mapfish.ColorRgb());
colors[colors.length-1].setFromHex(mapLegends[i].color);
bounds.push(mapLegends[i].endValue);
- }
+ }
this.colorInterpolation = colors;
this.bounds = bounds;
@@ -1591,7 +1590,7 @@
return false;
}
- if (this.form.findField('maplegendtype').getValue() == G.conf.map_legend_type_automatic) {
+ if (this.form.findField('maplegendtype').getValue() == G.conf.map_legendset_type_automatic) {
if (this.form.findField('method').getValue() == G.conf.classify_with_bounds) {
if (!this.form.findField('bounds').getValue()) {
if (exception) {
@@ -1601,7 +1600,7 @@
}
}
}
- else if (this.form.findField('maplegendtype').getValue() == G.conf.map_legend_type_predefined) {
+ else if (this.form.findField('maplegendtype').getValue() == G.conf.map_legendset_type_predefined) {
if (!this.form.findField('maplegendset').getValue()) {
if (exception) {
Ext.message.msg(false, G.i18n.form_is_not_complete);
@@ -1643,12 +1642,12 @@
organisationUnitLevel: this.organisationUnitSelection.level.level,
organisationUnitLevelName: this.organisationUnitSelection.level.name,
mapLegendType: this.form.findField('maplegendtype').getValue(),
- method: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('method').getValue() : null,
- classes: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('classes').getValue() : null,
- bounds: this.legend.value == G.conf.map_legend_type_automatic && this.legend.method == G.conf.classify_with_bounds ? this.form.findField('bounds').getValue() : null,
- colorLow: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('startcolor').getValue() : null,
- colorHigh: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('endcolor').getValue() : null,
- mapLegendSetId: this.legend.value == G.conf.map_legend_type_predefined ? this.form.findField('maplegendset').getValue() : null,
+ method: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('method').getValue() : null,
+ classes: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('classes').getValue() : null,
+ bounds: this.legend.value == G.conf.map_legendset_type_automatic && this.legend.method == G.conf.classify_with_bounds ? this.form.findField('bounds').getValue() : null,
+ colorLow: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('startcolor').getValue() : null,
+ colorHigh: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('endcolor').getValue() : null,
+ mapLegendSetId: this.legend.value == G.conf.map_legendset_type_predefined ? this.form.findField('maplegendset').getValue() : null,
radiusLow: this.form.findField('radiuslow').getValue(),
radiusHigh: this.form.findField('radiushigh').getValue(),
longitude: G.vars.map.getCenter().lon,
@@ -1715,6 +1714,7 @@
loadGeoJson: function() {
G.vars.mask.msg = G.i18n.loading_geojson;
G.vars.mask.show();
+ G.vars.activeWidget = this;
this.setUrl(G.conf.path_mapping + 'getGeoJson.action?' +
'parentId=' + this.organisationUnitSelection.parent.id +
@@ -1806,6 +1806,7 @@
maxSize: parseInt(this.form.findField('radiushigh').getValue())
};
+ G.vars.activeWidget = this;
this.coreComp.applyClassification(options, this);
this.classificationApplied = true;
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js 2011-06-26 06:49:46 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js 2011-07-13 21:01:29 +0000
@@ -122,11 +122,11 @@
initProperties: function() {
this.legend = {
- value: G.conf.map_legend_type_automatic,
+ value: G.conf.map_legendset_type_automatic,
method: G.conf.classify_by_equal_intervals,
classes: 5,
reset: function() {
- this.value = G.conf.map_legend_type_automatic;
+ this.value = G.conf.map_legendset_type_automatic;
this.method = G.conf.classify_by_equal_intervals;
this.classes = 5;
}
@@ -393,7 +393,7 @@
success: function(r) {
var mapLegendSet = Ext.util.JSON.decode(r.responseText).mapLegendSet[0];
if (mapLegendSet.id) {
- this.legend.value = G.conf.map_legend_type_predefined;
+ this.legend.value = G.conf.map_legendset_type_predefined;
this.prepareMapViewLegend();
function load() {
@@ -411,7 +411,7 @@
}
}
else {
- this.legend.value = G.conf.map_legend_type_automatic;
+ this.legend.value = G.conf.map_legendset_type_automatic;
this.prepareMapViewLegend();
this.classify(false, cb.keepPosition);
G.util.setKeepPosition(cb);
@@ -481,7 +481,7 @@
success: function(r) {
var mapLegendSet = Ext.util.JSON.decode(r.responseText).mapLegendSet[0];
if (mapLegendSet.id) {
- this.legend.value = G.conf.map_legend_type_predefined;
+ this.legend.value = G.conf.map_legendset_type_predefined;
this.prepareMapViewLegend();
function load() {
@@ -499,7 +499,7 @@
}
}
else {
- this.legend.value = G.conf.map_legend_type_automatic;
+ this.legend.value = G.conf.map_legendset_type_automatic;
this.prepareMapViewLegend();
this.classify(false, cb.keepPosition);
G.util.setKeepPosition(cb);
@@ -673,24 +673,24 @@
store: new Ext.data.ArrayStore({
fields: ['value', 'text'],
data: [
- [G.conf.map_legend_type_automatic, G.i18n.automatic],
- [G.conf.map_legend_type_predefined, G.i18n.predefined]
+ [G.conf.map_legendset_type_automatic, G.i18n.automatic],
+ [G.conf.map_legendset_type_predefined, G.i18n.predefined]
]
}),
listeners: {
'select': {
scope: this,
fn: function(cb) {
- if (cb.getValue() == G.conf.map_legend_type_predefined && cb.getValue() != this.legend.value) {
- this.legend.value = G.conf.map_legend_type_predefined;
+ if (cb.getValue() == G.conf.map_legendset_type_predefined && cb.getValue() != this.legend.value) {
+ this.legend.value = G.conf.map_legendset_type_predefined;
this.prepareMapViewLegend();
if (this.form.findField('maplegendset').getValue()) {
this.applyPredefinedLegend();
}
}
- else if (cb.getValue() == G.conf.map_legend_type_automatic && cb.getValue() != this.legend.value) {
- this.legend.value = G.conf.map_legend_type_automatic;
+ else if (cb.getValue() == G.conf.map_legendset_type_automatic && cb.getValue() != this.legend.value) {
+ this.legend.value = G.conf.map_legendset_type_automatic;
this.prepareMapViewLegend();
this.classify(false, true);
}
@@ -1354,7 +1354,7 @@
prepareMapViewLegend: function() {
this.form.findField('maplegendtype').setValue(this.legend.value);
- if (this.legend.value == G.conf.map_legend_type_automatic) {
+ if (this.legend.value == G.conf.map_legendset_type_automatic) {
this.form.findField('method').showField();
this.form.findField('startcolor').showField();
this.form.findField('endcolor').showField();
@@ -1369,7 +1369,7 @@
this.form.findField('bounds').hideField();
}
}
- else if (this.legend.value == G.conf.map_legend_type_predefined) {
+ else if (this.legend.value == G.conf.map_legendset_type_predefined) {
this.form.findField('method').hideField();
this.form.findField('classes').hideField();
this.form.findField('bounds').hideField();
@@ -1443,7 +1443,7 @@
this.form.findField('radiuslow').setValue(this.mapView.radiusLow || G.conf.defaultLowRadius);
this.form.findField('radiushigh').setValue(this.mapView.radiusHigh || G.conf.defaultHighRadius);
- if (this.legend.value == G.conf.map_legend_type_automatic) {
+ if (this.legend.value == G.conf.map_legendset_type_automatic) {
this.form.findField('method').setValue(this.mapView.method);
this.form.findField('startcolor').setValue(this.mapView.colorLow);
this.form.findField('endcolor').setValue(this.mapView.colorHigh);
@@ -1457,7 +1457,7 @@
this.setMapViewMap();
}
- else if (this.legend.value == G.conf.map_legend_type_predefined) {
+ else if (this.legend.value == G.conf.map_legendset_type_predefined) {
if (G.stores.predefinedMapLegendSet.isLoaded) {
predefinedMapLegendSetStoreCallback.call(this);
}
@@ -1482,9 +1482,8 @@
},
applyPredefinedLegend: function(isMapView) {
- this.legend.value = G.conf.map_legend_type_predefined;
+ this.legend.value = G.conf.map_legendset_type_predefined;
var mls = this.form.findField('maplegendset').getValue();
- var bounds = [];
Ext.Ajax.request({
url: G.conf.path_mapping + 'getMapLegendsByMapLegendSet' + G.conf.type,
method: 'POST',
@@ -1562,7 +1561,7 @@
return false;
}
- if (this.form.findField('maplegendtype').getValue() == G.conf.map_legend_type_automatic) {
+ if (this.form.findField('maplegendtype').getValue() == G.conf.map_legendset_type_automatic) {
if (this.form.findField('method').getValue() == G.conf.classify_with_bounds) {
if (!this.form.findField('bounds').getValue()) {
if (exception) {
@@ -1572,7 +1571,7 @@
}
}
}
- else if (this.form.findField('maplegendtype').getValue() == G.conf.map_legend_type_predefined) {
+ else if (this.form.findField('maplegendtype').getValue() == G.conf.map_legendset_type_predefined) {
if (!this.form.findField('maplegendset').getValue()) {
if (exception) {
Ext.message.msg(false, G.i18n.form_is_not_complete);
@@ -1614,12 +1613,12 @@
organisationUnitLevel: this.organisationUnitSelection.level.level,
organisationUnitLevelName: this.organisationUnitSelection.level.name,
mapLegendType: this.form.findField('maplegendtype').getValue(),
- method: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('method').getValue() : null,
- classes: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('classes').getValue() : null,
- bounds: this.legend.value == G.conf.map_legend_type_automatic && this.legend.method == G.conf.classify_with_bounds ? this.form.findField('bounds').getValue() : null,
- colorLow: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('startcolor').getValue() : null,
- colorHigh: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('endcolor').getValue() : null,
- mapLegendSetId: this.legend.value == G.conf.map_legend_type_predefined ? this.form.findField('maplegendset').getValue() : null,
+ method: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('method').getValue() : null,
+ classes: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('classes').getValue() : null,
+ bounds: this.legend.value == G.conf.map_legendset_type_automatic && this.legend.method == G.conf.classify_with_bounds ? this.form.findField('bounds').getValue() : null,
+ colorLow: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('startcolor').getValue() : null,
+ colorHigh: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('endcolor').getValue() : null,
+ mapLegendSetId: this.legend.value == G.conf.map_legendset_type_predefined ? this.form.findField('maplegendset').getValue() : null,
radiusLow: this.form.findField('radiuslow').getValue(),
radiusHigh: this.form.findField('radiushigh').getValue(),
longitude: G.vars.map.getCenter().lon,
@@ -1686,6 +1685,7 @@
loadGeoJson: function() {
G.vars.mask.msg = G.i18n.loading_geojson;
G.vars.mask.show();
+ G.vars.activeWidget = this;
this.setUrl(G.conf.path_mapping + 'getGeoJson.action?' +
'parentId=' + this.organisationUnitSelection.parent.id +
@@ -1777,6 +1777,7 @@
maxSize: parseInt(this.form.findField('radiushigh').getValue())
};
+ G.vars.activeWidget = this;
this.coreComp.applyClassification(options, this);
this.classificationApplied = true;
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js 2011-06-26 06:49:46 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js 2011-07-13 21:01:29 +0000
@@ -120,11 +120,11 @@
initProperties: function() {
this.legend = {
- value: G.conf.map_legend_type_automatic,
+ value: G.conf.map_legendset_type_automatic,
method: G.conf.classify_by_equal_intervals,
classes: 5,
reset: function() {
- this.value = G.conf.map_legend_type_automatic;
+ this.value = G.conf.map_legendset_type_automatic;
this.method = G.conf.classify_by_equal_intervals;
this.classes = 5;
}
@@ -192,19 +192,19 @@
icon: new Ext.data.ArrayStore({
fields: ['name', 'css'],
data: [
- ['0','ux-ic-icon-0'],
- ['1','ux-ic-icon-1'],
- ['2','ux-ic-icon-2'],
- ['3','ux-ic-icon-3'],
- ['4','ux-ic-icon-4'],
- ['5','ux-ic-icon-5'],
- ['6','ux-ic-icon-6'],
- ['7','ux-ic-icon-7'],
- ['8','ux-ic-icon-8'],
- ['9','ux-ic-icon-9'],
- ['10','ux-ic-icon-10'],
- ['11','ux-ic-icon-11'],
- ['12','ux-ic-icon-12']
+ ['0','ux-ic-icon-groupset-type-0'],
+ ['1','ux-ic-icon-groupset-type-1'],
+ ['2','ux-ic-icon-groupset-type-2'],
+ ['3','ux-ic-icon-groupset-type-3'],
+ ['4','ux-ic-icon-groupset-type-4'],
+ ['5','ux-ic-icon-groupset-type-5'],
+ ['6','ux-ic-icon-groupset-type-6'],
+ ['7','ux-ic-icon-groupset-type-7'],
+ ['8','ux-ic-icon-groupset-type-8'],
+ ['9','ux-ic-icon-groupset-type-9'],
+ ['10','ux-ic-icon-groupset-type-10'],
+ ['11','ux-ic-icon-groupset-type-11'],
+ ['12','ux-ic-icon-groupset-type-12']
]
}),
infrastructuralDataElementMapValue: new Ext.data.JsonStore({
@@ -342,8 +342,8 @@
mode: 'local',
labelStyle: 'color:#000',
labelSeparator: G.conf.labelseparator,
- width: 50,
- listWidth: 50,
+ width: G.conf.combo_number_width_small,
+ listWidth: G.conf.combo_number_width_small,
store: this.stores.icon,
listeners: {
'select': {
@@ -786,12 +786,12 @@
organisationUnitLevel: this.organisationUnitSelection.level.level,
organisationUnitLevelName: this.organisationUnitSelection.level.name,
mapLegendType: this.form.findField('maplegendtype').getValue(),
- method: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('method').getValue() : null,
- classes: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('classes').getValue() : null,
- bounds: this.legend.value == G.conf.map_legend_type_automatic && this.legend.method == G.conf.classify_with_bounds ? this.form.findField('bounds').getValue() : null,
- colorLow: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('startcolor').getValue() : null,
- colorHigh: this.legend.value == G.conf.map_legend_type_automatic ? this.form.findField('endcolor').getValue() : null,
- mapLegendSetId: this.legend.value == G.conf.map_legend_type_predefined ? this.form.findField('maplegendset').getValue() : null,
+ method: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('method').getValue() : null,
+ classes: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('classes').getValue() : null,
+ bounds: this.legend.value == G.conf.map_legendset_type_automatic && this.legend.method == G.conf.classify_with_bounds ? this.form.findField('bounds').getValue() : null,
+ colorLow: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('startcolor').getValue() : null,
+ colorHigh: this.legend.value == G.conf.map_legendset_type_automatic ? this.form.findField('endcolor').getValue() : null,
+ mapLegendSetId: this.legend.value == G.conf.map_legendset_type_predefined ? this.form.findField('maplegendset').getValue() : null,
radiusLow: this.form.findField('radiuslow').getValue(),
radiusHigh: this.form.findField('radiushigh').getValue(),
longitude: G.vars.map.getCenter().lon,
@@ -828,6 +828,7 @@
loadGeoJson: function() {
G.vars.mask.msg = G.i18n.loading_geojson;
G.vars.mask.show();
+ G.vars.activeWidget = this;
this.setUrl(G.conf.path_mapping + 'getGeoJson.action?' +
'parentId=' + this.organisationUnitSelection.parent.id +
@@ -851,6 +852,8 @@
applyValues: function() {
var options = {indicator: this.form.findField('groupset').getRawValue().toLowerCase()};
+
+ G.vars.activeWidget = this;
this.coreComp.updateOptions(options);
this.coreComp.applyClassification(this.form);
this.classificationApplied = true;
=== added file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/openlayers-2.10/img/blank.gif'
Binary files dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/openlayers-2.10/img/blank.gif 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/openlayers-2.10/img/blank.gif 2011-07-07 19:51:56 +0000 differ
Follow ups