package org.nightlabs.jfire.reporting.ui.layout.scheduled.action;
import java.util.Collection;
import javax.jdo.JDOHelper;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.nightlabs.base.ui.job.Job;
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;
/**
* @author Alexander Bieber <!-- alex [AT] nightlabs [DOT] de -->
*
*/
public class DeleteScheduledReportAction extends AbstractScheduledReportAction {
/**
*
*/
public DeleteScheduledReportAction() {
}
@Override
public void run() {
final Collection<ScheduledReport> scheduledReports = getScheduledReports();
if (scheduledReports != null) {
Job deleteJob = new Job("Deleting Scheduled reports") {
@Override
protected IStatus run(ProgressMonitor monitor) throws Exception {
monitor.beginTask("Deleting Scheduled reports", scheduledReports.size());
for (ScheduledReport scheduledReport : scheduledReports) {
ScheduledReportDAO.sharedInstance().deleteScheduledReport(
(ScheduledReportID) JDOHelper.getObjectId(scheduledReport), new SubProgressMonitor(monitor, 1));
}
monitor.done();
return Status.OK_STATUS;
}
};
deleteJob.schedule();
}
super.run();
}
}