1 package org.kuali.student.lum.program.client.versions;
2
3 import org.kuali.student.common.ui.client.application.ViewContext;
4 import org.kuali.student.common.ui.client.configurable.mvc.layouts.BasicLayoutWithContentHeader;
5 import org.kuali.student.common.ui.client.mvc.Callback;
6 import org.kuali.student.common.ui.client.mvc.DataModel;
7 import org.kuali.student.lum.program.client.ProgramConstants;
8 import org.kuali.student.lum.program.client.widgets.ProgramSideBar.Type;
9
10 import com.google.gwt.event.shared.HandlerManager;
11
12 public class ProgramVersionsController extends BasicLayoutWithContentHeader{
13
14 public static enum Views{VERSION_SELECT}
15
16 private ProgramSelectVersionsView programSelectVersionView;
17 private DataModel programModel;
18
19 protected HandlerManager eventBus;
20 private boolean initialized = false;
21
22 private Type type;
23
24 public ProgramVersionsController(DataModel dataModel, Type type, ViewContext viewContext, HandlerManager eventBus) {
25 super(ProgramVersionsController.class.toString());
26 this.setDefaultView(Views.VERSION_SELECT);
27 this.viewContainer.addStyleName("standard-content-padding");
28 this.eventBus = eventBus;
29 this.programModel = dataModel;
30 this.type = type;
31 setViewContext(viewContext);
32 initialize();
33 }
34
35 private void initialize() {
36 super.setDefaultModelId("Model");
37 programSelectVersionView = new ProgramSelectVersionsView(programModel, this, "Versions", Views.VERSION_SELECT);
38 this.addView(programSelectVersionView);
39 }
40
41
42 @Override
43 public void showDefaultView(final Callback<Boolean> onReadyCallback) {
44 init(new Callback<Boolean>() {
45
46 @Override
47 public void exec(Boolean result) {
48 if (result) {
49 ProgramVersionsController.super.showDefaultView(onReadyCallback);
50 } else {
51 onReadyCallback.exec(false);
52 }
53 }
54 });
55 }
56
57 @Override
58 public void beforeShow(Callback<Boolean> onReadyCallback) {
59 this.getHeader().showPrint(false);
60 onReadyCallback.exec(true);
61 }
62
63 private void init(final Callback<Boolean> onReadyCallback) {
64 onReadyCallback.exec(true);
65 }
66
67 @Override
68 public <V extends Enum<?>> void showView(V viewType, Callback<Boolean> onReadyCallback) {
69 String programTitle = programModel.get(ProgramConstants.LONG_TITLE);
70 this.setName(programTitle);
71 this.getHeader().setTitle(programTitle);
72 super.showView(viewType, onReadyCallback);
73 }
74
75 public void setCurrentTitle(String currentTitle) {
76 this.getHeader().setTitle(currentTitle);
77 }
78
79 public Type getType() {
80 return type;
81 }
82
83 public void setType(Type type) {
84 this.type = type;
85 }
86
87 }