在GWT中单击获取单元格表中的标题列名
我正在使用GWT2.2版本的单元格表。我想获取我单击的标题列的名称。我在同一个网站上没有收到任何点击事件 有什么工作可以让我完成我的任务。类似的事情吗?;)在GWT中单击获取单元格表中的标题列名,gwt,Gwt,我正在使用GWT2.2版本的单元格表。我想获取我单击的标题列的名称。我在同一个网站上没有收到任何点击事件 有什么工作可以让我完成我的任务。类似的事情吗?;) 公共类CellTableExample实现入口点,ClickHandler{ 私有静态类实体{ /* ... */ } 私有静态类ClickableTextHeader扩展了TextHeader{ 私有ClickHandler; 公共ClickableTextHeader(字符串文本,ClickHandler){ 超级(文本); this.
公共类CellTableExample实现入口点,ClickHandler{
私有静态类实体{
/* ... */
}
私有静态类ClickableTextHeader扩展了TextHeader{
私有ClickHandler;
公共ClickableTextHeader(字符串文本,ClickHandler){
超级(文本);
this.handler=handler;
}
@凌驾
public void onBrowserEvent(上下文、最终元素元素、,
最终NativeEvent事件){
//可能是劫持点击事件
if(处理程序!=null){
if(Event.ONCLICK==Event.getTypeInt(Event.getType())){
onClick(新的ClickEvent(){
{
setNativeEvent(事件);
setRelativeElement(元素);
setSource(ClickableTextHeader.this);
}
});
}
}
//默认dom事件处理程序
super.onBrowserEvent(上下文、元素、事件);
}
}
细胞表细胞表;
TextColumn第一列;
TextColumn第二列;
TextColumn第三列;
@凌驾
moduleload()上的公共void{
/*不知怎的,init columns——这不是本例的重点*/
addColumn(第一列,新的ClickableTextHeader(“第一列标题”,this));
addColumn(第二列,新的ClickableTextHeader(“第二列标题”,this));
addColumn(第三列,新的ClickableTextHeader(“第三列标题”,this));
}
@凌驾
公共作废一次点击(点击事件){
ClickableTextHeader源=(ClickableTextHeader)事件。getSource();
Window.alert(source.getValue());
}
}
如果我们使用“简单侦听器接口”,劫持事件可能看起来更简单——我只是想“与开箱即用的处理程序语义兼容”:
public class CellTableExample implements EntryPoint, ClickHandler {
private static class SomeEntity {
/* ... */
}
private static class ClickableTextHeader extends TextHeader {
private ClickHandler handler;
public ClickableTextHeader(String text, ClickHandler handler) {
super(text);
this.handler = handler;
}
@Override
public void onBrowserEvent(Context context, final Element elem,
final NativeEvent event) {
//maybe hijack click event
if(handler != null) {
if(Event.ONCLICK == Event.getTypeInt(event.getType())) {
handler.onClick(new ClickEvent() {
{
setNativeEvent(event);
setRelativeElement(elem);
setSource(ClickableTextHeader.this);
}
});
}
}
//default dom event handler
super.onBrowserEvent(context, elem, event);
}
}
CellTable<SomeEntity> cellTable;
TextColumn<SomeEntity> firstColumn;
TextColumn<SomeEntity> secondColumn;
TextColumn<SomeEntity> thirdColumn;
@Override
public void onModuleLoad() {
/* somehow init columns - it's not the point for this example */
cellTable.addColumn(firstColumn, new ClickableTextHeader("First column header", this));
cellTable.addColumn(secondColumn, new ClickableTextHeader("Second column header", this));
cellTable.addColumn(thirdColumn, new ClickableTextHeader("Third column header", this));
}
@Override
public void onClick(ClickEvent event) {
ClickableTextHeader source = (ClickableTextHeader) event.getSource();
Window.alert(source.getValue());
}
}