package kornell.gui.client.presentation.admin.courseversion.courseversions; import java.util.logging.Logger; import com.google.gwt.place.shared.Place; import com.google.gwt.place.shared.PlaceController; import com.google.gwt.user.client.ui.Widget; import kornell.api.client.Callback; import kornell.api.client.KornellSession; import kornell.core.to.CourseVersionsTO; import kornell.core.to.TOFactory; import kornell.gui.client.ViewFactory; import kornell.gui.client.util.forms.FormHelper; import kornell.gui.client.util.view.LoadingPopup; public class AdminCourseVersionsPresenter implements AdminCourseVersionsView.Presenter { Logger logger = Logger.getLogger(AdminCourseVersionsPresenter.class.getName()); private AdminCourseVersionsView view; FormHelper formHelper; private KornellSession session; private PlaceController placeController; private Place defaultPlace; TOFactory toFactory; private ViewFactory viewFactory; private CourseVersionsTO courseVersionsTO; private String pageSize = "20"; private String pageNumber = "1"; private String searchTerm = ""; public AdminCourseVersionsPresenter(KornellSession session, PlaceController placeController, Place defaultPlace, TOFactory toFactory, ViewFactory viewFactory) { this.session = session; this.placeController = placeController; this.defaultPlace = defaultPlace; this.toFactory = toFactory; this.viewFactory = viewFactory; formHelper = new FormHelper(); init(); } private void init() { if (session.isInstitutionAdmin()) { view = getView(); view.setPresenter(this); LoadingPopup.show(); getCourseVersions(); } else { logger.warning("Hey, only admins are allowed to see this! " + this.getClass().getName()); placeController.goTo(defaultPlace); } } private void getCourseVersions() { session.courseVersions().get(pageSize, pageNumber, searchTerm, new Callback<CourseVersionsTO>() { @Override public void ok(CourseVersionsTO to) { courseVersionsTO = to; view.setCourseVersions(courseVersionsTO.getCourseVersions(), to.getCount(), to.getSearchCount()); LoadingPopup.hide(); } }); } @Override public Widget asWidget() { return view.asWidget(); } private AdminCourseVersionsView getView() { return viewFactory.getAdminCourseVersionsView(); } @Override public String getPageSize() { return pageSize; } @Override public void setPageSize(String pageSize) { this.pageSize = pageSize; } @Override public String getPageNumber() { return pageNumber; } @Override public void setPageNumber(String pageNumber) { this.pageNumber = pageNumber; } @Override public String getSearchTerm() { return searchTerm; } @Override public void setSearchTerm(String searchTerm) { this.searchTerm = searchTerm; } @Override public void updateData() { getCourseVersions(); } }