我想继承(扩展)Modal widget from GWTBootstrap3来创建一个可以在我的应用程序中重用的自定义模式小部件。使用UiBinder时我不知道如何做到这一点。我只能通过创建ModalHeader,ModalBody和ModalFooter并使用add(Widget)方法添加它们来在java代码中完成。
但是如何使用UiBinder作为我的子类呢?
答案 0 :(得分:0)
您可以在UiBinder代码中使用自定义小部件。这就是你要做的吗?只需将自定义窗口小部件所在的包导入单独的命名空间即可。假设小部件 WeatherReport 位于包 com.my.app.widgets 中,并且您要使用的命名空间是 my ,导入看起来像这样:
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:my="urn:import:com.my.app.widgets">
现在您可以在UiBinder代码中添加 WeatherReport 对象,如下所示:
<g:HTMLPanel>
<my:WeatherReport ui:field="weather" />
</g:HTMLPanel>
有关详细信息,请参阅official GWT documentation。
在UiBinder中使用 ModalHeader , ModalBody 等工作方式相同。导入相应的包并使用组件,这是一个简单的例子:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:b="urn:import:org.gwtbootstrap3.client.ui">
<b:ModalBody>
<b:Row>
<b:Column size="MD_12">
<b:Input ui:field="passwordInput" type="PASSWORD" />
</b:Column>
</b:Row>
<b:ModalFooter">
<b:Button ui:field="saveButton" text="Save" type="PRIMARY" />
<b:Button ui:field="cancelButton" text="Cancel" />
</b:ModalFooter>
</b:ModalBody>
</ui:UiBinder>