扩展Vaadin小部件

时间:2012-02-22 18:26:32

标签: java widget vaadin

我正在尝试在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 个答案:

答案 0 :(得分:6)

您的类看起来正确但缺少一件事: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中定义你想要使用这个widgetset:

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

完成这些步骤后,GWT编译应该有效。

答案 1 :(得分:1)

什么是包裹声明?

扩展客户端组件时,客户端类应该在

yourpackage.widgetset.client.ui

编译时,此软件包会扫描以找到任何小部件并将其添加到您的widgetset。

然后你必须修改你的web.xml来改变init-param标签。

这里有一条简历来帮助您:Creating a widget