4

如何从 Javascript 以编程方式调用 EditTextCell 的 onBrowserEvent ?

我在用户单击单元格时调用的 customEditTextCell 中覆盖 onBrowserEvent。我也想从其他事件中调用。

public void onBrowserEvent(Context context, Element parent, String value,
        NativeEvent event, ValueUpdater<String> valueUpdater) { 
     // my custom code is here
   }

当我单击单元格时,将调用上述方法并打开 1 个 jQuery(选择器)弹出窗口。在 jQuery 弹出窗口完成按钮存在。

点击完成按钮我想调用上面的 gwt-java 方法,怎么做?

我知道我们可以从 Javascript 调用 java-gwt 方法,但是在传递上下文、父级、值、事件、valueUpdater 等参数时遇到了一些问题

如何将Javascript 中的上下文、父级、值、事件、valueUpdater参数传递给 gwt-java 方法?

在我的onmodule中我调用registerOnBrowserEventForDateTimePicker()并编写了以下方法:哪个错误,gwtc编译失败,请纠正我。

MyClass.java

public static native void registerOnBrowserEventForDateTimePicker()  /*-{       
                $wnd.callOnBrowserEventForDateTimePicker =$entry@ui.gwtmassupdateui.client.widgets.TimestampPickerCell::
                callOnBrowserEventForDateTimePicker(com/google/gwt/cell/client/Cell/Context,com/google/gwt/dom/client/Element,Ljava/lang/String,com/google/gwt/dom/client/NativeEvent,com/google/gwt/dom/client/NativeEvent);
    }-*/;

任何相同的示例代码或正确执行此操作的指针

4

1 回答 1

0

我会用另一个保存该方法上下文的匿名对象来做。像这样的东西:

private Runnable contextCall;

public void onBrowserEvent(final Context context, final Element parent, final String value,
        final NativeEvent event, final ValueUpdater<String> valueUpdater) { 
    contextCall = new Runnable() {
        public void run() {
            // my custom code is here
        }
    };

    contextCall.run();
}

public void callOnBrowserEventForDateTimePicker() {
    contextCall.run();
}
于 2013-02-07T11:27:23.753 回答