@@ -0,0 +1,1688 @@
+package org.azavea.otm;%0A%0Aimport java.util.LinkedHashMap;%0Aimport java.util.Map;%0Aimport java.util.Map.Entry;%0A%0Aimport org.azavea.otm.data.Model;%0Aimport org.json.JSONException;%0Aimport org.w3c.dom.Node;%0Aimport org.w3c.dom.NodeList;%0A%0Aimport android.view.LayoutInflater;%0Aimport android.view.View;%0Aimport android.widget.LinearLayout;%0Aimport android.widget.TextView;%0A%0Apublic class FieldGroup %7B%0A%09%0A%09private String title;%0A%09private Map%3CString,Field%3E fields = new LinkedHashMap%3CString, Field%3E();%0A%09%0A%09public FieldGroup() %7B%0A%09%09this.title = %22%22;%0A%09%7D%0A%09%0A%09public FieldGroup(String title) %7B%0A%09%09this.title = title;%0A%09%7D%0A%09%0A%09public void addFields(Map%3CString,Field%3E fields) %7B%0A%09%09this.fields = fields;%0A%09%7D%0A%0A%09public void addFields(NodeList fieldDefs) %7B%0A%09%09if (fieldDefs != null) %7B%0A%09%09%09for (int i=0; i %3C fieldDefs.getLength(); i++) %7B%0A%09%09%09%09Node def = fieldDefs.item(i);%0A%09%09%09%09if (def.getNodeType() == Node.ELEMENT_NODE) %7B%0A%09%09%09%09%09addField(Field.makeField(def));%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%09%0A%09public void addField(Field field) %7B%0A%09%09this.fields.put(field.key, field);%0A%09%7D%0A%0A%09public String getTitle() %7B%0A%09%09return title;%0A%09%7D%0A%0A%09public Map%3CString,Field%3E getFields() %7B%0A%09%09return fields;%0A%09%7D%0A%0A%09/**%0A%09 * Render a field group and its child fields for viewing%0A%09 * @throws JSONException %0A%09 */%0A%09public View renderForDisplay(LayoutInflater layout, Model model) throws JSONException %7B%0A%09%09View container = layout.inflate(R.layout.plot_field_group, null);%0A%09%09LinearLayout group = (LinearLayout)container.findViewById(R.id.field_group); %0A        ((TextView)group.findViewById(R.id.group_name)).setText(this.title);%0A%09%09for (Entry%3CString, Field%3E field : fields.entrySet()) %7B%0A%09%09%09group.addView(field.getValue().renderForDisplay(layout, model));%0A%09%09%7D%0A        return group;%0A%09%7D%0A%7D%0A

Add FieldGroup class