标签: uibinder

如何使用UiBinder声明依赖样式名称

我有一个包含TextArea的简单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">

    <g:TextArea visibleLines="3" />
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)

我想控制此textarea的背景颜色,以便进行可写和只读状态.GWT使用"-readonly"样式名称装饰器来实现此目的.所以我试试这个:

<!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>
        .textBoxStyle {
            background-color:yellow;
        }
        .textBoxStyle-readonly {
            background-color:lightgray;
        }
    </ui:style>

    <g:TextArea styleName="{style.textBoxStyle}" visibleLines="3" />
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,因为样式名称被混淆为CssResources导致类似这样的事情:

.G1x26wpeN {
    background-color:yellow
 }
.G1x26wpeO {
    background-color: lightgray;
}
Run Code Online (Sandbox Code Playgroud)

可写textarea的结果HTML如下所示:

<textarea tabindex="0" class="G1x26wpeN" rows="3"/>
Run Code Online (Sandbox Code Playgroud)

只读textarea看起来像这样:

<textarea tabindex="0" class="G1x26wpeN G1x26wpeN-readonly" readonly="" rows="3"/>
Run Code Online (Sandbox Code Playgroud)

如何声明样式,以便GWT对主要部分进行模糊处理而不对"-readonly"decdorator进行模糊处理?

我知道我可以禁用整个样式名称的混淆.但我想在使用装饰器的同时保持混淆.

css obfuscation gwt uibinder gwt2

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

@UiHandler的文档

我开始研究将GWT与UiBuilder结合使用.我有点疑惑你如何使用该@UiHandler(..)指令来制作简单的事件处理代码,如GWT文档中所述:

