Расширение виджета Vaadin - PullRequest
4 голосов
/ 22 февраля 2012

Я пытаюсь расширить компонент дерева в Vaadin.Итак, я создал клиентский класс как:

import com.vaadin.terminal.gwt.client.ui.VTree;
public class CustomVtree extends VTree {
}

Серверный класс:

import com.vaadin.ui.ClientWidget;
import com.vaadin.ui.Tree;
@ClientWidget(CustomVtree.class)
public class MyTree extends Tree {
    public MyTree() {
        super();
    }
}

И я получил [WARN] Widget class com.vaadin.sample.gwt.client.ui.CustomVtree was not found. The component com.vaadin.sample.gwt.client.ui.MyTree will not be included in the widgetset. Что я забыл сделать или что я делаю неправильно?Будем рады любой помощи.Спасибо

Ответы [ 2 ]

6 голосов
/ 23 февраля 2012

Ваши классы выглядят правильно, но отсутствует одна вещь: файл дескриптора модуля GWT.Добавьте этот файл в пакет com.vaadin.sample.gwt, и здесь я называю его MyWidgetset.gwt.xml.Содержимое файла должно выглядеть следующим образом, если в вашем проекте нет надстроек:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
<module>
    <inherits name="com.vaadin.terminal.gwt.DefaultWidgetSet" />
</module>

И затем вам нужно определить в файле web.xml, что вы хотите использовать этот набор виджетов.:

<init-param>
    <description>Application widgetset</description>
    <param-name>widgetset</param-name>
    <param-value>com.vaadin.sample.gwt.MyWidgetset</param-value>
</init-param>

После этих шагов должна работать компиляция GWT.

1 голос
/ 23 февраля 2012

Что такое декларация пакета?

При расширении клиентского компонента класс на стороне клиента должен в

yourpackage.widgetset.client.ui

При компиляции этот пакет сканируется, чтобы найти любой виджет и добавить его в ваш набор виджетов.

Затем вам нужно изменить свой web.xml, чтобы изменить тег init-param.

Вот краткое резюме, чтобы помочь вам: Создание виджета

...