/**
*
*/
package org.nightlabs.jfire.reporting.ui.layout.scheduled;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import javax.jdo.FetchPlan;
import org.nightlabs.jdo.NLJDOHelper;
import org.nightlabs.jfire.base.ui.jdo.ActiveJDOObjectController;
import org.nightlabs.jfire.reporting.scheduled.ScheduledReport;
import org.nightlabs.jfire.reporting.scheduled.dao.ScheduledReportDAO;
import org.nightlabs.jfire.reporting.scheduled.id.ScheduledReportID;
import org.nightlabs.progress.ProgressMonitor;
import org.nightlabs.progress.SubProgressMonitor;
/**
* Active object controller for {@link ScheduledReport}s of the current user.
*
* @author Alexander Bieber <!-- alex [AT] nightlabs [DOT] de -->
*/
public class ActiveScheduledReportsJDOObjectController extends ActiveJDOObjectController<ScheduledReportID, ScheduledReport> {
public ActiveScheduledReportsJDOObjectController() {
}
/* (non-Javadoc)
* @see org.nightlabs.jfire.base.ui.jdo.ActiveJDOObjectController#getJDOObjectClass()
*/
@SuppressWarnings("unchecked")
@Override
protected Class getJDOObjectClass() {
return ScheduledReport.class;
}
/* (non-Javadoc)
* @see org.nightlabs.jfire.base.ui.jdo.ActiveJDOObjectController#retrieveJDOObjects(java.util.Set, org.nightlabs.progress.ProgressMonitor)
*/
@Override
protected Collection<ScheduledReport> retrieveJDOObjects(Set<ScheduledReportID> objectIDs, ProgressMonitor monitor) {
return ScheduledReportDAO.sharedInstance().getScheduledReports(objectIDs,
new String[] { FetchPlan.DEFAULT, ScheduledReport.FETCH_GROUP_NAME }, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT,
new SubProgressMonitor(monitor, 10));
}
/* (non-Javadoc)
* @see org.nightlabs.jfire.base.ui.jdo.ActiveJDOObjectController#retrieveJDOObjects(org.nightlabs.progress.ProgressMonitor)
*/
@Override
protected Collection<ScheduledReport> retrieveJDOObjects(ProgressMonitor monitor) {
return ScheduledReportDAO.sharedInstance().getScheduledReports(
new String[] { FetchPlan.DEFAULT, ScheduledReport.FETCH_GROUP_NAME }, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT,
new SubProgressMonitor(monitor, 10));
}
/* (non-Javadoc)
* @see org.nightlabs.jfire.base.ui.jdo.ActiveJDOObjectController#sortJDOObjects(java.util.List)
*/
@Override
protected void sortJDOObjects(List<ScheduledReport> objects) {
Collections.sort(objects, new Comparator<ScheduledReport>() {
@Override
public int compare(ScheduledReport o1, ScheduledReport o2) {
return o1.getName().getText().compareTo(o2.getName().getText());
}
});
}
}