我已经完成了使用 UiBinder 的教程,并尝试使用教程最后一节中提到的 LazyPanel。
在我看来,该教程似乎暗示只需将一个元素包装在一个 LazyPanel 中就足以使这件事发挥作用。但是,当我尝试编译和运行这个项目时,GWT 编译器会抱怨并告诉我
Rebind result 'com.google.gwt.user.client.ui.LazyPanel' cannot be abstract
如何使用 UiBinder 使用 LazyPanel?我的配置有问题还是我缺少什么?
我正在使用 GWT 2.4(这是 AFAIK 最新的稳定版本)。
--
编辑:这是我正在使用的 XML:
<?xml version="1.0" encoding="UTF-8"?>
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:s="urn:import:de.dfv.yankee.client.tabs.start"
xmlns:b="urn:import:de.dfv.yankee.client.tabs.bewerber" xmlns:f="urn:import:de.dfv.yankee.client.tabs.firmen"
xmlns:k="urn:import:de.dfv.yankee.client.tabs.kommunikation" xmlns:a="urn:import:de.dfv.yankee.client.tabs.admin"
xmlns:v="urn:import:de.dfv.yankee.client.tabs.abrechnung" xmlns:u="urn:import:de.dfv.yankee.client.tabs.user"
xmlns:svg="urn:import:org.vectomatic.dom.svg.ui">
<ui:with field="svgBundle" type="de.dfv.yankee.client.tabs.Tabs.SVGBundle" />
<g:TabLayoutPanel barUnit="PX" barHeight="30"
ui:field="tabs">
<g:tab>
<g:header>Start</g:header>
<s:StartTab ui:field="startTab" />
</g:tab>
<g:tab>
<g:header>Bewerber</g:header>
<b:BewerberSucheTab ui:field="bewerberSucheTab" />
</g:tab>
<g:tab>
<g:header>Bewerber Ergebnis</g:header>
<g:HTMLPanel>
<svg:SVGImage ui:field="svgImage" resource="{svgBundle.plz}" />
</g:HTMLPanel>
</g:tab>
<g:tab>
<g:header>Firmen</g:header>
<g:LazyPanel>
<f:FirmenSucheTab ui:field="firmenSucheTab" />
</g:LazyPanel>
</g:tab>
<g:tab>
<g:header>Firma Ergebnis</g:header>
<g:HTMLPanel>
</g:HTMLPanel>
</g:tab>
<g:tab>
<g:header>Kommunikation</g:header>
<k:KommunikationsTab ui:field="kommunikationsTab" />
</g:tab>
<g:tab>
<g:header>Abrechnung</g:header>
<v:VermittlungenTab ui:field="vermittlungenTab" />
</g:tab>
<g:tab>
<g:header>Userverwaltung</g:header>
<u:UserTab ui:field="userTab" />
</g:tab>
<g:tab>
<g:header>Admin</g:header>
<a:AdminTab ui:field="adminTab" />
</g:tab>
</g:TabLayoutPanel>
</ui:UiBinder>