gpt4 book ai didi

java - 如何使用 GWT Editor 框架编辑多值字段?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:05 25 4
gpt4 key购买 nike

当我的模型有一个字段是集合、列表等时,我正在尝试弄清楚如何使用 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 编辑器框架一起工作。到目前为止的调试显示编辑器中的值是正确的。

我看过 ListEditor,但它看起来像是用来编辑比对象类型更复杂的列表;不是具有多个可能值的单个字段。我正在实现错误的编辑器类型? GWT 编辑器是否还不能处理作为集合的字段?

最佳答案

糟糕!我拥有的代码将正常工作。我稍微简化了我的实际情况,最终发现了我的错误。我的真实实体代理看起来更像:

public interface MyModel {
// BrokerType is an enum
void setBrokerTypes(Set<BrokerType> brokerTypes);
Set<BrokerType> getBrokerTypes();
}

ListBox 总是以字符串形式返回值!所以编辑器框架可能很难弄清楚如何转换 Set<String>Set<BrokerType> .宁愿看到一个错误而不是无声的失败,但是哦,好吧。

这就是我首先扩展 ListBox 的原因(以处理更复杂的类型),所以我想我需要在期望编辑器框架知道如何处理 Set 之前让它工作。

关于java - 如何使用 GWT Editor 框架编辑多值字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5683977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com