2014-08-28 2 views
8

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> 

risposta

3

Bene, il codice precedente funziona effettivamente se si inserisce il css nel file css corretto. Stavo cercando di aggiungere gli stili a myproject.scss in opposizione a styles.css dove immagino tu debba.

+0

myproject.scss dovrebbe funzionare anche quando il tuo ciclo di compilazione lo compila in un css e hai specificato il tema corretto e include –

+0

ho pensato che dovrebbe, non sono sicuro di cosa c'è che non va nel mio progetto perché ciò non accada. –

+0

a seconda della versione di vaadin, potresti provare ad aggiungere il codice css al file table.scss del tuo tema –