package com.cnblogs.hooligen.client;import com.google.gwt.cell.client.AbstractCell;import com.google.gwt.cell.client.ValueUpdater;import com.google.gwt.core.client.GWT;import com.google.gwt.dom.client.Element;import com.google.gwt.dom.client.NativeEvent;import com.google.gwt.safehtml.client.SafeHtmlTemplates;import com.google.gwt.safehtml.shared.SafeHtml;import com.google.gwt.safehtml.shared.SafeHtmlBuilder;public class HyperTextCell extends AbstractCell{ interface HyperTextTemplate extends SafeHtmlTemplates { @Template(" {1}") SafeHtml hyperText(String styleClass, String value); } private static HyperTextTemplate template; public HyperTextCell() { this("click"); } public HyperTextCell(String... consumedEvents) { super(consumedEvents); if(template == null) { template = GWT.create(HyperTextTemplate.class); } } @Override public void onBrowserEvent(Context context, Element parent, String[] value, NativeEvent event, ValueUpdater valueUpdater) { super.onBrowserEvent(context, parent, value, event, valueUpdater); if("click".equals(event.getType())) { if (valueUpdater != null) { valueUpdater.update(value); } } } @Override public void render(Context context, String[] value, SafeHtmlBuilder sb) { if (value != null && value.length == 2) { sb.append(template.hyperText(value[0], value[1])); } }}