// Placing the handling DataWidget before ContainerWidget
// means that an AggregateField is handled like a DataWidget
if (widget instanceof DataWidget) {
Datatype datatype = ((DataWidget)widget).getDatatype();
if (widget.getValue() != null)
data(datatype.convertToString(widget.getValue(), this.locale));
} else if (widget instanceof BooleanField) {
// FIXME: BooleanField should implement DataWidget, which
// would make this case unnesecary
if (widget.getValue() != null)
data((Boolean)widget.getValue() == Boolean.TRUE ? "true" : "false");