【问题标题】:How to use CellTable.Style with GWT 2.7.0 without UiBinder?如何在没有 UiBinder 的情况下将 CellTable.Style 与 GWT 2.7.0 一起使用?
【发布时间】:2017-03-11 06:25:33
【问题描述】:

几周前我加入了一个 GWT 应用程序项目。代码库早在 2009 年就开始了。我正在尝试用 CellTable 替换 FlexTable,以便我可以利用可排序的列。项目中GWT的当前版本是2.7.0,但是翻看代码,似乎还有一些功能已经过时了。我是 GWT 的新手,我可能是错的。

到目前为止,功能还不错。但是,GWT 似乎覆盖了我更新 CSS 的尝试。我使用GWT dynatablerf sample 作为模型将 CSS 添加到 CellTable。 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 的副本

我注意到带有 UIBinder 的 GWT TimeSlotListWidget sample has an ui.xml 文件。我的项目目前没有使用 UIBinder。

当我运行我的代码时,有一个&lt;style&gt; 块插入到似乎是标准 GWT CellTable.css 的页面中。然后直接在那之后,用我的 CSS 插入另一个 &lt;style&gt; 块。而且我的 CSS 没有覆盖标准的 GWT CSS。

如何防止插入 GWT CellTable.css?为什么要插入?

【问题讨论】:

    标签: java css gwt gwt-celltable gwt-2.7


    【解决方案1】:

    问题在于,在您的代码中,您重用了CellTable.Style,并且两个不同的 ClientBundle 使用了相同的类型,但每个都将自己的 CSS 绑定到它。

    相反,扩展CellTable.Style 接口,并在你的包中使用它:

    interface MyCellTableStyle extends CellTable.Style {}
    interface TableResources extends CellTable.Resources {
      @Override
      @Source(value = {CellTable.Style.DEFAULT_CSS, "CellTablePatch.css"})
      MyCellTableStyle cellTableStyle();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-24
      • 2016-02-21
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多