如何从Javascript创建窗口小部件。例如,我需要创建一个简单的按钮或表。我有一些第三个问题 绘制表格的javascripts。现在如果我想通过使用那些javascript创建GWT小部件我应该先做什么? 像GWTExt,SmartGWT这样的其他框架如何使用自定义小部件?他们是从头开始还是重用它们 GWT小部件功能?就像我想以自己的风格创建一个表一样,我是否需要继承GWT表?可以任何人 举一个例子或示例代码如何从javascript创建一个小部件?如果我的问题有误,请原谅。
示例:
Mytable table = new Mytable(2,3)。然后它应该绘制我自己的表,其中包含2列和3行
答案 0 :(得分:3)
你在这里问了很多问题。在您的情况下,您应该创建尽可能多的问题,以便在原始帖子中有qustion标记。
关于第一个问题,请查看JSNI。
编辑:所以okrasz给了你一些参考资料。从我这边开始,我将尝试使用JSNI来帮助您的示例(因为您要求将现有的js绑定到GWT)。
假设您将MyTable
定义为
<script type="text/javascript">
MyTable = function(a,b){
this.a = a;
this.b = b;
};
</script>
并且您的js文件名为mytable.js
现在,我们需要将它作为一个组件。在GWT库项目的.java文件中创建一个这样的类:
public class MyTable extends JavaScriptObject {
protected MyTable(){}
public static native MyTable create(double a, double b) /*-{
return new MyTable(a,b);
}-*/;
public final native double getA() /*-{
return this.a;
}-*/;
public final native double getB() /*-{
return this.b;
}-*/;
}
将原始js文件添加到资源中,并将script
节点添加到gwt.xml
模块中,如下所示:
<module>
<inherits name="com.google.gwt.core.Core"/>
<script src="path/to/mytable.js"/>
<source path="client"/>
<public path="public"/>
</module>
这就是它。我可能会忘记一些东西,但你可以参考任何你需要做同样事情的oss项目。例如,看一下swfupload-gwt项目源代码。
答案 1 :(得分:1)
以下是create custom widgets的文档。不幸的是,他们主要谈论从现有的小部件创建复合小部件。但是为了从头开始创建它们,他们建议在创建Button时用Java编写 - 这里是Button source code以供参考。对于JS中的小部件,他们建议source code for TextBox。
还有一篇关于创建小部件的文章:http://davidmaddison.blogspot.com/2009/01/creating-gwt-component.html