1 package org.kuali.student.lum.lu.ui.course.client.controllers;
2
3 import org.kuali.student.common.ui.client.application.ViewContext;
4 import org.kuali.student.common.ui.client.configurable.mvc.layouts.BasicLayout;
5 import org.kuali.student.common.ui.client.mvc.Callback;
6
7 import com.google.gwt.core.client.GWT;
8
9 public class ViewCourseParentController extends BasicLayout{
10
11 public static enum Views{VIEW, VERSIONS}
12
13 private ViewCourseController view;
14 private VersionsController versions;
15
16 public ViewCourseParentController() {
17 super(ViewCourseParentController.class.toString());
18 this.setDefaultView(Views.VIEW);
19 setupDefaultView();
20 }
21
22 private void setupDefaultView() {
23 view = GWT.create(ViewCourseController.class);
24 view.initialize(Views.VIEW);
25 view.setParentController(this);
26 versions = new VersionsController(Views.VERSIONS);
27 view.setParentController(this);
28 this.addView(view);
29 this.addView(versions);
30 }
31
32 @Override
33 public void setViewContext(ViewContext viewContext) {
34
35 view.setViewContext(viewContext);
36 }
37
38 @Override
39 public <V extends Enum<?>> void showView(final V viewType, final Callback<Boolean> onReadyCallback) {
40 if(viewType == Views.VERSIONS){
41 view.setName("");
42 this.setName(view.getCourseTitle());
43 versions.setVersionIndId(view.getVersionIndId());
44 versions.setCurrentVersionId(view.getCurrentId());
45 versions.setCurrentTitle(view.getCourseTitle());
46 }
47 else if(viewType == Views.VIEW){
48 view.setName(view.getCourseTitle());
49 this.setName("");
50 }
51 super.showView(viewType, onReadyCallback);
52 }
53
54 @Override
55 public Enum<?> getViewEnumValue(String enumValue) {
56 return Views.valueOf(enumValue);
57 }
58
59 @Override
60 public void beforeShow(Callback<Boolean> onReadyCallback) {
61 if(this.getName() != null && !this.getName().equals("")){
62 this.setName("");
63 }
64 super.beforeShow(onReadyCallback);
65 }
66
67 }