GWT ValueListBox编辑器

时间:2011-05-03 00:15:59

标签: gwt gwt-widgets gwt-editors

我对如何将GWT的ValueListBox与编辑器一起使用感到困惑。我收到了这个错误:

The method setValue(String) in the type TakesValueEditor<String> 
is not applicable for the arguments (List<String>)

以下是相关代码。

public class MyBean {
    private List<String> dateFormats;
    public List<String> getDateFormats() {
        return dateFormats;
    }
    public void setDateFormats(List<String> dateFormats) {
        this.dateFormats = dateFormats;
    }
}

public interface MyBeanView extends IsWidget, Editor<MyBean> {
    @Path("dateFormats")
    IsEditor<TakesValueEditor<String>> getDateFormatEditor();
}

public class MyBeanViewImpl implements MyBeanView {
    @UiField(provided=true) ValueListBox<String> dateFormats;

    public MyBeanViewImpl() {
        dateFormats = new ValueListBox<String>(PassthroughRenderer.instance(),
                new ProvidesKey<String>() {
                    @Override
                    public Object getKey(String item) {
                        return item;
                    }
        });
        dateFormats.setAcceptableValues(Arrays.asList(new String[] {"YYYY"}));
        // ... binder.createAndBindUi(this);
    }

    @Override
    public IsEditor<TakesValueEditor<String>> getDateFormatEditor() {
        return dateFormats;
    }
}

以下是带有xmlns的ui.xml中的内容:g ='urn:import:com.google.gwt.user.client.ui'&gt;

  <g:HTMLPanel>
     Data Formats: <g:ValueListBox ui:field="dateFormats"> </g:ValueListBox>
  </g:HTMLPanel>

我肯定在这里遗漏了一些明显的东西。非常感谢。

1 个答案:

答案 0 :(得分:3)

您遇到的问题与尝试将List<String> dateFormatsMyBean映射到ValueListBox<String> dateFormats编辑器有关。数据类型不兼容,因为ValueListBox<T>不会编辑List<T>,而是从T提供的列表中选择setAcceptableValues()的单个实例。鉴于上面的示例,MyBean具有String getDateFormat()属性并将编辑器字段重命名为dateFormat是有意义的。