2011-07-15 121 views
0

如何从Javascript创建小部件。例如,我需要创建一个简单的按钮或表。我有一些第三方的 JavaScripts绘制表格。现在,如果我想通过使用这些JavaScript创建GWT小部件,我应该先做些什么? GWTExt,SmartGWT等其他框架如何使用自定义小工具?他们是从零开始还是重用GWT小部件功能?如果我想用我自己的风格创建一个表,我需要继承GWT表吗?任何人 给出一个示例或示例代码如何从javascript创建一个小部件?如果我的问题不对,请原谅。创建自定义小部件

例如:

MyTable表=新MyTable的(2,3)。那么它应该绘制2列3行的我自己的表格

回答

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项目源代码。

+0

好的。抱歉。我刚才解释道。所以它就成了问题的迷失。我修改了。请最后一行。这是我的要求。 – user414967

+0

@ user414967我写过如何使用JSNI实现它的例子。如果您已经拥有一个具有清晰API的库并且您不想从地面编写GWT版本,那么这种方法非常有用。或者,如果这是第三方JavaScript库。否则,我会建议从头创建您的库,并查看@okrasz提供的参考。 – oddy

+0

嗨非常感谢这么好的努力.. – user414967

1

这里是如何create custom widgets的文档。不幸的是,他们主要讨论的是从现有的创建复合小部件。但是为了从头创建它们,他们建议在创建按钮时使用Java编写 - 这里是Button source code以供参考。对于JS中的小部件,他们建议source code for TextBox

这里还有一篇关于创建小部件的文章:http://davidmaddison.blogspot.com/2009/01/creating-gwt-component.html

+0

嗨,谢谢okraz .. – user414967