2013-05-14 42 views
4

我試圖根據行項目的十六進制值更改表格上一行的顏色。基本上,我想產生類似產生這樣如何在Vaadin的表格行中添加特定的顏色?

CssLayout content = new CssLayout() { 
     @Override 
     public String getCss(Component c) { 
     return "background: " + colorCode + ";"; 
     } 
    }; 

一個cssLayout這是我現在使用

table.setCellStyleGenerator(
    new Table.CellStyleGenerator() { 
     public String getStyle(Object itemId, Object propertyId) { 
     return "green"; 
     } 
    }); 

碼上飛的CSS,但它僅適用於設置樣式名,所以我必須擁有數百萬個樣式名稱來容納用戶想要的顏色的所有可能的十六進制值。

回答

2

您可以使用CSSInject加載項即時添加所需的樣式名稱。

https://vaadin.com/directory#addon/cssinject

String color = "#CCDDFF"; 
CSSInject css = new CSSInject(getUI()); 
css.setStyles("."+color+" { background-color: "+color+"; }"); 
+0

感謝您的回覆。我不想使用插件,我在Vaadin 6.something上。我最終在上面的代碼中使用了一個CssLayout,但我相信這對其他具有相同問題的人會有所幫助。 – labatyo 2013-05-16 20:38:04

+0

Oups對不起,我沒有考慮vaadin 6. 相同的附加組件可用於6.3+,語法幾乎相同。 String color =「#CCDDFF」; CSSInject css = new CSSInject(); css.setValue(「。」+ color +「{background-color:」+ color +「;}」); mainLayout.addComponent(css); – 2013-05-17 07:36:48

+0

我現在有同樣的問題。顏色來自數據庫。這些顏色沒有「名稱」,不可能告訴它們會有多少。所以我需要一些設置表格行的具體rgb顏色。動態生成任意數量的CSS名稱(雖然主佈局已經在屏幕上顯示)似乎不合適。 – nagylzs 2015-03-16 12:19:56

0

在現有的CSS文件中,您可以將樣式「綠色」的顏色更改定義爲background-color: #00ff00;,並根據約束返回樣式綠色。請看color changes

+0

我認爲這不會幫助,因爲HWE需要有名字的所有可能的顏色在CSS文件,因爲他還沒有2-3個顏色,而是希望(潛在)使用#000000到#FFFFFF的所有可用顏色 – 2013-05-14 14:40:25

相關問題