dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #26748
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 13223: in mapviewdeletionhandler, check to see if deletion is allowed based on mapview being used in a m...
------------------------------------------------------------
revno: 13223
committer: Morten Olav Hansen <mortenoh@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2013-12-13 14:03:25 +0100
message:
in mapviewdeletionhandler, check to see if deletion is allowed based on mapview being used in a map or not
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapStore.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/MapViewDeletionHandler.java
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/hibernate/HibernateMapStore.java
--
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/MapStore.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapStore.java 2013-10-30 12:51:03 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MapStore.java 2013-12-13 13:03:25 +0000
@@ -36,4 +36,5 @@
public interface MapStore
extends GenericIdentifiableObjectStore<Map>
{
+ int countMapViewMaps( MapView mapView );
}
=== 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 2013-10-30 12:51:03 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/mapping/MappingService.java 2013-12-13 13:03:25 +0000
@@ -55,7 +55,7 @@
final String MAP_LAYER_TYPE_BASELAYER = "baselayer";
final String MAP_LAYER_TYPE_OVERLAY = "overlay";
-
+
// -------------------------------------------------------------------------
// MapLegend
// -------------------------------------------------------------------------
@@ -63,7 +63,7 @@
void addOrUpdateMapLegend( String name, Double startValue, Double endValue, String color, String image );
int addMapLegend( MapLegend mapLegend );
-
+
void deleteMapLegend( MapLegend legend );
MapLegend getMapLegend( int id );
@@ -99,21 +99,21 @@
// -------------------------------------------------------------------------
int addMap( Map map );
-
+
void updateMap( Map map );
-
+
Map getMap( int id );
-
+
Map getMap( String uid );
-
+
Map getMapNoAcl( String uid );
-
+
void deleteMap( Map map );
-
+
List<Map> getMapsBetweenLikeName( String name, int first, int max );
-
+
List<Map> getAllMaps();
-
+
// -------------------------------------------------------------------------
// MapView
// -------------------------------------------------------------------------
@@ -133,7 +133,7 @@
MapView getIndicatorLastYearMapView( String indicatorUid, String organisationUnitUid, int level );
Collection<MapView> getAllMapViews();
-
+
Collection<MapView> getMapViewsBetweenByName( String name, int first, int max );
// -------------------------------------------------------------------------
@@ -145,7 +145,7 @@
void updateMapLayer( MapLayer mapLayer );
void addOrUpdateMapLayer( String name, String type, String url, String layers, String time, String fillColor,
- double fillOpacity, String strokeColor, int strokeWidth );
+ double fillOpacity, String strokeColor, int strokeWidth );
void deleteMapLayer( MapLayer mapLayer );
@@ -160,4 +160,6 @@
MapLayer getMapLayerByMapSource( String mapSource );
Collection<MapLayer> getAllMapLayers();
+
+ int countMapViewMaps( MapView mapView );
}
\ No newline at end of file
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java 2013-10-25 19:53:21 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/DefaultMappingService.java 2013-12-13 13:03:25 +0000
@@ -28,11 +28,6 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
import org.hisp.dhis.common.GenericIdentifiableObjectStore;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.indicator.Indicator;
@@ -44,6 +39,11 @@
import org.hisp.dhis.period.RelativePeriods;
import org.springframework.transaction.annotation.Transactional;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
/**
* @author Jan Henrik Overland
*/
@@ -273,7 +273,7 @@
{
return mapStore.getAll();
}
-
+
public List<Map> getMapsBetweenLikeName( String name, int first, int max )
{
return mapStore.getAllLikeNameOrderedName( name, first, max );
@@ -450,4 +450,10 @@
{
return mapLayerStore.getAll();
}
+
+ @Override
+ public int countMapViewMaps( MapView mapView )
+ {
+ return mapStore.countMapViewMaps( mapView );
+ }
}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/MapViewDeletionHandler.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/MapViewDeletionHandler.java 2013-09-17 16:22:09 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/MapViewDeletionHandler.java 2013-12-13 13:03:25 +0000
@@ -28,14 +28,14 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import java.util.Iterator;
-
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.indicator.Indicator;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.period.Period;
import org.hisp.dhis.system.deletion.DeletionHandler;
+import java.util.Iterator;
+
/**
* @author Lars Helge Overland
* @version $Id$
@@ -53,7 +53,7 @@
{
this.mappingService = mappingService;
}
-
+
// -------------------------------------------------------------------------
// DeletionHandler implementation
// -------------------------------------------------------------------------
@@ -63,7 +63,7 @@
{
return MapView.class.getName();
}
-
+
@Override
public String allowDeletePeriod( Period period )
{
@@ -74,19 +74,19 @@
return mapView.getName();
}
}
-
+
return null;
}
-
+
@Override
public void deleteIndicator( Indicator indicator )
{
Iterator<MapView> mapViews = mappingService.getAllMapViews().iterator();
-
+
while ( mapViews.hasNext() )
{
MapView mapView = mapViews.next();
-
+
if ( mapView.getIndicators() != null && mapView.getIndicators().contains( indicator ) )
{
mapViews.remove();
@@ -94,16 +94,16 @@
}
}
}
-
+
@Override
public void deleteDataElement( DataElement dataElement )
{
Iterator<MapView> mapViews = mappingService.getAllMapViews().iterator();
-
+
while ( mapViews.hasNext() )
{
MapView mapView = mapViews.next();
-
+
if ( mapView.getDataElements() != null && mapView.getDataElements().contains( dataElement ) )
{
mapViews.remove();
@@ -111,16 +111,16 @@
}
}
}
-
+
@Override
public void deleteOrganisationUnit( OrganisationUnit organisationUnit )
{
Iterator<MapView> mapViews = mappingService.getAllMapViews().iterator();
-
+
while ( mapViews.hasNext() )
{
MapView mapView = mapViews.next();
-
+
if ( mapView.getOrganisationUnits() != null && mapView.getOrganisationUnits().contains( organisationUnit ) )
{
mapViews.remove();
@@ -128,16 +128,16 @@
}
}
}
-
+
@Override
public void deleteMapLegendSet( MapLegendSet mapLegendSet )
{
Iterator<MapView> mapViews = mappingService.getAllMapViews().iterator();
-
+
while ( mapViews.hasNext() )
{
MapView mapView = mapViews.next();
-
+
if ( mapView.getLegendSet() != null && mapView.getLegendSet().equals( mapLegendSet ) )
{
mapViews.remove();
@@ -145,4 +145,10 @@
}
}
}
+
+ @Override
+ public String allowDeleteMapView( MapView mapView )
+ {
+ return mappingService.countMapViewMaps( mapView ) == 0 ? null : ERROR;
+ }
}
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/hibernate/HibernateMapStore.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/hibernate/HibernateMapStore.java 2013-08-23 16:05:01 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/mapping/hibernate/HibernateMapStore.java 2013-12-13 13:03:25 +0000
@@ -28,9 +28,11 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import org.hibernate.Query;
import org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore;
import org.hisp.dhis.mapping.Map;
import org.hisp.dhis.mapping.MapStore;
+import org.hisp.dhis.mapping.MapView;
/**
* @author Lars Helge Overland
@@ -38,4 +40,12 @@
public class HibernateMapStore
extends HibernateIdentifiableObjectStore<Map> implements MapStore
{
+ @Override
+ public int countMapViewMaps( MapView mapView )
+ {
+ Query query = getQuery( "select count(distinct c) from Map c where :mapView in elements(c.mapViews)" );
+ query.setEntity( "mapView", mapView );
+
+ return ((Long) query.uniqueResult()).intValue();
+ }
}