在GWT CellTable的自定义单元格内的窗口小部件中无效的事件

时间:2014-08-07 20:45:51

标签: gwt

我正在我的手机中添加一个包含Google可视化图表的面板。

像这样

 public class CustomCell extends AbstractCell<VerticalPanel> {

Panel panel;

@Override
public void render(com.google.gwt.cell.client.Cell.Context context,
        VerticalPanel chartContainer, SafeHtmlBuilder sb) {
if ( chartContainer == null ) return;

    GWTWidget myGwtWidget = new GWTWidget();
    myGwtWidget.getPan().add(chartContainer);
    sb.appendHtmlConstant(myGwtWidget.getElement().getString());

}

它显示我的verticalPanel有图表,但图表工具提示消失了,

然后我尝试了onBrowse,如下所示,但它迫使我删除@Override .. 和事情不起作用..

任何想法,我错了

@Override
public void onBrowserEvent(
    Context context,
    Element parent,
    VerticalPanel value,
    NativeEvent event,
    ValueUpdater<VerticalPanel> valueUpdater) {

  // Let AbstractCell handle the keydown event.
  super.onBrowserEvent(context, parent, value, event, valueUpdater);

  // Handle the click event.
  if ("click".equals(event.getType())) {
    // Ignore clicks that occur outside of the outermost element.
    EventTarget eventTarget = event.getEventTarget();
    if (parent.getFirstChildElement().isOrHasChild(Element.as(eventTarget))) {
      Window.alert("ss");
    }
  }
}

这里我在我的celltable中添加图表..(这个custCell是上面的custCell类的实例)

        Column<Contact, VerticalPanel> graphColumn = new Column<Contact, VerticalPanel>(custCell) {
                @Override
                public VerticalPanel getValue(Contact object) {

                    ColumnChart pie = new ColumnChart(createTable(object.getEnglish(), object.getMaths()), createOptions());

                    pie.addSelectHandler(createSelectHandler(pie));
                    VerticalPanel vpChart = new VerticalPanel();
                    vp.add(vpChart);
                    vpChart.add(pie);
                    vpChart.setWidth("300px");

                    return vpChart;
                }
            };

1 个答案:

答案 0 :(得分:1)

当您致电.getElement().getString()时,您将获得一个没有任何功能的纯HTML。

我不知道GWTWidget应该做什么,但是在你致电.getElement().getString()后它不会这样做。