package net.rrm.ehour.ui.report.user; import com.google.common.base.Optional; import net.rrm.ehour.report.criteria.ReportCriteria; import net.rrm.ehour.ui.common.model.KeyResourceModel; import net.rrm.ehour.ui.report.builder.ReportFactory; import net.rrm.ehour.ui.report.builder.ReportTabFactory; import org.apache.wicket.extensions.markup.html.tabs.AbstractTab; import org.apache.wicket.extensions.markup.html.tabs.ITab; import org.apache.wicket.markup.html.panel.Panel; @ReportFactory public class UserReportTabFactory implements ReportTabFactory { @Override public Optional<ITab> createReportTab(final ReportCriteria criteria) { if (!criteria.getUserSelectedCriteria().isForIndividualUser()) { return Optional.<ITab>of(new AbstractTab(new KeyResourceModel("report.title.employee")) { @Override public Panel getPanel(String panelId) { return getUserReportPanel(panelId, criteria); } }); } else { return Optional.absent(); } } private Panel getUserReportPanel(String id, ReportCriteria reportCriteria) { UserAggregateReportModel aggregateReport = new UserAggregateReportModel(reportCriteria); return new UserReportPanel(id, aggregateReport); } @Override public int getRenderPriority() { return 3; } }