package net.rrm.ehour.ui.report.project; 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 ProjectReportTabFactory implements ReportTabFactory { @Override public Optional<ITab> createReportTab(final ReportCriteria criteria) { AbstractTab abstractTab = new AbstractTab(new KeyResourceModel("report.title.project")) { @Override public Panel getPanel(String panelId) { return getProjectReportPanel(panelId, criteria); } }; return Optional.<ITab>of(abstractTab); } @Override public int getRenderPriority() { return 1; } private Panel getProjectReportPanel(String id, ReportCriteria reportCriteria) { ProjectAggregateReportModel aggregateReport = new ProjectAggregateReportModel(reportCriteria); return new ProjectReportPanel(id, aggregateReport); } }