Vaadin 7.4.0.beta2 grid throwing ConversionException

Hi
I’m try to migrate from table to new grid component and i encountered a problem.
When i try insert to data container some of component from package com.vaadin.ui for example CheckBox, app throw ConversionException.

Is this a know problem? Or is this intended? Or meaby there a solution for use component in grid data?

Unable to convert value of type com.vaadin.ui.CheckBox to presentation type java.lang.String. No converter is set and the types are not compatible.
com.vaadin.data.util.converter.Converter$ConversionException: Unable to convert value of type com.vaadin.ui.CheckBox to presentation type java.lang.String. No converter is set and the types are not compatible.
    at com.vaadin.data.RpcDataProviderExtension.encodeValue(RpcDataProviderExtension.java:994)
    at com.vaadin.data.RpcDataProviderExtension.getRowData(RpcDataProviderExtension.java:784)
    at com.vaadin.data.RpcDataProviderExtension.pushRowData(RpcDataProviderExtension.java:766)
    at com.vaadin.data.RpcDataProviderExtension.beforeClientResponse(RpcDataProviderExtension.java:748)
    at com.vaadin.server.communication.UidlWriter.write(UidlWriter.java:98)
    at com.vaadin.server.communication.UidlRequestHandler.writeUidl(UidlRequestHandler.java:149)
    at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:98)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:41)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:350)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
    at pl.sabio.sucker.HibernateSessionRequestFilter.doFilter(HibernateSessionRequestFilter.java:38)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
    at com.sun.grizzly.comet.CometEngine.executeServlet(CometEngine.java:459)
    at com.sun.grizzly.comet.CometEngine.handle(CometEngine.java:316)
    at com.sun.grizzly.comet.CometAsyncFilter.doFilter(CometAsyncFilter.java:87)
    at com.sun.grizzly.arp.DefaultAsyncExecutor.invokeFilters(DefaultAsyncExecutor.java:171)
    at com.sun.grizzly.arp.DefaultAsyncExecutor.interrupt(DefaultAsyncExecutor.java:143)
    at com.sun.grizzly.arp.AsyncProcessorTask.doTask(AsyncProcessorTask.java:102)
    at com.sun.grizzly.http.TaskBase.run(TaskBase.java:193)
    at com.sun.grizzly.http.TaskBase.execute(TaskBase.java:175)
    at com.sun.grizzly.arp.DefaultAsyncHandler.handle(DefaultAsyncHandler.java:145)
    at com.sun.grizzly.arp.AsyncProtocolFilter.execute(AsyncProtocolFilter.java:210)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:745)

Hi, unfortunately Grid does not currently support Components in body cells. The way Table supports them is very inefficient and we’d like to implement it better in a future Grid version. Currently you can use write a Renderer to display arbitrary client-side widgets in Grid cells, but you’ll have to implement the clientside as well, and communicate relevant events using Vaadin RPC. In the case of a checkbox renderer, you could actually extend the builtin abstract class ClickableRenderer, like the builtins ButtonRenderer and ImageRenderer do. Still, it requires some familiarity with client-side Vaadin programming.

Thanks for quick reply and proposed solution. They are very helpful.

Thank you for the reply! Is there any ETA for a “component renderer” in Grid? is it coming with 7.4 final or is expected later? Grid just need this to be AWESOME and finally replace Table :wink: