Ho un esempio molto semplice qui dove sto cercando di colorare celle specifiche basate su un valore di stringa specifico presente in quella cella. Inserisco le dichiarazioni di stampa e sto premendo i punti "verde", ritorno "arancione", ecc ..., ma in fase di esecuzione ottengo solo i colori delle righe alternati grigi e bianchi, nessuno dei miei colori specifici per le celle . Il css che sto usando è stato estratto direttamente dal libro di vaadin, pensavo che sarebbe stato semplice. Forse c'è qualcosa di piccolo che mi manca.Vaadin - Colorare le celle di una tabella basate sul contenuto
cellulare il codice generatore di stile:
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;
}
Quando guardo ciò che è effettivamente reso nel browser, questo è quello che sembra una cella come:
<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>
myproject.scss dovrebbe funzionare anche quando il tuo ciclo di compilazione lo compila in un css e hai specificato il tema corretto e include –
ho pensato che dovrebbe, non sono sicuro di cosa c'è che non va nel mio progetto perché ciò non accada. –
a seconda della versione di vaadin, potresti provare ad aggiungere il codice css al file table.scss del tuo tema –