создавать собственные виджеты - PullRequest
0 голосов
/ 15 июля 2011

Как я могу создать виджет из Javascript.Например, мне нужно создать простую кнопку или таблицу.У меня есть некоторые javascript-скрипты, которые рисуют таблицы.Теперь, если я хочу создать виджет GWT с использованием этих JavaScript, что мне делать в первую очередь?Как другие фреймворки, такие как GWTExt, SmartGWT, используют собственные виджеты?Они начинают с нуля или повторно используют функциональность виджета GWT?Например, если я хочу создать одну таблицу в своем собственном стиле, нужно ли мне наследовать таблицу GWT? Кто-нибудь может привести один пример или пример кода, как создать виджет из JavaScript?Если мои вопросы неверны, пожалуйста, извините.

пример:

Mytable table = new Mytable (2,3).тогда он должен нарисовать мою собственную таблицу с 2 столбцами и 3 строками

Ответы [ 2 ]

3 голосов
/ 15 июля 2011

Вы задаете много вопросов здесь.В вашем случае вы должны создать столько вопросов, сколько у вас есть отметок в исходном сообщении.

Что касается вашего первого вопроса, посмотрите на JSNI .

Редактировать:Так окрас дал вам несколько ссылок, чтобы посмотреть.Со своей стороны, я попытаюсь помочь с вашим примером использования JSNI (потому что вы спрашивали о привязке ваших существующих js к GWT).

Допустим, у вас есть MyTable, определенный как

<script type="text/javascript">
    MyTable = function(a,b){
        this.a = a;
        this.b = b;
    };
</script>

и ваш js-файл называется mytable.js

Теперь нам нужно, чтобы это был компонент.В вашем файле .java в проекте библиотеки GWT создайте такой класс:

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>

Вот и все.Я мог бы что-то забыть, но вы можете сослаться на любой проект ОСС, который делает то же самое, что вам нужно.Например, взгляните на swfupload-gwt исходный код проекта.

1 голос
/ 15 июля 2011

Вот документация, как создавать собственные виджеты . К сожалению, они в основном говорят о создании составных виджетов из существующих. Но для создания с нуля они предлагают либо писать на Java, так как их Button создается - вот Исходный код кнопки для справки. Для виджетов в JS предлагается исходный код для TextBox .

Вот еще одна статья о создании виджетов: http://davidmaddison.blogspot.com/2009/01/creating-gwt-component.html

...