2013-05-14 81 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

相关问题