package kornell.gui.client.presentation.admin.course.course.generic; import com.github.gwtbootstrap.client.ui.CheckBox; import com.github.gwtbootstrap.client.ui.constants.AlertType; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Image; 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.util.StringUtils; import kornell.gui.client.util.ClientConstants; import kornell.gui.client.util.view.KornellNotification; public class GenericCourseReportItemView extends Composite { interface MyUiBinder extends UiBinder<Widget, GenericCourseReportItemView> { } private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); private String ADMIN_IMAGES_PATH = StringUtils.mkurl(ClientConstants.IMAGES_PATH, "admin/"); private String LIBRARY_IMAGES_PATH = StringUtils.mkurl(ClientConstants.IMAGES_PATH, "courseLibrary/"); private KornellSession session; private Course course; private String type; private String name; private String description; private CheckBox xlsCheckBox; public static final String COURSE_INFO = "courseClassInfo"; @UiField Image certificationIcon; @UiField Label lblName; @UiField Label lblDescription; @UiField FlowPanel optionPanel; @UiField Anchor lblGenerate; @UiField Anchor lblDownload; public GenericCourseReportItemView(EventBus eventBus, KornellSession session, Course course, String type) { this.session = session; this.course = course; this.type = type; initWidget(uiBinder.createAndBindUi(this)); display(); } private void display() { if(COURSE_INFO.equals(this.type)) displayCourseClassInfo(); } private void displayCourseClassInfo() { this.name = "Relatório de detalhes do curso"; this.description = "Geração do relatório de detalhes do curso, contendo os dados das matrículas nas turmas."; certificationIcon.setUrl(StringUtils.mkurl(ADMIN_IMAGES_PATH, type + ".png")); lblName.setText(name); lblDescription.setText(description); lblGenerate.setText("Gerar"); lblGenerate.addStyleName("cursorPointer"); lblDownload.setText("-"); lblDownload.removeStyleName("cursorPointer"); lblDownload.addStyleName("anchorToLabel"); lblDownload.setEnabled(false); Image img = new Image(StringUtils.mkurl(LIBRARY_IMAGES_PATH, "xls.png")); xlsCheckBox = new CheckBox("Gerar em formato Excel"); optionPanel.add(img); optionPanel.add(xlsCheckBox); img.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { xlsCheckBox.setValue(!xlsCheckBox.getValue()); } }); lblGenerate.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { KornellNotification.show("Aguarde um instante...", AlertType.WARNING, 2000); session.report().locationAssign("/report/courseClassInfo", "?courseUUID=" + course.getUUID() + "&fileType=" + (xlsCheckBox.getValue() ? "xls" : "pdf")); } }); } }