FlexTable与Uibinder或替代品

时间:2014-04-14 12:12:22

标签: java google-app-engine gwt uibinder

使用flextable与uiBinder合作的最佳方式是什么,我已经知道我必须提供它并启动它initWidget

@UiField(provided = true) FlexTable contentTable;

但我只需要一个表格作为输入矩阵,如:

pseudo:

 Label."Name: " TextBox() 
 Label."Password: " TextBox() 

知道甚至考虑FlexTable还是有更好的Alternativ是个好主意? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

我会传递一个事实,即使用表格进行表单布局不是最好的选择,也不是一个好的做法。

您可以在UiBinder上使用HTMLPanel,并像在“普通”页面中那样在HTML中执行所有操作,并为小部件添加一些额外的GWT标记:

<g:HTMLPanel>
   <div class="formInput">
      <g:Label text="First Name - W3C style : ">
      <g:TextBox ui:field="firstNameTextBox">
   </div>


   <table>
     <tbody>
        <tr>
            <td>Last name - table style :</td>
            <td><g:TextBox ui:field="lastNameTextBox" /></td>
        </tr>
        <tr>
            <!-- Other form fields -->
        </tr>
     </tbody>
   </table>
</g:HTMLPanel>

答案 1 :(得分:0)

如果你只想要一个表来显示输入表单,我会考虑使用纯HTML小部件,混合GWT小部件,如下所示。

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
         xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:style>

</ui:style>
<g:HTMLPanel>
    <table>
        <tr>
            <td>Name:</td>
            <td>
                <g:TextBox ui:field="name"/>
            </td>
        </tr>
        <tr>
            <td>Password</td>
            <td>
               <g:PasswordTextBox ui:field="password"/>
            </td>
        </tr>
    </table>
   </g:HTMLPanel>
 </ui:UiBinder> 

首选FlexTable以显示数据或可编辑数据。因为显示这些类型的信息真的很快。从我所看到的,过度使用小部件会减慢应用程序的速度。