private AbstractField<?> createBooleanField(Object propertyId) {
ComboBox booleanSelect = new ComboBox();
booleanSelect.addItem(true);
booleanSelect.addItem(false);
if (owner.getFilterDecorator() != null) {
if (owner.getFilterDecorator().getAllItemsVisibleString() != null) {
Object nullItem = booleanSelect.addItem();
booleanSelect.setNullSelectionItemId(nullItem);
booleanSelect.setItemCaption(nullItem, owner.getFilterDecorator().getAllItemsVisibleString());
}
String caption = owner.getFilterDecorator().getBooleanFilterDisplayName(propertyId, true);
booleanSelect.setItemCaption(true, caption == null ? "true" : caption);
Resource icon = owner.getFilterDecorator().getBooleanFilterIcon(propertyId, true);
if (icon != null) {
booleanSelect.setItemIcon(true, icon);
}
caption = owner.getFilterDecorator().getBooleanFilterDisplayName(propertyId, false);
booleanSelect.setItemCaption(false, caption == null ? "false" : caption);
icon = owner.getFilterDecorator().getBooleanFilterIcon(propertyId, false);
if (icon != null) {
booleanSelect.setItemIcon(false, icon);
}
} else {
booleanSelect.setItemCaption(true, "true");
booleanSelect.setItemCaption(false, "false");
}
booleans.put(booleanSelect, propertyId);
return booleanSelect;
}