=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionType.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionType.java 2009-11-24 11:01:39 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dimension/DimensionType.java 2010-01-15 11:32:18 +0000
@@ -34,5 +34,6 @@
{
CATEGORY,
DATAELEMENTGROUPSET,
- INDICATORGROUPSET
+ INDICATORGROUPSET,
+ ORGANISATIONUNITGROUPSET
}
=== 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-01-14 07:10:41 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnit.java 2010-01-15 11:32:18 +0000
@@ -27,10 +27,14 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
+import org.hisp.dhis.dimension.DimensionOption;
+import org.hisp.dhis.dimension.DimensionOptionElement;
import org.hisp.dhis.source.Source;
/**
@@ -38,7 +42,7 @@
* @version $Id: OrganisationUnit.java 6251 2008-11-10 14:37:05Z larshelg $
*/
public class OrganisationUnit
- extends Source
+ extends Source implements DimensionOptionElement
{
private Set children = new HashSet();
@@ -128,6 +132,15 @@
}
// -------------------------------------------------------------------------
+ // Dimension
+ // -------------------------------------------------------------------------
+
+ public List extends DimensionOption> getDimensionOptions()
+ {
+ return new ArrayList( groups );
+ }
+
+ // -------------------------------------------------------------------------
// Logic
// -------------------------------------------------------------------------
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitGroup.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitGroup.java 2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitGroup.java 2010-01-15 11:32:18 +0000
@@ -27,17 +27,21 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
+import org.hisp.dhis.dimension.Dimension;
+import org.hisp.dhis.dimension.DimensionOption;
+import org.hisp.dhis.dimension.DimensionOptionElement;
+import org.hisp.dhis.dimension.DimensionType;
+
/**
* @author Kristian Nordal
* @version $Id: OrganisationUnitGroup.java 5296 2008-05-29 16:06:14Z larshelg $
*/
public class OrganisationUnitGroup
- implements Serializable
+ implements DimensionOption
{
private int id;
@@ -49,6 +53,8 @@
private String name;
private Set members = new HashSet();
+
+ private OrganisationUnitGroupSet groupSet;
// -------------------------------------------------------------------------
// Constructors
@@ -67,6 +73,25 @@
// hashCode and equals
// -------------------------------------------------------------------------
+ public Dimension getDimension()
+ {
+ return groupSet;
+ }
+
+ public Set extends DimensionOptionElement> getDimensionOptionElements()
+ {
+ return members;
+ }
+
+ public DimensionType getDimensionType()
+ {
+ return DimensionType.ORGANISATIONUNITGROUPSET;
+ }
+
+ // -------------------------------------------------------------------------
+ // hashCode and equals
+ // -------------------------------------------------------------------------
+
@Override
public int hashCode()
{
@@ -126,6 +151,16 @@
this.uuid = uuid;
}
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+
public Set getMembers()
{
return members;
@@ -136,13 +171,13 @@
this.members = members;
}
- public String getName()
+ public OrganisationUnitGroupSet getGroupSet()
{
- return name;
+ return groupSet;
}
- public void setName( String name )
+ public void setGroupSet( OrganisationUnitGroupSet groupSet )
{
- this.name = name;
+ this.groupSet = groupSet;
}
}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitGroupSet.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitGroupSet.java 2009-09-26 07:35:21 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/organisationunit/OrganisationUnitGroupSet.java 2010-01-15 11:32:18 +0000
@@ -27,18 +27,20 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import java.io.Serializable;
+import java.util.ArrayList;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
-import org.hisp.dhis.organisationunit.OrganisationUnitGroup;
+import org.hisp.dhis.dimension.Dimension;
+import org.hisp.dhis.dimension.DimensionOption;
/**
* @author Kristian Nordal
* @version $Id: OrganisationUnitGroupSet.java 1905 2006-09-23 14:34:55Z torgeilo $
*/
public class OrganisationUnitGroupSet
- implements Serializable
+ extends Dimension
{
private int id;
@@ -69,14 +71,18 @@
}
// -------------------------------------------------------------------------
+ // Dimension
+ // -------------------------------------------------------------------------
+
+ public List extends DimensionOption> getDimensionOptions()
+ {
+ return new ArrayList( organisationUnitGroups );
+ }
+
+ // -------------------------------------------------------------------------
// Logic
// -------------------------------------------------------------------------
- public boolean hasOrganisationUnitGroups()
- {
- return organisationUnitGroups != null && organisationUnitGroups.size() > 0;
- }
-
public boolean isMemberOfOrganisationUnitGroups( OrganisationUnit organisationUnit )
{
for ( OrganisationUnitGroup group : organisationUnitGroups )
@@ -86,10 +92,15 @@
return true;
}
}
+
+ return false;
+ }
+
+ public boolean hasOrganisationUnitGroups()
+ {
+ return organisationUnitGroups != null && organisationUnitGroups.size() > 0;
+ }
- return false;
- }
-
// -------------------------------------------------------------------------
// hashCode and equals
// -------------------------------------------------------------------------
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableService.java 2010-01-12 08:12:04 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableService.java 2010-01-15 11:32:18 +0000
@@ -67,4 +67,9 @@
* Generates a resource table for all organisation units
*/
void generateOrganisationUnitGroupSetTable();
+
+ /**
+ * Generates a resource table for all category option combos.
+ */
+ void generateCategoryTable();
}
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableStore.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableStore.java 2010-01-12 08:12:04 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/resourcetable/ResourceTableStore.java 2010-01-15 11:32:18 +0000
@@ -3,6 +3,7 @@
import java.util.Collection;
import java.util.List;
+import org.hisp.dhis.dataelement.DataElementCategory;
import org.hisp.dhis.dataelement.DataElementGroupSet;
import org.hisp.dhis.indicator.IndicatorGroupSet;
import org.hisp.dhis.organisationunit.OrganisationUnitGroupSet;
@@ -114,4 +115,11 @@
*/
void createOrganisationUnitGroupSetStructure( List groupSets );
+ /**
+ * Creates table.
+ *
+ * @param categories the categories.
+ */
+ void createCategoryStructure( List categories );
+
}
=== modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java'
--- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java 2010-01-12 08:12:04 +0000
+++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/resourcetable/DefaultResourceTableService.java 2010-01-15 11:32:18 +0000
@@ -40,10 +40,12 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hisp.dhis.dataelement.DataElement;
+import org.hisp.dhis.dataelement.DataElementCategory;
import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
import org.hisp.dhis.dataelement.DataElementCategoryService;
import org.hisp.dhis.dataelement.DataElementGroupSet;
import org.hisp.dhis.dataelement.DataElementService;
+import org.hisp.dhis.dataelement.comparator.DataElementCategoryNameComparator;
import org.hisp.dhis.dataelement.comparator.DataElementGroupSetNameComparator;
import org.hisp.dhis.dataelement.comparator.DataElementNameComparator;
import org.hisp.dhis.dimension.Dimension;
@@ -63,6 +65,7 @@
import org.hisp.dhis.organisationunit.OrganisationUnitService;
import org.hisp.dhis.organisationunit.comparator.OrganisationUnitGroupSetNameComparator;
import org.hisp.dhis.organisationunit.comparator.OrganisationUnitNameComparator;
+import org.hisp.dhis.resourcetable.statement.CreateCategoryTableStatement;
import org.hisp.dhis.resourcetable.statement.CreateDataElementGroupSetTableStatement;
import org.hisp.dhis.resourcetable.statement.CreateIndicatorGroupSetTableStatement;
import org.hisp.dhis.resourcetable.statement.CreateOrganisationUnitGroupSetTableStatement;
@@ -396,17 +399,67 @@
final List values = new ArrayList();
values.add( String.valueOf( unit.getId() ) );
-
- for ( OrganisationUnitGroupSet groupSet : groupSets )
- {
- OrganisationUnitGroup group = organisationUnitGroupService.getOrganisationUnitGroup( groupSet, unit );
-
- values.add( group != null ? group.getName() : Statement.EMPTY );
- }
-
- batchHandler.addObject( values );
- }
-
+ values.add( unit.getName() );
+
+ for ( Dimension groupSet : groupSets )
+ {
+ DimensionOption dimensionOption = groupSet.getDimensionOption( unit );
+
+ values.add( dimensionOption != null ? dimensionOption.getName() : null );
+ }
+
+ batchHandler.addObject( values );
+ }
+
+ batchHandler.flush();
+ }
+
+ // -------------------------------------------------------------------------
+ // CategoryTable
+ // -------------------------------------------------------------------------
+
+ public void generateCategoryTable()
+ {
+ // ---------------------------------------------------------------------
+ // Create table
+ // ---------------------------------------------------------------------
+
+ List categories = new ArrayList( categoryService.getAllDataElementCategories() );
+
+ Collections.sort( categories, new DataElementCategoryNameComparator() );
+
+ List categoryOptionCombos =
+ new ArrayList( categoryService.getAllDataElementCategoryOptionCombos() );
+
+ resourceTableStore.createCategoryStructure( categories );
+
+ // ---------------------------------------------------------------------
+ // Populate table
+ // ---------------------------------------------------------------------
+
+ BatchHandler
+
+
+
+
+