001 package org.kuali.student.lum.program.client;
002
003 import com.google.gwt.event.shared.EventHandler;
004 import com.google.gwt.event.shared.GwtEvent;
005
006 import org.kuali.student.common.ui.client.application.Application;
007 import org.kuali.student.r1.common.assembly.data.Data;
008 import org.kuali.student.r2.common.dto.ValidationResultInfo;
009
010 import java.util.ArrayList;
011 import java.util.HashMap;
012 import java.util.List;
013
014 /**
015 * @author Igor
016 */
017 public class ProgramRegistry {
018
019 private static Data data;
020
021 private static int row;
022
023 private static Enum<?> section;
024
025 private static HashMap<GwtEvent.Type, EventHandler> specializationHandlers = new HashMap<GwtEvent.Type, EventHandler>();
026
027 private static boolean createNew = false;
028
029 public static Data getData() {
030 return data;
031 }
032
033 public static void setData(Data data) {
034 ProgramRegistry.data = data;
035 }
036
037 public static int getRow() {
038 return row;
039 }
040
041 public static void setRow(int row) {
042 ProgramRegistry.row = row;
043 }
044
045 public static Enum<?> getSection() {
046 return section;
047 }
048
049 public static void setSection(Enum<?> section) {
050 ProgramRegistry.section = section;
051 }
052
053 public static void addHandler(GwtEvent.Type<?> type, EventHandler handler) {
054 specializationHandlers.put(type, handler);
055 }
056
057 public static HashMap<GwtEvent.Type, EventHandler> getSpecializationHandlers() {
058 return specializationHandlers;
059 }
060
061 public static boolean isCreateNew() {
062 return createNew;
063 }
064
065 public static void setCreateNew(boolean createNew) {
066 ProgramRegistry.createNew = createNew;
067 }
068
069 /**
070 * @return The validation warnings for the current variation found in the validation warnings stored in
071 * the ApplicationContext.
072 *
073 */
074 public static List<ValidationResultInfo> getVariationWarnings(){
075 String variationPath = ProgramConstants.VARIATIONS+"/"+org.kuali.student.lum.program.client.ProgramRegistry.getRow()+"/";
076 List<ValidationResultInfo> validationWarnings = Application.getApplicationContext().getValidationWarnings();
077 List<ValidationResultInfo> variationWarnings = new ArrayList<ValidationResultInfo>();
078 for (ValidationResultInfo vr:validationWarnings){
079 if (vr.getElement().contains(variationPath)){
080 ValidationResultInfo newVr = new ValidationResultInfo(vr.getElement().substring(variationPath.length()));
081 newVr.setWarning(vr.getMessage());
082 variationWarnings.add(newVr);
083 }
084 }
085
086 return variationWarnings;
087 }
088 }