是否有可能重新使用上UiBinder的 例如定義窗口小部件:UiBinder的小工具
<g:SuggestBox ui:field='searchBox' />
我的意思是使用兩個不同的地方相同SuggestBox。 如果有可能,我該怎麼做電話或什麼?
感謝您的幫助。
是否有可能重新使用上UiBinder的 例如定義窗口小部件:UiBinder的小工具
<g:SuggestBox ui:field='searchBox' />
我的意思是使用兩個不同的地方相同SuggestBox。 如果有可能,我該怎麼做電話或什麼?
感謝您的幫助。
你能做到這一點,這裏有一個例子:
定義要重用部件:
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);
}
}
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>
第三行指向包你的小部件是要重複使用。
是的,這就是你這樣做的方式。簡而言之,創建您自己的具有所需功能的SuggestBox的實現,然後使用前綴(myWidgets)將其導入到UiBinder的XML名稱空間中,然後將其用作其他任何GWT窗口小部件。 – janhink 2011-04-08 09:09:28
這意味着,這是不可能做到這一點:
您無法兩次添加同一個實例,但可以在ExampleLabel.java中添加處理程序,然後在添加小部件時,每個實例都將有處理程序 – 2011-04-08 09:19:17
您不能在DOM中的兩個位置同時附加相同的窗口小部件*實例*(因爲每個實例只有一個父字段)。你真的想要同一個實例嗎?如果是,爲什麼? (你當然可以有多個「相同」SuggestBox實例,或者UiBinder小部件的多個實例 - 這不就足夠了嗎?) – 2011-04-08 08:58:35