package net.rrm.ehour.ui.report.customer;
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 CustomerReportTabFactory implements ReportTabFactory {
@Override
public Optional<ITab> createReportTab(final ReportCriteria criteria) {
return Optional.<ITab>of(new AbstractTab(new KeyResourceModel("report.title.customer")) {
@Override
public Panel getPanel(String panelId) {
return getCustomerReportPanel(panelId, criteria);
}
});
}
@Override
public int getRenderPriority() {
return 0;
}
private Panel getCustomerReportPanel(String id, ReportCriteria reportCriteria) {
CustomerAggregateReportModel customerAggregateReport = new CustomerAggregateReportModel(reportCriteria);
return new CustomerReportPanel(id, customerAggregateReport);
}
}