【发布时间】:2011-04-16 01:58:20
【问题描述】:
当我的模型具有 Set、List 等字段时,我试图弄清楚如何使用 GWT 编辑器。
我有这个实体代理:
public interface MyModel {
void setSomeCollection(Set<String> c);
Set<String> getSomeCollection();
}
这是我的多选字段。我正在扩展 ListBox,以便以后可以更改它的一些行为。
public class DualListBox extends ListBox implements LeafValueEditor<Set<String>> {
public DualListBox() {
super(true);
}
@Override
public void setValue(Set<String> values) {
if (values == null) {
return;
}
for (String value : values) {
for (int i = 0; i < getItemCount(); i++) {
if (getValue(i).equals(value)) {
setItemSelected(i, true);
} else {
setItemSelected(i, false);
}
}
}
}
@Override
public Set<String> getValue() {
Set<String> values = new HashSet<String>();
for (int i = 0; i < getItemCount(); i++) {
if (isItemSelected(i)) {
values.add(getValue(i));
}
}
// Debug shows that the set of values is populated correctly..
return values;
}
}
基本上我只是不知道如何使用 Set 获取字段(我也尝试过 List)以使用 GWTs Editor 框架。到目前为止的调试表明值正确地从编辑器中输出。
我看过 ListEditor,但它看起来像是用来编辑更复杂的对象类型的列表;不是具有多个可能值的单个字段。我正在实施错误的编辑器类型? GWT 编辑器还不能处理集合字段吗?
【问题讨论】: