/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package net.rrm.ehour.ui.report.panel.criteria;
import net.rrm.ehour.data.DateRange;
import net.rrm.ehour.domain.TimesheetLock;
import net.rrm.ehour.report.criteria.ReportCriteria;
import net.rrm.ehour.report.criteria.UserSelectedCriteria;
import net.rrm.ehour.ui.report.panel.criteria.quick.QuickMonth;
import net.rrm.ehour.ui.report.panel.criteria.quick.QuickPeriod;
import net.rrm.ehour.ui.report.panel.criteria.quick.QuickQuarter;
import net.rrm.ehour.ui.report.panel.criteria.quick.QuickWeek;
import java.io.Serializable;
import java.util.Date;
/**
* Backing bean for report criteria
*/
public class ReportCriteriaBackingBean implements Serializable {
private static final long serialVersionUID = 4417220135092280759L;
private ReportCriteria reportCriteria;
private QuickWeek quickWeek;
private QuickMonth quickMonth;
private QuickQuarter quickQuarter;
private TimesheetLock reportForLock;
public ReportCriteriaBackingBean(ReportCriteria reportCriteria) {
this.reportCriteria = reportCriteria;
}
public QuickWeek getQuickWeek() {
return quickWeek;
}
public void setQuickWeek(QuickWeek quickWeek) {
quickQuarter = null;
quickMonth = null;
reportForLock = null;
this.quickWeek = quickWeek;
setReportRangeForQuickie(quickWeek);
}
private void setReportRangeForQuickie(QuickPeriod period) {
if (period != null) {
setReportRange(period.getPeriodStart(), period.getPeriodEnd());
}
}
private void setReportRange(Date start, Date end) {
UserSelectedCriteria userSelectedCriteria = reportCriteria.getUserSelectedCriteria();
if (userSelectedCriteria.getReportRange() == null) {
userSelectedCriteria.setReportRange(new DateRange());
}
userSelectedCriteria.getReportRange().setDateStart(start);
userSelectedCriteria.getReportRange().setDateEnd(end);
}
public ReportCriteria getReportCriteria() {
return reportCriteria;
}
public QuickMonth getQuickMonth() {
return quickMonth;
}
public void setQuickMonth(QuickMonth quickMonth) {
quickWeek = null;
quickQuarter = null;
reportForLock = null;
this.quickMonth = quickMonth;
setReportRangeForQuickie(quickMonth);
}
public QuickQuarter getQuickQuarter() {
return quickQuarter;
}
public void setQuickQuarter(QuickQuarter quickQuarter) {
quickWeek = null;
quickMonth = null;
reportForLock = null;
this.quickQuarter = quickQuarter;
setReportRangeForQuickie(quickQuarter);
}
public void resetQuickSelections() {
quickWeek = null;
quickMonth = null;
quickQuarter = null;
}
public void setReportCriteria(ReportCriteria reportCriteria) {
this.reportCriteria = reportCriteria;
}
public TimesheetLock getReportForLock() {
return reportForLock;
}
public void setReportForLock(TimesheetLock reportForLock) {
this.reportForLock = reportForLock;
quickWeek = null;
quickMonth = null;
quickQuarter = null;
if (reportForLock != null) {
setReportRange(reportForLock.getDateStart(), reportForLock.getDateEnd());
}
}
}