代码之家  ›  专栏  ›  技术社区  ›  toomanyairmiles

GWT面板类型的问题

  •  0
  • toomanyairmiles  · 技术社区  · 15 年前

    我目前正在尝试为GWT应用程序创建一个符合w3c标准的HTML/CSS接口,这很大程度上取决于在正确的位置使用正确类型的面板,而不是使用嵌套的水平和垂直面板在UI中写出表。

    我在GWT完全是一个n00b,不明白为什么替换下面代码中的顶部垂直面板会导致应用程序停止工作。任何用户界面编码资源,任何类型的建议将非常感谢。

    <g:VerticalPanel>
        <g:FormPanel ui:field="loginFormPanel" action="/cms/j_acegi_security_check.rpc" >
          <g:HTMLPanel>     
    
              <g:Label ui:field="signinLabel" styleName="{style.signinStyle}">
                <ui:msg key="signInText">Welcome to Perform CMS</ui:msg>
              </g:Label> 
    
    
    
              <g:Label ui:field="emailLabel" styleName="{style.loginFontStyle}">
                <ui:msg key="emailAddress">Email adress</ui:msg>
                address
              </g:Label>  
    
                <g:TextBox ui:field="email" name="j_username" styleName="{style.loginTextBoxStyle}"/>
    
                <g:Label styleName="{style.fontStyle}" ui:field="usernameError"/>
    
              <g:Label ui:field="passwordLabel" styleName="{style.loginFontStyle}">
                <ui:msg key="password">Password</ui:msg>
              </g:Label>         
    
                <g:PasswordTextBox ui:field="password" name="j_password" styleName="{style.loginTextBoxStyle}"/>
    
                <g:Label styleName="{style.fontStyle}" ui:field="passwordError"/>
    
    
            <g:HTMLPanel ui:field="submitPanel">
                <g:HTMLPanel ui:field="submitButtonPanel" styleName="{style.buttonPanelStyle}">
                  <g:Image url="/cms/images/new_button_search_left.png" styleName="{style.image}"></g:Image>
                  <g:Label ui:field="signIn" styleName="{style.submitLabelStyle}">
                    <ui:msg key="signIn">Sign in</ui:msg>
                  </g:Label>
                  <g:SubmitButton styleName="{style.hide}">Submit</g:SubmitButton> 
                  <g:Image url="/cms/images/new_button_search_right.png" styleName="{style.image}"></g:Image>
                </g:HTMLPanel>
            </g:HTMLPanel>
    
    
            <g:HTMLPanel ui:field="submitErrorsPanel" styleName="{style.submitErrorPanel}">
    
              <g:Label styleName="{style.fontStyle}" ui:field="submitErrorMessages"/>
            </g:HTMLPanel>
    
    
          </g:HTMLPanel>
        </g:FormPanel> 
        <g:HTMLPanel ui:field="loginSuccessPanel" styleName="{style.hide}">
          <g:Label styleName="{style.fontStyle}" ui:field="loginSuccessMessageLabel"/>
       </g:HTMLPanel>
      </g:VerticalPanel>
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   Igor Klimer    15 年前

    你不会说你的应用程序是如何停止工作的,但是GWT编译器会为你的项目中指定的每个用户代理生成不同的JSgwt.xml文件. 默认情况下,您的程序可能有5到6个不同的版本,正确的版本在运行时决定。这些版本的存在是因为浏览器中没有W3C合规性。一个浏览器可能比其他浏览器更接近,但所有浏览器都有自己的怪癖,GWT试图将其隐藏起来。

    位于根目录下的GWT垂直面板通常会变成一个表,每个子级都是一行中的一个单元格。注意,XML中仍然需要根元素,但它可以是流或html面板。从垂直面板更改可能会导致子元素横向流动或执行其他奇怪的操作。如果你想让他们保持垂直,你可以扔一个 <br> 它们之间,或样式的封闭 <div> .

    对于布局问题,最好的方法是在浏览器中安装一个工具,允许您检查DOM。例如,Firefox有Firebug,IE有IE开发者工具栏,Opera有开发者控制台等等。你可以选择错误元素,查看它在层次结构中的位置以及应用于该元素的样式。Firebug甚至可以让您实时调整样式,这对于现场实验非常方便。