标签: uibinder

GWT:对多个页面使用相同的UI模板?

如何使用与从Composite扩展的多个Java对象相同的UI模板(*.ui.xml文件)?

我需要构建几个页面,这些页面应该以相同的布局显示基本相同的信息,但在一个页面上,某些字段将是可编辑的,而在另一个页面上,其他字段将是可编辑的.我想在ui.xml中只指定一次布局,并在不同的*.java类中创建不同的行为.

Eclipse给我一个语法错误"缺少FirstAppUI.ui.xml"

@UiTemplate("Template.ui.xml")
public class FirstAppUI extends Composite {
  interface FirstAppUIUiBinder extends
          UiBinder<Widget, FirstAppUI> {
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!简·普鲁萨科娃

eclipse gwt uibinder

4
推荐指数
1
解决办法
5607
查看次数

编译错误:在HTML上下文元素中找到窗口小部件

我已经看到了这个答案,但我无法看到自己的代码中可能出现的问题.这是我的uibinding xml:

<!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' xmlns:a='urn:import:com.google.gwt.app.client'>
    <ui:style field='iphone' src='Render.css' />        
<div id='iHeader'>
    <div
        style='display:block; opacity:1; -webkit-tranform:translate3d(0px, 0px, 0px);'>
        <a>
            <span id='waHeadTitle'
                style='display:block; -webkit-tranform:translate3d(0px, 0px, 0px);'>
                <g:HTML ui:field="title" />
            </span>
        </a>
    </div>
</div>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)

然后我收到错误消息:在HTML上下文元素中找到小部件 <g:HTML ui:field='title'>

gwt uibinder

4
推荐指数
1
解决办法
3217
查看次数

GWT UIBinder选项卡面板

我想在两个标签的标签面板主体内放一些锚点.但我的锚点不可见.代码如下

<g:TabLayoutPanel ui:field="lhsTabPanel" barUnit="PX" barHeight="60">
    <g:tab>
        <g:header>Analysis</g:header>
        <g:FlowPanel>
        <g:Anchor ui:field='personalInformation'>Personal Information</g:Anchor>
        </g:FlowPanel>
    </g:tab>
    <g:tab>
        <g:header>Comparison</g:header>
        <g:FlowPanel  ui:field="comparisonContent"/>                    
    </g:tab>                        
</g:TabLayoutPanel> 
Run Code Online (Sandbox Code Playgroud)

个人信息选项卡不可见

gwt uibinder gwt-tablayoutpanel

4
推荐指数
1
解决办法
9399
查看次数

在GWT UiBinder样式中访问CSS常量

使用GWT 2.1,我试图创建一个包含大量常量和常见样式的CSS文件.我想使用ui:style标签将其包含在UiBinder模板中:

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

  <ui:style field="css" src="constants.css" />
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)

我可以轻松地使用元素的样式:

<g:FlowPanel styleName="{css.panel}">...</g:FlowPanel>
Run Code Online (Sandbox Code Playgroud)

但是尝试在另一个Style块中使用常量会失败:

<ui:Style>
  .templateSpecificStyle {
      background-color: {css.royalBlue};
      padding: 1em;
  }
</ui:Style>
Run Code Online (Sandbox Code Playgroud)

奇怪的是我没有收到编译错误.创建了混淆的CSS类; 但是,内容是空的.有没有办法在另一个Style块中访问这些CSS常量?是否可以使用旧的ResourceBundle/CssResource模式?

css gwt uibinder

4
推荐指数
1
解决办法
3936
查看次数

GWT - 为登录目的实现DialogBox

出于测试目的,我想使用DialogBox登录我的应用程序.

这是uibinder文件:

<!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>
  </ui:style>
    <g:HTMLPanel>
      <g:Label>Username</g:Label>
      <g:TextBox ui:field="username"></g:TextBox>
      <g:Label>Password</g:Label>
      <g:PasswordTextBox ui:field="password"></g:PasswordTextBox>
      <g:Button ui:field="login">Login</g:Button>
    </g:HTMLPanel>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)

