Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    SmartGWT.mobile Databound SelectItem

    Is it possible to feed a SelectItem with data coming from a DataSource instead of explicitly creating a ValueMap ?

    I see setOptionDataSource and setDisplayField on SelectItem but when I try using this, as I would in desktop version, I get the following error :

    Code:
    java.lang.NullPointerException: null
        at com.smartgwt.mobile.client.internal.widgets.Picker.<init>(Picker.java:235)
        at com.smartgwt.mobile.client.widgets.form.fields.FormItem._createPicker(FormItem.java:430)
        at com.smartgwt.mobile.client.widgets.form.fields.FormItem.showPicker(FormItem.java:434)
        at com.smartgwt.mobile.client.widgets.form.fields.FormItem.onEnd(FormItem.java:400)
        at com.smartgwt.mobile.client.widgets.form.fields.SelectItem.onBrowserEvent(SelectItem.java:104)
        at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1351)
        at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1307)
        at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
        at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
        at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
        at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
        at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
        at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
        at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
        at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
        at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)
        at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
        at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
        at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
        at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
        at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
        at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
        at java.lang.Thread.run(Thread.java:680)
    Code:
    		ownerFilterField = new SelectItem("person_samCode", "Owner", "Enter person code");
    		ownerFilterField.setOptionDataSource(mainLayout.getDataSource("ui_list_persons"));
    		ownerFilterField.setDisplayField("display");

    #2
    Looking at the code of SelectItem, and assuming I understand how it works, I figured out that fetchData() requires to be triggered for the ValueMap to be populated. Then the valueMap should get populated on "onDataArrived" event.

    Since fetchData() does not seem to be called I tried to call it at SelectItem creation. However, even then "onDataArrived" never gets called?

    Thanks for your help.

    Comment


      #3
      Any follow-up please ?

      Comment


        #4
        We've corrected this so there is now an optional callback that you can pass to fetchData() to get notification of when data is loaded.

        Comment


          #5
          Tested, it works well, thanks.

          Comment

          Working...
          X