Как да извикам onBrowserEvent() на EditTextCell програмно от Javascript?

Как да се извика onBrowserEvent на EditTextCell програмно от Javascript?

Заменям onBrowserEvent в моя customEditTextCell, който се извиква, когато потребителят щракне върху клетка. Искам да се обадя и от друго събитие.

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

Когато щраквам върху клетка, се извиква горният метод и се отваря 1 изскачащ прозорец на jQuery (избор). На jQuery присъства изскачащ бутон Готово.

При щракване върху бутона Готово искам да извикам горния метод gwt-java, как да го направя?

Знам, че можем да извикаме java-gwt метод от Javascript, но се сблъсквам с някакъв проблем, докато предавам параметър като контекст, родител, стойност, събитие, valueUpdater

Как да предам параметър контекст, родител, стойност, събитие, valueUpdater от Javascript към gwt-java метод?

В моя onmodule извиках registerOnBrowserEventForDateTimePicker() и написах следния метод: кое грешно, gwtc компилацията е неуспешна, моля, поправете ме.

MyClass.java

public static native void registerOnBrowserEventForDateTimePicker()  /*-{       
                $wnd.callOnBrowserEventForDateTimePicker [email protected]::
                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);
    }-*/;

Всеки примерен код за същото или указатели, за да го направите правилно


person StackOverFlow    schedule 26.01.2013    source източник
comment
Така че всъщност искате да извикате отново същия метод със същите параметри от вашия jquery код? Иначе не разбирам въпроса ти.   -  person bogdan.mustiata    schedule 05.02.2013
comment
@bogdan.mustiata Да, искам да извикам отново същия метод, със същите параметри от вашия jquery код. със същия контекст   -  person StackOverFlow    schedule 07.02.2013


Отговори (1)


Бих го направил с друг анонимен обект, който съдържа контекста за метода. Нещо като това:

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();
}
person bogdan.mustiata    schedule 07.02.2013