| 1 |  |  package org.kuali.student.common.ui.client.configurable.mvc.binding; | 
  | 2 |  |   | 
  | 3 |  |  import java.util.ArrayList; | 
  | 4 |  |  import java.util.Iterator; | 
  | 5 |  |   | 
  | 6 |  |  import org.kuali.student.common.ui.client.mvc.DataModel; | 
  | 7 |  |  import org.kuali.student.common.ui.client.widgets.ListOfStringWidget; | 
  | 8 |  |  import org.kuali.student.core.assembly.data.Data; | 
  | 9 |  |  import org.kuali.student.core.assembly.data.QueryPath; | 
  | 10 |  |  import org.kuali.student.core.assembly.data.Data.DataValue; | 
  | 11 |  |  import org.kuali.student.core.assembly.data.Data.Property; | 
  | 12 |  |   | 
  | 13 |  |   | 
  | 14 |  |   | 
  | 15 |  |   | 
  | 16 |  |   | 
  | 17 |  |   | 
  | 18 |  |   | 
  | 19 |  |   | 
  | 20 | 0 |  public class ListOfStringBinding implements ModelWidgetBinding<ListOfStringWidget> { | 
  | 21 |  |   | 
  | 22 |  |          @Override | 
  | 23 |  |          public void setModelValue(ListOfStringWidget widget, DataModel model, String path) { | 
  | 24 | 0 |                  Data data = new Data(); | 
  | 25 | 0 |                  DataValue listData = new Data.DataValue(data); | 
  | 26 | 0 |                  for(String value:widget.getStringValues()){ | 
  | 27 | 0 |                          data.add(value); | 
  | 28 |  |                  } | 
  | 29 | 0 |                  model.set(QueryPath.parse(path), listData); | 
  | 30 | 0 |          } | 
  | 31 |  |   | 
  | 32 |  |          @Override | 
  | 33 |  |          public void setWidgetValue(ListOfStringWidget widget, DataModel model, String path) { | 
  | 34 | 0 |                  Data data = model.get(path); | 
  | 35 | 0 |                  ArrayList<String> values = new ArrayList<String>(); | 
  | 36 | 0 |                  if(data!=null){ | 
  | 37 | 0 |                          Iterator<Property> iter = data.realPropertyIterator(); | 
  | 38 | 0 |                          while(iter.hasNext()){ | 
  | 39 | 0 |                                  Property prop = iter.next(); | 
  | 40 | 0 |                                  String value = prop.getValue(); | 
  | 41 | 0 |                                  values.add(value); | 
  | 42 | 0 |                          } | 
  | 43 |  |                  } | 
  | 44 | 0 |                  widget.setStringValues(values); | 
  | 45 | 0 |          } | 
  | 46 |  |   | 
  | 47 |  |  } |