如何使用UiBinder获取带有GWT的MultipleSelect ListBox

时间:2012-03-08 10:12:17

标签: gwt uibinder

我正在使用UiBinder开发使用GWT开发的应用程序。 在一个视图中,我有一个需要允许多选的ListBox。

该应用当前正在使用方法setMultipleSelect(boolean isMultipleSelect)来启用ListBox上的多选。 该方法现已弃用,建议使用构造函数ListBox(boolean isMultipleSelect)。

问题是我没有构建那个ListBox,它是在绑定时完成的(我想,我不确定它是如何工作的。)

我的代码是这样的:

interface ViewUiBinder extends UiBinder<Widget, View> {}

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

private Widget widget;
@UiField
ListBox listBox;

@Inject
public View() {
  widget = uiBinder.createAndBindUi(this);
  listBox.setMultipleSelected(true);
}

有没有人知道如何使用多选构造函数构造函数初始化ListBox并使其工作?

谢谢,

马修

2 个答案:

答案 0 :(得分:1)

我会为provided = true使用UiField注释参数并初始化该字段。如果您不想使用该字段初始化列表框,但在View构造函数中,请在uiBinder.createAndBinUi(this);之前设置语句

@UiField(provided = true)
ListBox listBox = new ListBox(true);

答案 1 :(得分:0)

您可以使用UiBinder模板中的去大写属性名称访问UI小部件的任何类似Bean的属性。它看起来像这样:

<g:ListBox ui:field="listBox" multipleSelect="true" />

我倾向于避免使用provided=true注释参数,直到它绝对必要,并且在这种情况下不是。