View Javadoc

1   package org.kuali.student.lum.common.client.widgets;
2   
3   import java.util.List;
4   
5   import org.kuali.student.common.ui.client.widgets.DataHelper;
6   import org.kuali.student.r1.common.assembly.data.Data;
7   import org.kuali.student.r1.common.assembly.data.LookupMetadata;
8   import org.kuali.student.r1.common.assembly.data.LookupParamMetadata;
9   import org.kuali.student.r2.core.search.dto.SearchParamInfo;
10  import org.kuali.student.r2.lum.clu.dto.MembershipQueryInfo;
11  
12  public class CluSetRangeDataHelper implements DataHelper {
13  
14      private LookupMetadata lookupMetadata;
15  
16      @Override
17      public String parse(Data data) {
18          MembershipQueryInfo membershipQueryInfo;
19          StringBuilder labelText = new StringBuilder();
20          int paramCounter = 0;
21          membershipQueryInfo = CluSetRangeModelUtil.INSTANCE.toMembershipQueryInfo(data);
22          if (membershipQueryInfo != null) {
23              if (membershipQueryInfo.getQueryParamValues() != null &&
24                      !membershipQueryInfo.getQueryParamValues().isEmpty()) {
25                  for (SearchParamInfo searchParam : membershipQueryInfo.getQueryParamValues()) {
26                      if (paramCounter > 0) {
27                          labelText.append(" ");
28                      }
29                      labelText.append(getParameterDisplayName(searchParam.getKey())).append(": ");
30                      if (searchParam.getValues().size() == 1) {
31                          labelText.append("<b>").append(searchParam.getValues().get(0)).append("</b>");
32                      } else {
33                          String value ="";
34                          for (String param : searchParam.getValues()) {
35  
36                              value = value + ", " + param;
37                          }
38                          labelText.append("<b>").append(value).append("</b>");
39                      }
40                      paramCounter++;
41                  }
42              } else {
43                  labelText.append("All Courses");
44              }
45          }
46          return labelText.toString();
47      }
48      
49      @Override
50      public String getKey(Data data) {
51          return parse(data);
52      }
53  
54      private String getParameterDisplayName(String parameterKey) {
55          String parameterDisplayName = null;
56          if (lookupMetadata == null) {
57              parameterDisplayName = parameterKey;
58          } else {
59              List<LookupParamMetadata> searchParams = lookupMetadata.getParams();
60              if (searchParams != null) {
61                  for (LookupParamMetadata searchParam : searchParams) {
62                      if (nullSafeEquals(searchParam.getKey(), parameterKey)) {
63                          parameterDisplayName = searchParam.getName();
64                      }
65                  }
66              }
67              if (parameterDisplayName == null) {
68                  parameterDisplayName = parameterKey;
69              }
70          }
71          return parameterDisplayName;
72      }
73  
74      private boolean nullSafeEquals(Object str1, Object str2) {
75          return (str1 == null && str2 == null ||
76                  str1 != null && str2 != null && str1.equals(str2));
77      }
78  
79      public LookupMetadata getLookupMetadata() {
80          return lookupMetadata;
81      }
82  
83      public void setLookupMetadata(LookupMetadata lookupMetadata) {
84          this.lookupMetadata = lookupMetadata;
85      }
86  
87  }