001 package org.kuali.student.lum.program.client.versions; 002 003 import org.kuali.student.common.ui.client.application.ViewContext; 004 import org.kuali.student.common.ui.client.configurable.mvc.layouts.BasicLayoutWithContentHeader; 005 import org.kuali.student.common.ui.client.mvc.Callback; 006 import org.kuali.student.common.ui.client.mvc.DataModel; 007 import org.kuali.student.lum.program.client.ProgramConstants; 008 import org.kuali.student.lum.program.client.widgets.ProgramSideBar.Type; 009 010 import com.google.gwt.event.shared.HandlerManager; 011 012 public class ProgramVersionsController extends BasicLayoutWithContentHeader{ 013 014 public static enum Views{VERSION_SELECT} 015 016 private ProgramSelectVersionsView programSelectVersionView; 017 private DataModel programModel; 018 019 protected HandlerManager eventBus; 020 private boolean initialized = false; 021 022 private Type type; 023 024 public ProgramVersionsController(DataModel dataModel, Type type, ViewContext viewContext, HandlerManager eventBus) { 025 super(ProgramVersionsController.class.toString()); 026 this.setDefaultView(Views.VERSION_SELECT); 027 this.viewContainer.addStyleName("standard-content-padding"); 028 this.eventBus = eventBus; 029 this.programModel = dataModel; 030 this.type = type; 031 setViewContext(viewContext); 032 initialize(); 033 } 034 035 private void initialize() { 036 super.setDefaultModelId("Model"); 037 programSelectVersionView = new ProgramSelectVersionsView(programModel, this, "Versions", Views.VERSION_SELECT); 038 this.addView(programSelectVersionView); 039 } 040 041 042 @Override 043 public void showDefaultView(final Callback<Boolean> onReadyCallback) { 044 init(new Callback<Boolean>() { 045 046 @Override 047 public void exec(Boolean result) { 048 if (result) { 049 ProgramVersionsController.super.showDefaultView(onReadyCallback); 050 } else { 051 onReadyCallback.exec(false); 052 } 053 } 054 }); 055 } 056 057 @Override 058 public void beforeShow(Callback<Boolean> onReadyCallback) { 059 this.getHeader().showPrint(false); 060 onReadyCallback.exec(true); 061 } 062 063 private void init(final Callback<Boolean> onReadyCallback) { 064 onReadyCallback.exec(true); 065 } 066 067 @Override 068 public <V extends Enum<?>> void showView(V viewType, Callback<Boolean> onReadyCallback) { 069 String programTitle = programModel.get(ProgramConstants.LONG_TITLE); 070 this.setName(programTitle); 071 this.getHeader().setTitle(programTitle); 072 super.showView(viewType, onReadyCallback); 073 } 074 075 public void setCurrentTitle(String currentTitle) { 076 this.getHeader().setTitle(currentTitle); 077 } 078 079 public Type getType() { 080 return type; 081 } 082 083 public void setType(Type type) { 084 this.type = type; 085 } 086 087 }