几周前,我加入了一个GWT应用程序项目。代码库早在2009年就开始了。我正在尝试用一个FlexTable替换一个CellTable,这样我就可以利用可排序的列。该项目中GWT的当前版本为2.7.0,但从代码看,似乎仍然使用了一些已经过时的特性。我是新来的GWT,我可能错了。
到目前为止,事情在功能上是好的。然而,GWT似乎正在重写我更新CSS的尝试。我使用GWT动态采样作为模型向CellTable添加CSS。TimeSlotWidget使用CellTable.Style:
interface TableResources extends CellTable.Resources {
@Override
@Source(value = {CellTable.Style.DEFAULT_CSS, "CellTablePatch.css"})
CellTable.Style cellTableStyle();
}
然后将其应用于CellTable,如下所示:
table = new CellTable<TimeSlotListWidget.ScheduleRow>(ROWS_IN_A_DAY,
GWT.<TableResources> create(TableResources.class));
我试图在代码中使用这种方法。我甚至从值列表中省略了CellTable.Style.DEFAULT_CSS
,并创建了我自己的CSS样式表,它以GWT CellTable.css的副本开始。
我注意到GWT TimeSlotListWidget示例有一个ui.xml文件带有UIBinder。我的项目目前不使用UIBinder。
当我运行我的代码时,有一个<style>
块插入到页面中,它似乎是标准的GWT CellTable.css。然后直接用我的CSS插入另一个<style>
块。而且我的CSS没有覆盖标准的GWT。
如何避免插入GWT CellTable.css?为什么要插入?
发布于 2017-03-10 14:25:33
问题是,在您的代码中,您重用了CellTable.Style
,两个不同的ClientBundles使用了相同的类型,但每个ClientBundles都将自己的CSS绑定到它。
相反,扩展CellTable.Style
接口,并在包中使用该接口:
interface MyCellTableStyle extends CellTable.Style {}
interface TableResources extends CellTable.Resources {
@Override
@Source(value = {CellTable.Style.DEFAULT_CSS, "CellTablePatch.css"})
MyCellTableStyle cellTableStyle();
}
https://stackoverflow.com/questions/42723811
复制