标签: uibinder

ClientBundle用于多个"主题"

我们有一个Web应用程序,每个主要客户端都需要不同的主题.原始开发人员通过查看javascript中的URL并添加样式表来覆盖默认主题来完成此操作.

这方面的一个问题是网站默认查看几秒钟然后突然切换到正确的主题.另一个原因是它似乎浪费了大量的带宽/时间.

我目前的想法是使用我们的默认外观创建一个"默认" ClientBundle,并使用@ImageResouce等各种注释并指向不同的位置,使用客户端的图像覆盖每个条目(根据需要).

有没有人有这方面的经验?我认为的一个问题是无法使用uibinder样式标记,因为它们静态地指向特定的资源包.

有任何想法吗?

gwt uibinder clientbundle

8
推荐指数
1
解决办法
2611
查看次数

将GWT中的ui:field映射到生成的代码

我正在尝试在GWT应用程序上进行一些自动UI测试,而我却无法找到跟踪UI元素的方法.

例如,我有以下内容:

<g:Button text="Submit" ui:field="submitButton" enabled="true" />
Run Code Online (Sandbox Code Playgroud)

产生:

<button class="gwt-Button" type="button">Submit</button>
Run Code Online (Sandbox Code Playgroud)

设置ui:field和id都是编译器错误(无论如何都认为id已被弃用)所以问题是我没有简单的方法来使用像selenium这样的东西来选择我的提交按钮.

有谁知道我可以映射的方式

ui:field="sumbitButton"
Run Code Online (Sandbox Code Playgroud)

生成的HTML?

gwt uibinder

7
推荐指数
1
解决办法
3013
查看次数

在UIBinder中居中GWT元素

我试图将一个TabLayoutPanel置于一个uibinder中,并且没有任何运气.正如你在下面看到的,我已经尝试了我能想到的每一个CSS技巧.有人可以帮忙吗?

<ui:style>

    .gwt-TabLayoutPanel {
        vertical-align: middle;
        text-align: center;
        margin-left: auto;
        margin-right: auto;
        border-top: 1px solid #666;
        border-left: 1px solid #999;
        border-right: 1px solid #666;

    }
</ui:style>

<g:VerticalPanel ui:field="userInterfacePanel" width="100%">
    <mapmaker:MapBox ui:field="mapBox"/>
    <g:TabLayoutPanel barHeight="20" ui:field="interfaceTabs" height="300px" width="80%" >
        <g:tab>
            <g:header>Lines</g:header>
            <g:Label>Select Line Data Here</g:Label>
        </g:tab>
        <g:tab>
            <g:header>Features</g:header>
            <g:Label>Select Features Data Here</g:Label>
        </g:tab>
        <g:tab>
            <g:header>Help</g:header>
            <g:Label>Help goes here</g:Label>
        </g:tab>
    </g:TabLayoutPanel>
    <g:HorizontalPanel>
        <g:Button>Generate KML</g:Button>
        <g:Button>Generate Shapefile</g:Button>
    </g:HorizontalPanel>
</g:VerticalPanel>
Run Code Online (Sandbox Code Playgroud)

gwt uibinder

7
推荐指数
2
解决办法
1万
查看次数

如何禁用GWT ValueListBox?

ValueListBox没有实现HasEnabled接口,所以我无法禁用/启用它.

虽然ListBox实现了HasEnabled,但是方法getListBox在ValueListBox中是私有的.所以我无法得到内部列表框,禁用它.

谁知道如何解决这个问题?提前致谢.

gwt uibinder

7
推荐指数
1
解决办法
2781
查看次数

GWT UiBinder中的FlowPanel与HTMLPanel

使用UiBinder时,创建这样的简单布局的首选方法是什么?

FlowPanel:

<!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'>
  <ui:style>
    .outer {
      display: table;
      height: 100%;
      width: 100%;
    }
    .inner {
      background: #DDD;
      display: table-cell;
      vertical-align: middle;
    }
  </ui:style>
  <g:FlowPanel styleName="{style.outer}">
    <g:FlowPanel styleName="{style.inner}">
      <g:Label ui:field="someLabel"/>
    </g:FlowPanel>
  </g:FlowPanel>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)

HTMLPanel:

<!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'>
  <ui:style>
    .outer {
      display: table;
      height: 100%;
      width: 100%;
    }
    .inner {
      background: #DDD;
      display: table-cell;
      vertical-align: middle;
    }
  </ui:style>
  <g:HTMLPanel styleName="{style.outer}">
    <div class="{style.inner}">
      <g:Label ui:field="someLabel"/>
    </div>
  </g:HTMLPanel>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)

编辑:我知道他们在渲染时会生成相同的html,我想知道是否有任何理由使用一种风格而不是另一种风格.

