GWT中自定义你的"cell"
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"的更多相关文章
- ios中自定义cell 设置cell的分组结构
ios系统默认的cell并不能满足我们的需求 这个时候就需要自定义我们的cell 自定义cell为分组的时候 需要设置分组样式 以下是我常用分组的二种方法: 第一是 在自定义的UITableView ...
- ios之UI中自定义cell
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 自定义不等高cell—storyBoard或xib自定义不等高cell
1.iOS8之后利用storyBoard或者xib自定义不等高cell: 对比自定义等高cell,需要几个额外的步骤(iOS8开始才支持) 添加子控件和contentView(cell的content ...
- 纯代码自定义不等高cell
数据模型.plist解析这里就不过多赘述. 错误思路之一: 通过在heightForRowAtIndexPath:方法中调用cellForRowAtIndexPath:拿到cell,再拿到cell的子 ...
- iOS开发——UI进阶篇(三)自定义不等高cell,如何拿到cell的行高,自动计算cell高度,(有配图,无配图)微博案例
一.纯代码自定义不等高cell 废话不多说,直接来看下面这个例子先来看下微博的最终效果 首先创建一个继承UITableViewController的控制器@interface ViewControll ...
- iOS开发——UI进阶篇(二)自定义等高cell,xib自定义等高的cell,Autolayout布局子控件,团购案例
一.纯代码自定义等高cell 首先创建一个继承UITableViewCell的类@interface XMGTgCell : UITableViewCell在该类中依次做一下操作1.添加子控件 - ( ...
- Html中自定义鼠标的形状
Html中自定义鼠标的形状 <html> <head> <title>自定义的鼠标形状</title> <meta http-equiv=&quo ...
- 教你一招:在PowerPoint中自定义可输入文本的占位符
日常生活中,当我们设计多媒体课件时,默认的版式其实已经够用了.但是,很多时候,我们需要更加个性一点,所以,我们需要自定义很多东西.本文介绍在PowerPoint中自定义可输入文本的占位符. 一.占位符 ...
- android代码优化----ListView中自定义adapter的封装(ListView的模板写法)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
随机推荐
- 在各种Linux发行版上安装Git的教程
Git是一个流行的开源版本控制系统(VCS),最初是为Linux环境开发的.跟CVS或者SVN这些版本控制系统不同的是,Git的版本控制被认为是“分布式的”,某种意义上,git的本地工作目录可以作为一 ...
- vRA7 Software Component
将自定义Property传递给Software Component 示例: vRA7 支持 Software Components,并且还可以在用户的申请页面中,做一个下拉菜单,让用户选择需要安装的S ...
- Windows Server 2008 IIS的备份和还原
Windows Server 2008 IIS的备份和还原 当我们服务器系统有大量的站点和虚拟目录的时候,因为种种原因需要重做系统,那么重装系统后这些站点我们是否只能一个一个的添加,如果有成百上千个站 ...
- java中如何将非整数保留到小数点后指定的位数
- Oracle数据库连接生成DDL
package com.bbkj; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepare ...
- js用星号隐藏电话中间四位号码
$(document).ready(function(){ var mobile="{$user.mobile}"; var reg=/^(\d{3})\d{4}(\d{4})$/ ...
- JAVA 中的集合框架
java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 一.集合与数组 数组:(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知 ...
- Java 创建线程的两种方法
Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...
- OpenStack with Opendaylight Part 1: Intro to Pipeline
Using Vagrant to create vm nodes; devstack to start openstack using Opendaylight as ML2. Openstack w ...
- windows下如何查看端口占用
1.查看端口使用情况netstat -aon(以3306为例) 2.根据3306端口号查看对应的进程号(进程号就是进程的唯一标识,根据这个进程号就能找到对应的应用) 3.根据进程号查询相应的应用占用端 ...