I'm trying to use the MultiComboBoxItem as the editor for a ListGridField with multiple="true." It appears to be mostly working until I have made selections that cause the width of the buttons + the combobox to be wider than the field width after which I get errors in the development console and the UI becomes sluggish and basically unusable. I'm using an old build of 4.1p - 2014-09-18 - but was able to reproduce with the 01/29 build as well.
Errors:
08:48:25.876 [ERROR] [builtinds] 08:48:25.874:TMR8:WARN:HLayout:isc_HLayout_0:ignoring bad or negative left: NaN [enable 'sizing' log for stack trace]
com.smartgwt.client.core.JsObject$SGWT_WARN: 08:48:25.874:TMR8:WARN:HLayout:isc_HLayout_0:ignoring bad or negative left: NaN [enable 'sizing' log for stack trace]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
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:293)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
at java.lang.Thread.run(Thread.java:722)
08:49:50.844 [ERROR] [builtinds] 08:49:50.843:TMR0[E]:WARN:Canvas:Auto allocation of tab-indices has reached native browser ceiling - tab-order cannot be guaranteed for widgets on this page.
com.smartgwt.client.core.JsObject$SGWT_WARN: 08:49:50.843:TMR0[E]:WARN:Canvas:Auto allocation of tab-indices has reached native browser ceiling - tab-order cannot be guaranteed for widgets on this page.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
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:293)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
at java.lang.Thread.run(Thread.java:722)
I've reduced the problem to a test case:
thanks,
dan
Errors:
08:48:25.876 [ERROR] [builtinds] 08:48:25.874:TMR8:WARN:HLayout:isc_HLayout_0:ignoring bad or negative left: NaN [enable 'sizing' log for stack trace]
com.smartgwt.client.core.JsObject$SGWT_WARN: 08:48:25.874:TMR8:WARN:HLayout:isc_HLayout_0:ignoring bad or negative left: NaN [enable 'sizing' log for stack trace]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
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:293)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
at java.lang.Thread.run(Thread.java:722)
08:49:50.844 [ERROR] [builtinds] 08:49:50.843:TMR0[E]:WARN:Canvas:Auto allocation of tab-indices has reached native browser ceiling - tab-order cannot be guaranteed for widgets on this page.
com.smartgwt.client.core.JsObject$SGWT_WARN: 08:49:50.843:TMR0[E]:WARN:Canvas:Auto allocation of tab-indices has reached native browser ceiling - tab-order cannot be guaranteed for widgets on this page.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
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:293)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
at java.lang.Thread.run(Thread.java:722)
I've reduced the problem to a test case:
Code:
public void onModuleLoad() {
final ListGrid grid = new ListGrid();
grid.setCanEdit(true);
ListGridField number = new ListGridField("Number");
ListGridField field = new ListGridField("animal");
field.setCanEdit(true);
field.setMultiple(true);
MultiComboBoxItem editor = new MultiComboBoxItem();
editor.setValueField("scientificName");
editor.setDisplayField("commonName");
editor.setOptionDataSource(DataSource.get("animals"));
editor.setLayoutStyle(MultiComboBoxLayoutStyle.FLOW);
field.setEditorProperties(editor);
field.setOptionDataSource(DataSource.get("animals"));
field.setValueField("scientificName");
field.setDisplayField("commonName");
grid.setFields(number,field);
grid.setHeight(300);
grid.setWidth(500);
grid.setFixedRecordHeights(false);
Record r = new Record();
r.setAttribute("Number",5);
grid.setData(new Record[] { r});
grid.draw();
}
dan
Comment