Gwt Uibinder小部件
是否可以重用Uibinder上定义的小部件 例如:Gwt Uibinder小部件,gwt,uibinder,Gwt,Uibinder,是否可以重用Uibinder上定义的小部件 例如: <g:SuggestBox ui:field='searchBox' /> 我的意思是在两个不同的地方使用相同的建议框。 如果可能的话,我该怎么打电话或做其他什么 谢谢您的帮助。您可以这样做,下面是一个示例: 定义要重用的小部件: ExampleLabel.java: package com.example.client; import import com.google.gwt.user.client.ui.Label;
<g:SuggestBox ui:field='searchBox' />
我的意思是在两个不同的地方使用相同的建议框。
如果可能的话,我该怎么打电话或做其他什么
谢谢您的帮助。您可以这样做,下面是一个示例: 定义要重用的小部件: ExampleLabel.java:
package com.example.client;
import import com.google.gwt.user.client.ui.Label;
public class ExampleLabel extends Composite {
interface ExampleLabelBinder extends UiBinder<Widget, ExampleLabel>{}
private static ExampleLabelBinder binder=GWT.create(ExampleLabelBinder.class);
public ExampleLabel() {
initWidget(binder.createAndBindUi(this);
}
}
package com.example.client;
导入com.google.gwt.user.client.ui.Label;
公共类ExampleLabel扩展了复合{
接口示例LabelBinder扩展UiBinder{}
私有静态ExampleLabelBinder binder=GWT.create(ExampleLabelBinder.class);
公共示例标签(){
initWidget(binder.createAndBindUi(this);
}
}
ExampleLabel.ui.xml
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<g:Label>Just some text</g:Label>
</ui:UiBinder>
只是一些文字
要使用它,请执行以下操作:
UseExampleLabel.ui.xml:
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:myWidgets='urn:import:com.example.client>
<g:FlowPanel>
<myWidgets:ExampleLabel></myWidgets:ExampleLabel>
<myWidgets:ExampleLabel></myWidgets:ExampleLabel>
<myWidgets:ExampleLabel></myWidgets:ExampleLabel>
</g:FlowPanel>
</ui:UiBinder>
您可以这样做,下面是一个示例:
定义要重用的小部件:
ExampleLabel.java:
package com.example.client;
import import com.google.gwt.user.client.ui.Label;
public class ExampleLabel extends Composite {
interface ExampleLabelBinder extends UiBinder<Widget, ExampleLabel>{}
private static ExampleLabelBinder binder=GWT.create(ExampleLabelBinder.class);
public ExampleLabel() {
initWidget(binder.createAndBindUi(this);
}
}
package com.example.client;
导入com.google.gwt.user.client.ui.Label;
公共类ExampleLabel扩展了复合{
接口示例LabelBinder扩展UiBinder{}
私有静态ExampleLabelBinder binder=GWT.create(ExampleLabelBinder.class);
公共示例标签(){
initWidget(binder.createAndBindUi(this);
}
}
ExampleLabel.ui.xml
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<g:Label>Just some text</g:Label>
</ui:UiBinder>
只是一些文字
要使用它,请执行以下操作:
UseExampleLabel.ui.xml:
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:myWidgets='urn:import:com.example.client>
<g:FlowPanel>
<myWidgets:ExampleLabel></myWidgets:ExampleLabel>
<myWidgets:ExampleLabel></myWidgets:ExampleLabel>
<myWidgets:ExampleLabel></myWidgets:ExampleLabel>
</g:FlowPanel>
</ui:UiBinder>
您不能同时在DOM中的两个位置附加同一个小部件实例(因为每个实例只有一个父字段)。您真的想要相同的实例吗?如果是,为什么?(当然可以有多个“同一”SuggestBox实例,或者多个UiBinder小部件实例-这不够吗?)您不能同时在DOM中的两个位置附加同一个小部件实例(因为每个实例只有一个父字段)。您真的想要同一个实例吗?如果是,为什么?(当然可以有多个“相同”SuggestBox实例,或者多个UiBinder小部件实例-这不够吗?)是的,就是这样做的。简言之,使用所需的功能创建自己的SuggestBox实现,然后使用前缀(myWidgets)将其导入UiBinder的XML命名空间然后将其作为任何其他GWT小部件使用。这意味着不可能做到这一点:这就是它的意思;将小部件与其所有侦听器一起使用…您不能两次添加同一个实例,但您可以在ExampleLabel.java中添加处理程序,当您添加小部件时,每个实例都将具有handlers@Issam:在在上面的示例中,您不会使用
,而是在子小部件的标签上设置ui:字段:
,并在那里定义侦听器。非常感谢您的帮助!!!但是对于SuggestBox,在初始化视图{suggest1=new SuggestBox之前,只需为两者定义相同的MultiWordSuggestOracle对象即可(oracle);suggest2=new SuggestBox(oracle);initWidget(uiBinder.createAndBindUi(this));}是的,这就是您的操作方式。简而言之,使用所需的功能创建您自己的SuggestBox实现,然后使用前缀(myWidgets)将其导入uiBinder的XML命名空间然后将其作为任何其他GWT小部件使用。这意味着不可能做到这一点:这就是它的意思;将小部件与其所有侦听器一起使用…您不能两次添加同一个实例,但您可以在ExampleLabel.java中添加处理程序,当您添加小部件时,每个实例都将具有handlers@Issam:在在上面的示例中,您不会使用
,而是在子小部件的标签上设置ui:字段:
,并在那里定义侦听器。非常感谢您的帮助!!!但是对于SuggestBox,在初始化视图{suggest1=new SuggestBox之前,只需为两者定义相同的MultiWordSuggestOracle对象即可(oracle);suggest2=newSuggestBox(oracle);initWidget(uiBinder.createAndBindUi(this));}