如何设置TextButton的样式?

时间:2013-05-02 18:52:32

标签: java gwt

我有一个GWT TextButton。应用于全局css文件的以下css样式不执行任何操作:

.gwt-TextButton {
   color: red !important;
}

为什么呢?有哪些正确的样式可用于更改所有TextButton小部件的样式?

1 个答案:

答案 0 :(得分:2)

TextButton是一个由单元格支持的小部件,基于appearance模式。它使用TextButtonCell呈现内容并使用CellWidget<T>包装它。

您要查找的全局css是gwt-ButtonCellBase,但由于在ClientBundle中使用了它,因此需要进行扩展ButtonCellBase.DefaultAppearance.Resources,提供您自己的Style 。就像任何其他基于单元格的小部件一样。然后你需要使用正确的构造函数(TextButton(Appearance appearance, String text))。示例代码如下。

定义资源外观扩展(为清晰起见,完全引用):

public interface MyResources extends ButtonCellBase.DefaultAppearance.Resources {
  @Override
  @Source(value = {ButtonCellBase.DefaultAppearance.Style.DEFAULT_CSS, "custom.css"})
  ButtonCellBase.DefaultAppearance.Style buttonCellBaseStyle();
}

custom.css内,覆盖您想要的ButtonCellBase.css,然后注入所有内容:

MyResources customResources = GWT.create(MyResources.class);
TextButtonCell.Appearance customAppearance = new TextButtonCell.DefaultAppearance(customResources);
TextButton button = new TextButton(customAppearance, "Text");

你可以很好地完成上述所有操作,并始终以相同的外观实例化任何新的TextButton