package kornell.gui.client.presentation.admin.course.course.generic; import com.google.gwt.core.client.GWT; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; import com.google.web.bindery.event.shared.EventBus; import kornell.api.client.KornellSession; import kornell.core.entity.Course; import kornell.core.entity.EntityFactory; import kornell.gui.client.presentation.admin.courseclass.courseclass.AdminCourseClassView.Presenter; public class GenericCourseReportsView extends Composite { interface MyUiBinder extends UiBinder<Widget, GenericCourseReportsView> { } private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); public static final EntityFactory entityFactory = GWT.create(EntityFactory.class); private EventBus bus; private KornellSession session; boolean isCurrentUser, showContactDetails, isRegisteredWithCPF; @UiField FlowPanel reportsPanel; private Course course; public GenericCourseReportsView(final KornellSession session, EventBus bus, Presenter presenter, Course course) { this.session = session; this.bus = bus; initWidget(uiBinder.createAndBindUi(this)); this.course = course; initData(); } public void initData() { reportsPanel.setVisible(false); reportsPanel.add(getReportPanel()); reportsPanel.setVisible(true); } private FlowPanel getReportPanel() { FlowPanel reportPanel = new FlowPanel(); reportPanel.addStyleName("reportPanel"); reportPanel.add(getReportInfo()); reportPanel.add(getReportTableHeader()); reportPanel.add(getReportTableContent()); return reportPanel; } private FlowPanel getReportInfo() { FlowPanel reportInfo = new FlowPanel(); reportInfo.addStyleName("titlePanel"); Label infoTitle = new Label("Relatórios"); infoTitle.addStyleName("title"); reportInfo.add(infoTitle); Label infoText = new Label("Geração dos relatórios administrativos."); infoText.addStyleName("subTitle"); reportInfo.add(infoText); return reportInfo; } private FlowPanel getReportTableContent() { FlowPanel reportContentPanel = new FlowPanel(); reportContentPanel.addStyleName("reportContentPanel"); reportContentPanel.add(new GenericCourseReportItemView(bus, session, course, GenericCourseReportItemView.COURSE_INFO)); return reportContentPanel; } private FlowPanel getReportTableHeader() { FlowPanel reportHeaderPanel = new FlowPanel(); reportHeaderPanel.addStyleName("reportHeaderPanel"); reportHeaderPanel.add(getHeaderButton("Relatório", "btnReport", "btnReportHeader")); reportHeaderPanel.add(getHeaderButton("Geração", "btnGenerate", "btnReportHeader")); reportHeaderPanel.add(getHeaderButton("Download", "btnDownload", "btnReportHeader")); return reportHeaderPanel; } private Button getHeaderButton(String label, String styleName, String styleNameGlobal) { Button btn = new Button(label); btn.removeStyleName("btn"); btn.addStyleName(styleNameGlobal); btn.addStyleName(styleName); return btn; } }