这是我的实现:

public class Login extends DialogBox {
    private static LoginUiBinder uiBinder = GWT.create(LoginUiBinder.class);

    interface LoginUiBinder extends UiBinder<Widget, Login> {}

    @UiField
    TextBox username;
    @UiField
    PasswordTextBox password;
    @UiField
    Button login;

    public Login() {
        setHTML("Login");
        setWidget(uiBinder.createAndBindUi(this));
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:这是正确的方法吗?文档似乎没有说明如何做这种事情......

gwt uibinder gwt2

4
推荐指数
1
解决办法
3897
查看次数

如何使用UIBinder混合HTML和GWT小部件?

我们有一个使用UIBinder构建的现有UI,其ui.xml文件包含以下层次结构:

<ui:UiBinder>
<div>
Multiple <span> or <a> separated by verbatim HTML (like | separators).
Run Code Online (Sandbox Code Playgroud)

我需要用列表框替换其中一个锚点.

有没有办法在不用HTMLPanel替换div并将所有锚点更改为其他内容的情况下进行此转换?

如果我尝试在那里粘贴gwt:ValueListBox或gwt:ListBox,我会收到一条错误消息,我不能将它们混合在一起.我也不能在UIBinder下有多个子节点(例如div和HTMLPanel).

如果我唯一的选择是将所有内容转换为小部件,那么适当的转换和项目是什么?

gwt uibinder

4
推荐指数
1
解决办法
6260
查看次数

是否可以在GWT UiBinder上下文中引用枚举

我有一个如下所示的枚举

public enum MyEnum {
    A,
    B;
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个UiBinder文件,其中包含一个自定义组件,该组件具有setter和getter,期望上面的枚举.(我已经删除了额外的代码

<ui:UiBinder ....>
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)

我可以引用我的枚举并以任何方式将该值放入myAttribute中吗?我想要完成的是这样的事情

<ui:UiBinder ....>
    <ui:with field="myEnumField" type="com.example.MyEnum" />
    <g:HTMLPanel>
        ....
        <myNamespace:myComponent myAttribute="{myEnumField.A}" />
        ....
    </g:HTMLPanel>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)

然而,似乎我不能用ui执行此操作:with.我能以任何方式做到这一点吗?

java gwt enums uibinder

4
推荐指数
1
解决办法
1799
查看次数

单独的GWT UIBinder文件

默认情况下使用GWT UIBinder时,会在同一目录下创建一对java源和UI模板文件.

将它们保存在不同的目录中需要什么.例如client/MyApp.java和client/ui/xml/MyApp.ui.xml?

@编辑

下面是基于@jonasr答案的,但注释应该使用file pathUI模板而不是包前缀进行评估.

@UiTemplate("ui/xml/MyApp.ui.xml")
interface MyAppUiBinder extends UiBinder<Widget, MyApp>
{}
Run Code Online (Sandbox Code Playgroud)

gwt uibinder

4
推荐指数
1
解决办法
1613
查看次数

GWT UiBinder TabPanel

如何在GWT中定义UiBinder中的TabPanel.TabPanel和TabLayoutPanel之间有什么区别.在哪里可以找到有关TabPanel uibinder参数的其他信息.

gwt tabpanel uibinder

4
推荐指数
1
解决办法
4562
查看次数

gxt,gwt,Java.验证没有信息块的文本字段

我必须textField使用以下规则检查一些:

if (the value A != the value B) {
  this.A.forceInvalid("");
}
Run Code Online (Sandbox Code Playgroud)

这项工作真的很好,但我想在文本字段中删除错误的"信息泡沫".我试图简单地在它周围放一个带红色边框的CSS,但似乎我的上级不想要那个.

我怎么能擦掉那个泡泡?

java gwt gxt uibinder

4
推荐指数
1
解决办法
803
查看次数

标签 统计

gwt ×10

uibinder ×10

java ×2

css ×1

eclipse ×1

enums ×1

gwt-tablayoutpanel ×1

gwt2 ×1

gxt ×1

tabpanel ×1