2015-07-20 2 views
0

Почему BrowserFunction не выполняет мой Javascript-код?BrowserFunction не выполняет код «JavaScript»

Java код:

public void createBrowserFunctions() { 
    new BrowserFunction(mapView_Browser, "appi") { 
     public Object function(Object[] arguments) { 
      syncCenter((Double) arguments[0], (Double) arguments[1]); 
      syncZoom((Double) arguments[2]); 
      syncRotation((Double) arguments[3]); 
      return null; 
     } 
    }; 
} 

private void syncCenter(final Double latitude, final Double longitude) { 
    LatLng newCenter = new LatLng(latitude.doubleValue(), longitude.doubleValue()); 
    CENTER = newCenter; 
    fireCenterChanged(); 
} 

private void syncZoom(final Double zoom) { 
    int newZoom = zoom.intValue(); 

    if (newZoom != this.ZOOM) { 
     this.ZOOM = newZoom; 
     fireZoomChanged(); 
    } 
} 

private void syncCenter(final Double latitude, final Double longitude) { 
    LatLng newCenter = new LatLng(latitude.doubleValue(), longitude.doubleValue()); 
    CENTER = newCenter; 
    fireCenterChanged(); 
} 

JavaScript код:

window._handleBoundsChanged = function() { 
    if(!_blockEvents) { 
    appi(10, 15, 20, 32); 
    } 
}; 

Журналы консоли во время исполнения "_handleBoundsChanged();" :

osgi> !SESSION 2015-07-20 08:34:10.848 ----------------------------------------------- 
eclipse.buildId=unknown 
java.version=1.8.0_45 
java.vendor=Oracle Corporation 
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=pl_PL 
Command-line arguments: -dev 

!ENTRY org.eclipse.rap.ui 4 0 2015-07-20 08:34:21.540 
!MESSAGE Unhandled event loop exception 
!STACK 0 
org.eclipse.swt.SWTException: Failed to evaluate Javascript expression 
    at org.eclipse.swt.browser.Browser.createException(Browser.java:606) 
    at org.eclipse.swt.browser.Browser.evaluate(Browser.java:344) 
    at hc.tool.mapviewer.rap.OLMap.setZoom(OLMap.java:67) 
    at hc.tool.mapviewer.rap.View$1.widgetSelected(View.java:58) 
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:262) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:708) 
    at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:610) 
    at org.eclipse.swt.widgets.Display.executeNextEvent(Display.java:1216) 
    at org.eclipse.swt.widgets.Display.runPendingMessages(Display.java:1197) 
    at org.eclipse.swt.widgets.Display.safeReadAndDispatch(Display.java:1180) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1172) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2733) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2694) 
    at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:2530) 
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:701) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:684) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:157) 
    at hc.tool.mapviewer.rap.Application.start(Application.java:18) 
    at org.eclipse.rap.ui.internal.application.EntryPointApplicationWrapper.createUI(EntryPointApplicationWrapper.java:38) 
    at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:171) 
    at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:283) 
    at java.lang.Thread.run(Unknown Source) 
    at org.eclipse.rap.rwt.internal.lifecycle.UIThread.run(UIThread.java:104) 

Я готов метод при условии данных из JavaScript в Java. Я рассчитываю на вашу помощь, спасибо.

ответ

0

Оценка не срабатывает при Browser:344, после того как OLMap:67 называется. Вы должны копаться в этих двух местах, чтобы увидеть, что происходит.

Я готов поспорить, что OLMap:67 ваш function(Object []), и что конечной причиной является то, что вы пытаетесь бросить Object (возможно, своего рода JSObject) для Java Double без какого-либо преобразования.

Смежные вопросы