GWT内部提供了CellTable组件,它允许自由增加column以及cell,在设定column之后就是在其中填充cell了。但GWT所提供的CellTable样式确实不敢恭维,为了解决这一问题,在网上找了一些可行的方法,结合我的实践,在此贴出代码及说明,以供参考。

  创建column代码:

protected Column<Item, String> createNameColumn(CellTable<Item> parent) {

    Column<Item,String> column = new Column<Item,String>(new MytextCell()) {

        public String getCellStyleNames(Context context,
EntityItem<Product> object) {
return "label_link_focus_style";
} public String getValue(item) {
//code here
}
};

上面的代码中,我使用的是一个MyTextCell,一个我自定义的textCell,它继承于TextCell,所以重写了textCell中的getCellStyleNames()方法,只需要要返回一个css中的class名称字符串即可。这样做可以改变该cell的样式,但有一个缺点,不够灵活,仅仅改变cell样式,cell里面的内容不能改变。比如我想给cell中的字体加个下划线或者改个颜色,这种方法就不能完全实现。

看看MytextCell类的代码:

 public class MyTextCell extends TextCell {

       private static Template template;

      interface Template extends SafeHtmlTemplates {
@Template("<div style=\"color:{0};text-decoration:{1}\">{2}</div>")
SafeHtml div(String url, String decoration, String value);
} @Override
public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) {
String color = "#0066DD";
String decoration = "underline";
if (value != null) {
sb.append(template.div(color, decoration, value));
}
}
}

在该类中,我重写了TextCell中的render()方法,通过该方法,给cell中的内容添加样式。首先定义一个静态的Template接口,我称它为模板,这个Template继承与SaftHtmlTemplates。然后在其接口中通过注解定义模板样式以及调用格式,如6、7行所示写法。其中的模板中存在{0}、{1}这样的形式,有些类似于一种占位符。

接着在render()方法中调用刚才定义的接口,并将占位符填上你希望实现的css样式即可。这样就能轻松更改cell里面的内容的样式了!

GWT中自定义你的"cell"的更多相关文章

  1. ios中自定义cell 设置cell的分组结构

    ios系统默认的cell并不能满足我们的需求 这个时候就需要自定义我们的cell 自定义cell为分组的时候 需要设置分组样式  以下是我常用分组的二种方法: 第一是 在自定义的UITableView ...

  2. ios之UI中自定义cell

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  3. 自定义不等高cell—storyBoard或xib自定义不等高cell

    1.iOS8之后利用storyBoard或者xib自定义不等高cell: 对比自定义等高cell,需要几个额外的步骤(iOS8开始才支持) 添加子控件和contentView(cell的content ...

  4. 纯代码自定义不等高cell

    数据模型.plist解析这里就不过多赘述. 错误思路之一: 通过在heightForRowAtIndexPath:方法中调用cellForRowAtIndexPath:拿到cell,再拿到cell的子 ...

  5. iOS开发——UI进阶篇(三)自定义不等高cell,如何拿到cell的行高,自动计算cell高度,(有配图,无配图)微博案例

    一.纯代码自定义不等高cell 废话不多说,直接来看下面这个例子先来看下微博的最终效果 首先创建一个继承UITableViewController的控制器@interface ViewControll ...

  6. iOS开发——UI进阶篇(二)自定义等高cell,xib自定义等高的cell,Autolayout布局子控件,团购案例

    一.纯代码自定义等高cell 首先创建一个继承UITableViewCell的类@interface XMGTgCell : UITableViewCell在该类中依次做一下操作1.添加子控件 - ( ...

  7. Html中自定义鼠标的形状

    Html中自定义鼠标的形状 <html> <head> <title>自定义的鼠标形状</title> <meta http-equiv=&quo ...

  8. 教你一招:在PowerPoint中自定义可输入文本的占位符

    日常生活中,当我们设计多媒体课件时,默认的版式其实已经够用了.但是,很多时候,我们需要更加个性一点,所以,我们需要自定义很多东西.本文介绍在PowerPoint中自定义可输入文本的占位符. 一.占位符 ...

  9. android代码优化----ListView中自定义adapter的封装(ListView的模板写法)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

随机推荐

  1. JVM原理(Java代码编译和执行的整个过程+JVM内存管理及垃圾回收机制)

    转载注明出处: http://blog.csdn.net/cutesource/article/details/5904501 JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.e ...

  2. php数组函数-array_combine()

    array_combine()函数通过合并两个数组来创建一个新数组,其中一个数组是键名,另一个数组的值为键值. 如果其中一个数组为空,或者两个数组的元素个数不同,则该函数返回 false. array ...

  3. Qt如何重写虚函数

    eg:QWidget的有个虚函数,KeyPressEvent,当它的子类获得焦点的时候,如果有任何按键按下,就会触发这个虚函数. 1.在mainwindow.h中声明此虚函数 protected:vo ...

  4. POJ 3159 最短路 SPFA

    #include<iostream> using namespace std; const int nMax = 30005; const int mMax = 150005; const ...

  5. Spring Cloud Stream消息总线

    Springcloud 里面对于MQ的整合一个是前一篇的消息总线一个是本文介绍的消息驱动 大体要学习这么几个知识点: 课题:SpringCloud消息驱动Stream1.什么是SpringCloud消 ...

  6. 创建表空间及用户的SQL

    --创建表SOFA空间: CREATE SMALLFILE TABLESPACE "SOFA" DATAFILE 'G:\oracle\product\10.2.0\ORADATA ...

  7. linux命令:head 命令

    head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾. 1.命令格式: hea ...

  8. 有若干个箱子,假设每个箱子的最大承重为 MaxW 。将货物分配装箱

    今天在博客园中看到一个博问,就写了下实现代码. 问题: 有若干个箱子,假设每个箱子的最大承重为 MaxW .有一批物品,它们的重量分别为w1.w2...Wn,假设每个物品的重量都不超过箱子承重.写个算 ...

  9. Stacktack overview

    class Lifecycle(models.Model):    """The Lifecycle table is the Master for a group of ...

  10. IIS7配置PHP简要说明

    1. IIS7 安装的时候 要注意三个地方打得勾 万维网服务->应用程序开发功能->CGI ->ISAPI扩展 ->ISAPI筛选器 注:   CGI  会在IIS7+PHP_ ...