use of com.vaadin.data.Property in project VaadinUtils by rlsutton1.
the class ContainerCSVExport method writeRow.
private void writeRow(CSVWriter writer, Table table, Object id, Set<Object> properties) {
Item item = table.getItem(id);
String[] values = new String[properties.size() + extraColumnHeadersAndPropertyIds.size()];
int i = 0;
for (Object propertyId : properties) {
@SuppressWarnings("rawtypes") final Property itemProperty = item.getItemProperty(propertyId);
if (itemProperty != null && itemProperty.getValue() != null) {
ColumnGenerator generator = table.getColumnGenerator(propertyId);
if (generator != null && itemProperty.getType() != Boolean.class) {
Object value = generator.generateCell(table, id, propertyId);
if (value instanceof Label) {
value = new HtmlToPlainText().getPlainText(Jsoup.parse(((Label) value).getValue()));
}
if (value instanceof AbstractLayout) {
value = new HtmlToPlainText().getPlainText(Jsoup.parse(itemProperty.getValue().toString()));
}
if (value instanceof Link) {
value = new HtmlToPlainText().getPlainText(Jsoup.parse(itemProperty.getValue().toString()));
}
if (value != null) {
values[i++] = value.toString();
}
} else {
values[i++] = itemProperty.getValue().toString();
}
} else {
ColumnGenerator generator = table.getColumnGenerator(propertyId);
if (generator != null) {
Object value = generator.generateCell(table, id, propertyId);
if (value != null) {
if (value instanceof ClickableLabel) {
value = new HtmlToPlainText().getPlainText(Jsoup.parse(((ClickableLabel) value).getValue()));
}
if (value instanceof Label) {
value = new HtmlToPlainText().getPlainText(Jsoup.parse(((Label) value).getValue()));
// value = ((Label) value).getValue();
}
if (value instanceof AbstractLayout) {
// set a string using setData() on the layout.
if (((AbstractLayout) value).getData() instanceof ContainerCSVExportData) {
value = ((AbstractLayout) value).getData().toString();
} else {
value = "";
}
}
if (value instanceof Link) {
value = new HtmlToPlainText().getPlainText(Jsoup.parse(((Link) value).getCaption()));
}
}
if (value == null) {
value = "";
}
values[i++] = value.toString();
} else {
values[i++] = "";
}
}
}
for (Object columnId : extraColumnHeadersAndPropertyIds.values()) {
String value = getValueForExtraColumn(item, columnId);
if (value == null) {
value = "";
}
values[i++] = value;
}
writer.writeNext(values);
}
Aggregations