让我们假设我们有两个用UiBinder构建的页面。 UiBinder文件可以类似于:
<g:HTMLPanel> <g:FlowPanel styleName="{resourceBundle.loginCss.login}"> <g:FlowPanel styleName="{resourceBundle.loginCss.majorLoginBox}"> <g:FlowPanel styleName="{resourceBundle.loginCss.loginTop}"/> <g:FlowPanel styleName="{resourceBundle.loginCss.loginContent}"> <g:LazyPanel ui:field="inputPanel"> <g:FlowPanel styleName="{resourceBundle.loginCss.loginForm}" addStyleNames="{style.resetPasswordForm}"> <g:Label text="{localization.forgotpassword_form_header}" styleName="{resourceBundle.loginCss.loginFormHeader}"/> <g:Label text="{localization.login_username}"/> <g:TextBox ui:field="username" inputMaxLength="64"/> <g:Label ui:field="validationError" styleName="{resourceBundle.css.errorText}"/> <g:Anchor ui:field="sendButton" text="{localization.forgotpassword_send}" styleName="{resourceBundle.loginCss.loginButton}"/> </g:FlowPanel> </g:LazyPanel> <g:LazyPanel ui:field="messagePanel" visible="false"> <g:Label ui:field="messageLabel"/> </g:LazyPanel> </g:FlowPanel> </g:FlowPanel> </g:FlowPanel> </g:HTMLPanel>
一般来说,那里的东西并不重要,只是一个例子。当然,有两个java类对应于这些UiBinder文件。因此,很明显,从java类中我可以将常用部分提取到一些抽象类中。
是否可以为UiBinder文件执行此操作?怎么样?的
答案 0 :(得分:1)
公共部分可以是具有自己的UiBinder文件的Composite widget。然后,您只需将此窗口小部件插入其他UiBinder文件即可。例如,如果w
指向您的小部件库:
<g:HTMLPanel>
...
<w:MyWidget>
...
</g:HTMLPanel>