2011-07-15 119 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