Is it possible to reuse GWT UIBinder panels?
我在 Google Web Toolkit 中有一个使用 UIBinder 涉及
我现在需要创建一个新布局,使用这些选项卡的一个子集(例如,对于普通用户)。
是否可以在我的用户布局中从我的管理布局中导入面板?或者也许将它们全部定义在第三个文件中,然后从两个布局中导入?
您绝对可以将您编写的视图(包括 UIBinder 模板和常规
来自 UIBinder 文档:
1 2 3 4 5 6 7 8 9 10 11 | <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' > <g:HTMLPanel> <my:WeatherReport ui:field='weather'/> <my:Stocks ui:field='stocks'/> <my:CricketScores ui:field='scores' /> </g:HTMLPanel> </ui:UiBinder> |
注意
您不一定需要这样做只是为了根据用户权限显示/隐藏选项卡,您可以根据访问级别在 GWT 代码中显示/隐藏选项卡。
将每个选项卡内容定义为单独的 UiBinder 模板。由于 UiBinder 类是复合类,因此您可以将它们添加到任何容器中,就像任何其他小部件一样。
您可以通过将每个 UiBinder 模板对象添加到 TabPanel 中的选项卡中来在代码中组装您的 TabLayoutPanel,或者定义另一个带有 TabPanel 和定义的选项卡的 UiBinder 模板。
如果您使用 UiBinder 路由来模板化 TabLayoutPanel,请通过定义一个指向所有组合所在的包的新 \\'namespace\\' 将选项卡面板内容(您之前使用 UiBinder 定义的组合)导入 UiBinder。然后,您在 UiBinder 模板中将您的组合称为 namespace:ClassName。
if
您将 UiBinder 中的单个组合称为
1 2 | <f:Composite1 /> <f:Composite2 /> |