*/
public void setProperties(Map<String, Schema> properties) {
List<String> keys = Lists.newArrayList(properties.keySet());
Collections.sort(keys);
HTMLPanel inner = new HTMLPanel("");
inner.getElement().getStyle().setPaddingLeft(20, Unit.PX);
for (String childKey : keys) {
final Schema property = properties.get(childKey);
final Map<String, Schema> childProperties = property.getProperties();
final Schema items = property.getItems();
if (childProperties == null && items == null) {
// This is a simple field
CheckBox checkBox = new CheckBox(childKey);
checkBox.setValue(root.getValue());
checkBox.setTitle(property.getDescription());
children.put(childKey, checkBox);
checkBox.getElement().appendChild(Document.get().createBRElement());
inner.add(checkBox);
} else {
final FieldsEditor editor = new FieldsEditor(service, childKey);
children.put(childKey, editor);
inner.add(editor);
if (childProperties != null) {
editor.setProperties(childProperties);
} else if (property.getRef() != null) {
editor.setRef(property.getRef());