jsni呼び出しgwt関数非静的


package com.my120.client;

import com.google.gwt.core.client.EntryPoint;

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class UiGWT implements EntryPoint {
	@Override
	public void onModuleLoad() {
		registerGwtFunction();
	}
	
	public native void registerGwtFunction()/*-{
		$wnd.getRoot = @com.google.gwt.user.client.ui.RootPanel::get(Ljava/lang/String;);
		$wnd.callInGwt = function(str){
			var top = [email protected]::getAbsoluteTop()();
			return top;
		}
	}-*/;
};

 
<!doctype html>
<!-- The DOCTYPE declaration above will set the     -->
<!-- browser's rendering engine into                -->
<!-- "Standards Mode". Replacing this declaration   -->
<!-- with a "Quirks Mode" doctype is not supported. -->

<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="uigwt/uigwt.nocache.js"></script>
    <script type="text/javascript">
    	window.onload = function(){
    		var button = document.getElementById("button1");
    		button.onclick = function(){
    			var root = window.getRoot("button1");
    			var abs = window.callInGwt(root);
    			alert(abs);
    		}
    	}
    </script>
  </head>

  <!--                                           -->
  <!-- The body can have arbitrary html, or      -->
  <!-- you can leave the body empty if you want  -->
  <!-- to create a completely dynamic UI.        -->
  <!--                                           -->
  <body>
   <button id="button1">sdfsdf</button>
  </body>
</html>