Vaadin - Färbung Tabelle-Zellen basierend auf dem Inhalt
Habe ich ein sehr einfaches Beispiel hier, wo ich versuche, die Farbe bestimmter Zellen, die basierend auf einem bestimmten string-Wert vorhanden in Zelle. Ich habe in print-Anweisungen, und ich bin der return - "grün" zurück "orange", etc... Punkte, aber im Lauf der Zeit bin ich nur immer das grauen und weißen abwechselnde Reihe von Farben, keine von mir bestimmten Zelle Farben. Die css, die ich verwende ich zog direkt aus book of vaadin, dachte, das wäre einfach. Vielleicht gibt es etwas kleines fehlt mir.
Zelle Stil-generator-code:
table.setCellStyleGenerator(new Table.CellStyleGenerator() {
@Override
public String getStyle(Table source, Object itemId, Object propertyId) {
if(propertyId != null ) {
Item item = source.getItem(itemId);
if(item.getItemProperty(propertyId).getValue().getClass() == String.class) {
String cellValue = (String)item.getItemProperty(propertyId).getValue();
if( cellValue.equals("AA") ) {
return "green";
} else if( cellValue.equals("BB") ) {
return "orange";
} else if( cellValue.equals("AB") ) {
return "yellow";
} else {
return "white";
}
} else {
return "white";
}
} else {
return null;
}
}
});
CSS:
.v-table-cell-content-green {
background: #33BB00;
}
.v-table-cell-content-orange {
background: #FCB724;
}
.v-table-cell-content-yellow {
background: #FFFF00;
}
.v-table-cell-content-white {
background: #FFFFFF;
}
Wenn ich mir anschaue, was tatsächlich im browser gerendert, dies ist, wie eine Zelle aussieht:
<td class="v-table-cell-content v-table-cell-content-green" style="width: 59px;"><div class="v-table-cell-wrapper" style="text-align: left; width: 59px;">AA</div></td>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sowie der obige code tatsächlich funktioniert, wenn du die css in die richtige css-Datei. Ich habe versucht, hinzufügen von Stilen, um myproject.scss im Gegensatz zu Stilen.css wo ich denke, man sollte.