=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnit.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnit.java 2010-07-30 14:13:32 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnit.java 2010-08-05 12:26:30 +0000 @@ -47,8 +47,9 @@ public class OrganisationUnit extends Source implements DimensionOptionElement { + public static final String FEATURETYPE_NONE = "None"; + private static final Pattern JSON_COORDINATE_PATTERN = Pattern.compile( "(\\[{3}.*?\\]{3})" ); - private static final Pattern COORDINATE_PATTERN = Pattern.compile("([\\-0-9.]+,[\\-0-9.]+)"); private Set children = new HashSet(); @@ -211,6 +212,19 @@ this.coordinates = StringUtils.trimToNull( builder.toString() ); } + public String getChildrenFeatureType() + { + for ( OrganisationUnit child : children ) + { + if ( child.getFeatureType() != null ) + { + return child.getFeatureType(); + } + } + + return FEATURETYPE_NONE; + } + // ------------------------------------------------------------------------- // hashCode, equals and toString // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetOrganisationUnitChildrenAction.java' --- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetOrganisationUnitChildrenAction.java 2010-07-05 14:49:02 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetOrganisationUnitChildrenAction.java 2010-08-05 12:26:30 +0000 @@ -107,8 +107,7 @@ Collections.sort( units, organisationUnitComparator ); - displayPropertyHandler.handle( units ); - + displayPropertyHandler.handle( units ); } return SUCCESS; === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetOrganisationUnitsWithCoordinatesAction.java' --- dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetOrganisationUnitsWithCoordinatesAction.java 2010-07-10 16:30:22 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/java/org/hisp/dhis/mapping/action/GetOrganisationUnitsWithCoordinatesAction.java 2010-08-05 12:26:30 +0000 @@ -27,20 +27,13 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; +import java.util.Collection; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.collections.Predicate; -import org.hisp.dhis.options.displayproperty.DisplayPropertyHandler; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.organisationunit.OrganisationUnitService; import com.opensymphony.xwork2.Action; -import java.util.Collections; - /** * @author Jan Henrik Overland * @version $Id$ @@ -59,38 +52,24 @@ this.organisationUnitService = organisationUnitService; } - private Comparator organisationUnitComparator; - - public void setOrganisationUnitComparator( Comparator organisationUnitComparator ) - { - this.organisationUnitComparator = organisationUnitComparator; - } - - private DisplayPropertyHandler displayPropertyHandler; - - public void setDisplayPropertyHandler( DisplayPropertyHandler displayPropertyHandler ) - { - this.displayPropertyHandler = displayPropertyHandler; - } - // ------------------------------------------------------------------------- // Input // ------------------------------------------------------------------------- - private Integer id; + private Integer parentId; - public void setId( Integer id ) + public void setParentId( Integer id ) { - this.id = id; - } + this.parentId = id; + } // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- - private List object; + private Collection object; - public List getObject() + public Collection getObject() { return object; } @@ -102,20 +81,10 @@ public String execute() throws Exception { - object = new ArrayList( organisationUnitService.getOrganisationUnit( id ).getChildren() ); - - CollectionUtils.filter( object, new Predicate() - { - public boolean evaluate( Object object ) - { - return ((OrganisationUnit) object).hasCoordinates(); - } - } ); - - Collections.sort( object, organisationUnitComparator ); - - displayPropertyHandler.handle( object ); - - return SUCCESS; + OrganisationUnit parent = organisationUnitService.getOrganisationUnit( parentId ); + + object = parent.getChildren(); + + return parent.getChildrenFeatureType(); } } === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/resources/struts.xml' --- dhis-2/dhis-web/dhis-web-mapping/src/main/resources/struts.xml 2010-07-10 20:13:44 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/resources/struts.xml 2010-08-05 12:26:30 +0000 @@ -375,10 +375,10 @@ - + + class="org.hisp.dhis.mapping.action.GetOrganisationUnitsWithPolygonsAction"> /dhis-web-mapping/pointShapefile.vm @@ -391,7 +391,14 @@ - + + /dhis-web-mapping/pointShapefile.vm + /dhis-web-mapping/polygonShapefile.vm + /dhis-web-mapping/polygonShapefile.vm + + + application/json inputStream