javadocs说FlowPanel是最简单的面板,但在什么时候使用HTMLPanel变得更好.例如

<FlowPanel>
  <FlowPanel> …
Run Code Online (Sandbox Code Playgroud)

gwt uibinder

7
推荐指数
1
解决办法
2万
查看次数

覆盖gwt DockLayoutPanel小部件的溢出

我正在创建一个左侧带有导航菜单的页面,其中包含每个部分的图标.页面布局如下所示:

  <g:DockLayoutPanel unit="PX">
    <g:west size="55"><g:SimplePanel ui:field="navigation" /></g:west>
    <g:center>
      <g:ScrollPanel>
        <g:Whatever ui:field="content" />
      </g:ScrollPanel>
    </g:center>
  </g:DockLayoutPanel>
Run Code Online (Sandbox Code Playgroud)

悬停在导航栏的每个图标上应该显示包含项目标题和一些子项目的气球.我通过CSS实现了效果,为每个气球提供了相对于其图标的位置.

g:west元素呈现为

<div style="
    position: absolute;
    overflow: hidden;
    left: 0px;
    top: 0px;
    bottom: 0px;
    width: 55px; ">
Run Code Online (Sandbox Code Playgroud)

我的问题是overflow: hidden.

如何告诉DockLayoutPanel西方元素溢出中心元素是否可以?

编辑: 我找到了一个非常可靠的解决方法

navigation.getElement().getParentElement().getParentElement().getStyle()
    .setOverflow(Overflow.VISIBLE);
Run Code Online (Sandbox Code Playgroud)

有没有人知道一个不混淆HTML元素的解决方案?

css gwt overflow uibinder docklayoutpanel

7
推荐指数
1
解决办法
2752
查看次数

GWT表达层:谁做了什么?

我正在学习GWT并尝试围绕所有UI选项.我正在尝试了解何时/何地/如何使用Widgets,UIBinder,GWT Designer和自定义小部件.特别:

  • GWT Designer生成什么作为输出?UIBinder XML?可以肯定地说,当您不想手动编写UIBinder XML时,可以使用GWT Designer,但是它们都可以用于相同的目的吗?
  • 何时使用UIBinder而不是Widgets?Widgets是否被翻译成UIBinder XML,但是它们中有更多的代码(事件处理等)?在这种情况下,我会假设 UIBinder XML的优势是代码更少,性能更快?在两者之间进行选择时应考虑的其他因素是什么?
  • 您是否编写了大量UIBinder XML"代码段"或将它们全部打包成一个大的单片XML文件?
  • 为了制作我自己的自定义组件,扩展com.google.gwt.user.client.ui.*com.google.gwt.user.client.ui.Composite?之间的区别是什么?
  • 分工:Widgets/UIBinder vs. Layouts vs CSS文件:谁做了什么?

对我而言,我觉得所有这些事情都做同样的事情,也许这只是GWT为您提供多种方式来完成演示的方式?如果没有,请在这些项目上纠正我.

java gwt widget uibinder gwt-designer

7
推荐指数
1
解决办法
1182
查看次数

GWT中的UIBinder

我试图了解GWT中的UIBinder概念.我在网上浏览了几个教程.这是我的问题:

1)为什么一个人想要使用UIBinder?是不是因为我们会编写更少的代码并开发,就像我们直接编写javascript一样?

2)使用UiBinder是否可以通过GWT无法完成任何操作,反之亦然?

我通过这个链接提供了相同的直接讨论.还有其他要点或建议吗?

提前致谢.

gwt uibinder

7
推荐指数
1
解决办法
4837
查看次数

GWT:UiBinder中的菜单

我想在GWT 2.0中通过UiBinder使用声明方法实现菜单(MenuBar,MenuItem).

我遇到了两个问题:

  1. 有没有办法在.ui.xml文件中添加MenuItemSeparators?到目前为止,我只设法将MenuBar-和MenuItem-tags放入文件中.

  2. 使用@UiHandler,GWT为我编写事件处理程序的样板代码.对于菜单,我需要编写命令.我怎么能用UiBinder方法做到这一点?是否有一个命令标记放在.ui.xml文件中?我是否必须自己编写命令处理程序的样板代码?

感谢您思考这些问题!

gwt uibinder

6
推荐指数
1
解决办法
1万
查看次数

将uibinder与SmartGWT配合使用?

可以将UiBinder与SmartGWT一起使用吗?我听说目前这是不可能的,尽管有努力缩小差距.这些努力如何?他们取得了成功吗?

此外,如果SmartGWT还不是UiBinder友好的,那么还有其他任何GWT库吗?也许是ext-GWT?

gwt smartgwt uibinder

6
推荐指数
1
解决办法
1890
查看次数