2012-02-22 71 views
4

我想在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. 我忘記什麼做的還是什麼,我做錯了什麼?對任何幫助感到高興。謝謝

+0

Сonnector不需要創建? – Alex78191 2018-02-28 12:22:29

回答

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中定義要使用這個視窗元件:

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

完成這些步驟後,GWT編譯應該可以工作。

1

什麼是包聲明?

在擴展客戶端組件,客戶端類應在

yourpackage.widgetset.client.ui

編譯時,這個包掃描,以發現任何部件並將其添加到您的視窗元件。

然後你必須修改你的web.xml來改變init-param標籤。

這裏一BREF簡歷,以幫助您:Creating a widget