1
package org.hisp.dhis.dataentry.action;
3
import java.util.ArrayList;
4
import java.util.Calendar;
5
import java.util.Collection;
6
import java.util.Collections;
9
import org.hisp.dhis.dataset.DataSet;
10
import org.hisp.dhis.dataset.DataSetService;
11
import org.hisp.dhis.i18n.I18nFormat;
12
import org.hisp.dhis.period.CalendarPeriodType;
13
import org.hisp.dhis.period.Period;
14
import org.hisp.dhis.period.PeriodType;
15
import org.hisp.dhis.system.filter.PastAndCurrentPeriodFilter;
16
import org.hisp.dhis.system.util.FilterUtils;
18
import com.opensymphony.xwork2.Action;
21
* @author Mithilesh Kumar Thakur
24
public class LoadPeriodsAction implements Action
26
// -------------------------------------------------------------------------
28
// -------------------------------------------------------------------------
30
private DataSetService dataSetService;
32
public void setDataSetService( DataSetService dataSetService )
34
this.dataSetService = dataSetService;
37
private I18nFormat format;
39
public void setFormat( I18nFormat format )
44
// -------------------------------------------------------------------------
46
// -------------------------------------------------------------------------
48
private int dataSetId;
50
public void setDataSetId( int dataSetId )
52
this.dataSetId = dataSetId;
55
// -------------------------------------------------------------------------
57
// -------------------------------------------------------------------------
60
private List<Period> periods = new ArrayList<Period>();
62
public Collection<Period> getPeriods()
67
// -------------------------------------------------------------------------
68
// Action implementation
69
// -------------------------------------------------------------------------
71
public String execute() throws Exception
74
DataSet dataset = dataSetService.getDataSet( dataSetId );
76
String periodType = dataset.getPeriodType().getName();
78
CalendarPeriodType _periodType = (CalendarPeriodType) CalendarPeriodType.getPeriodTypeByName( periodType );
80
Calendar cal = PeriodType.createCalendarInstance();
82
periods = _periodType.generatePeriods( cal.getTime() );
84
//periods = new ArrayList<Period>( periodService.getPeriodsByPeriodType( periodType ) );
86
FilterUtils.filter( periods, new PastAndCurrentPeriodFilter() );
88
Collections.reverse( periods );
89
//Collections.sort( periods );
90
for ( Period period : periods )
92
//System.out.println("ISO Date : " + period.getIsoDate() );
94
period.setName( format.formatPeriod( period ) );