@UiHandler("button")
void handleClick(ClickEvent e) {
  Window.alert("Hello, AJAX");
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,handleClick使用该方法.您如何知道每个GWT小部件可以创建哪些方法@UiHandler?对于某些人,您还可以创建一个doClose()方法.

但是,你可以使用什么ListBox来获得一个项目被选中的事件?我可以在文档中的哪个位置看到这个?

java gwt uibinder

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

如何使用消息将GWT UIBinder页面国际化?

我试图用属性文件国际化UIBinder应用程序.由于我们已经通过com.google.gwt.i18n.client.Messages接口(GWT 1.7.1)公开了很多翻译,因此我们希望重用这些消息.

我尝试过以下方法:

<!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:res="ui:with:be.credoc.iov.webapp.client.MessageConstants">

 <g:HTMLPanel>
  <div>
   <res:msg key="email">Emaileke</res:msg>:
   <g:TextBox ui:field="email" />
  </div>
 </g:HTMLPanel>
</ui:UiBinder>
Run Code Online (Sandbox Code Playgroud)

MessageConstants类如下所示:

@DefaultLocale("nl")
public interface MessageConstants extends Messages {
 String email();
}
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.我怎样才能做到这一点?

gwt internationalization uibinder

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

如何使用GWT编辑器框架进行验证?

我正在尝试与GWT 2.1.0的新GWT Editor框架集成.我还想将验证检查添加到框架中.但是,我正在努力寻找一个体面的例子来做这件事.

目前我有以下代码:

<!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:e="urn:import:com.google.gwt.editor.ui.client">
    <ui:with type="be.credoc.iov.webapp.client.MessageConstants"
        field="msg" />
    <g:HTMLPanel>
        <e:ValueBoxEditorDecorator ui:field="personalReference">
            <e:valuebox>
                <g:TextBox />
            </e:valuebox>
        </e:ValueBoxEditorDecorator>
    </g:HTMLPanel>
</ui:UiBinder> 
Run Code Online (Sandbox Code Playgroud)

对于我的编辑:

public class GarageEditor extends Composite implements Editor<Garage> {

    @UiField
    ValueBoxEditorDecorator<String> personalReference;

    interface GarageEditorUiBinder extends UiBinder<Widget, GarageEditor> {
    }

    private static GarageEditorUiBinder uiBinder = GWT.create(GarageEditorUiBinder.class);

    public GarageEditor() {
        initWidget(uiBinder.createAndBindUi(this));
    }

}
Run Code Online (Sandbox Code Playgroud)

在什么时候我必须调用我的验证器,我该如何与它集成?

更新:

我实际上正在寻找一种方法来检索具有关键属性路径的地图,以及编辑器的值.委托上有一个路径字段,但这不是编辑对象中的路径,而是编辑器类中的路径.

有人知道是否有可能做这样的事情?

java gwt editor uibinder gwt2

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

将类名添加到uibinder xml文件中的元素

以下内容替换任何当前的css类名称.它似乎打电话setStyleName.

<g:DecoratorPanel styleName="{style.myCssClass}">
Run Code Online (Sandbox Code Playgroud)

我真正想要做的是添加一个类名,比如调用addStyleName.

有可能做我正在尝试的事情吗?

java gwt uibinder

18
推荐指数
1
解决办法
5913
查看次数

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

如何使用uibinder创建一个带子项的gwt复合组件?

我想创建一个组件来装饰它的子节点,例如:

mycomponent.ui.xml:

<g:FlowPanel addStyleNames="myStyle">
    <!-- how can i render children ? -->
</g:FlowPanel>
Run Code Online (Sandbox Code Playgroud)

然后其他人可以使用:

<myapp:mycomponent>
    <g:Label>Decorated child</g:Label>
</myapp:mycomponent>
Run Code Online (Sandbox Code Playgroud)

我怎样才能让孩子们进入uibinder?(或者在Java中,如果必须的话)

java gwt uibinder

17
推荐指数
1
解决办法
7223
查看次数

如何在GWT 2.0中使用DockLayoutPanel和UiBinder来布局小部件?

我正在尝试使用UiBinder在GWT 2.0下使用简单的布局.我想要获得的布局是模仿Java的BorderLayout的布局,您可以在其中指定北,南,东,西和中心方向的不同面板; 因为我正在使用DockLayoutPanel.我想得到一个页眉和页脚,两者都有固定的宽度.剩余的视口空间将被分配给DockLayoutPanel中心插槽的小部件占用.

我得到的当前.ui.xml文件是:

<g:DockLayoutPanel unit='EM'>
    <g:north size='2'>
        <g:HTML>HEADER</g:HTML> 
    </g:north>

    <g:south size='2'>
        <g:HTML>FOOTER</g:HTML> 
    </g:south>

    <g:center>
        <g:HTML>
            <div id='loginform'>Hello!</div>
        </g:HTML>
    </g:center>
</g:DockLayoutPanel>
Run Code Online (Sandbox Code Playgroud)

浏览器仅在左上角呈现HEADER.我怎样才能实现我正在寻找的布局?看来你可以在使用GWT布局面板之前知道更多的CSS,但这种方式与使用它创建UI的目的相违背.

java layout gwt uibinder

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

试图让UIBinder给我一个跨度而不是div

我正在使用UiBinder构建一个小部件,我需要将它封装在一个<span />但是UiBinder只给我<div />.例如<g:HTMLPanel />=> <div />.Horizo​​nPanel,FlowPanel,VerticalPanel也只给出了<div />.

有人知道解决方案吗?

gwt uibinder

16
推荐指数
2
解决办法
8571
查看次数

GWT 2.1 UiBinder SimplePager需要位置属性

什么可以提供给a的location属性

<c:SimplePager ui:field='pager' location='HERE' /> 
Run Code Online (Sandbox Code Playgroud)

我尝试了CENTER,但它没有用,我在费用示例应用程序中看到他们没有位置属性,而是将其设置为在UiBinder中创建它.但我不能这样做,因为它是必需的属性.该怎么办?

gwt uibinder gwt2

15
推荐指数
2
解决办法
8321
查看次数

标签 统计

gwt ×10

uibinder ×10

java ×5

gwt2 ×3

css ×1

editor ×1

internationalization ×1

layout ×1

listbox ×1

obfuscation ×1