Announcement

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

    Removing a field in a ListGrid: Javascriptexception

    When calling setFields a second time on a listgrid but with one field less (to remove a field) a javascriptexception is thrown. This only happens when you remove a field that is not the last one.

    Tested this with SmartClient Version: SC_SNAPSHOT-2011-05-14/PowerEdition Deployment (built 2011-05-14) in gwt 2.1.0 on Firefox 4.

    Code:
    package test.client;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.google.gwt.core.client.EntryPoint;
    import com.smartgwt.client.data.DataSource;
    import com.smartgwt.client.data.DataSourceField;
    import com.smartgwt.client.widgets.Button;
    import com.smartgwt.client.widgets.events.ClickEvent;
    import com.smartgwt.client.widgets.events.ClickHandler;
    import com.smartgwt.client.widgets.grid.ListGrid;
    import com.smartgwt.client.widgets.grid.ListGridField;
    import com.smartgwt.client.widgets.layout.VLayout;
    
    public class RemoveField implements EntryPoint {
    	
    	private List<ListGridField> listGridFields;
    	private ListGrid listGrid;
    	
    	public void onModuleLoad() {
    		DataSource ds = DataSource.get("contents");
    		listGridFields = new ArrayList<ListGridField>();
    		for (DataSourceField field: ds.getFields()) {
    			ListGridField listGridField = new ListGridField(field.getName(), field.getName() + "_Title");
    			listGridFields.add(listGridField);
    		}
    		listGrid = new ListGrid();
    		listGrid.setDataSource(ds);
    		listGrid.setFields(listGridFields.toArray(new ListGridField[0]));
    		listGrid.setShowFilterEditor(true);
    		listGrid.setShowHeader(true);
    		
    		Button button = new Button();
    		button.addClickHandler(new ClickHandler() {
    			@Override
    			public void onClick(ClickEvent event) {
    				listGridFields.remove(0);
    				listGrid.setFields(listGridFields.toArray(new ListGridField[0]));
    			}
    		});
    		
    		VLayout vLayout = new VLayout();
    		vLayout.addMember(listGrid);
    		vLayout.addMember(button);
    		vLayout.setWidth100();
    		vLayout.setHeight100();
    		vLayout.draw();
    	}
    
    }
    The exception

    Code:
    Uncaught exception escaped : com.google.gwt.core.client.JavaScriptException
    (TypeError): _1 is null
     fileName: http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Grids.js
     lineNumber: 1118
     stack: isc_ListGrid__canSort(null)@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Grids.js:1118
    ()@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Grids.js:979
    isc_Canvas_getTagStart(true)@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:2223
    isc_Canvas__insertHTML(true)@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:2130
    isc_Canvas_draw((void 0),(void 0),(void 0))@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:2060
    isc_StatefulCanvas_draw()@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Foundation.js:286
    isc_Layout_layoutChildren("initial draw")@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Foundation.js:462
    isc_Layout_drawChildren()@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Foundation.js:361
    isc_Canvas_draw((void 0),(void 0),(void 0),(void 0),(void 0),(void 0),(void 0),(void 0))@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:2060
    isc_c_Class_invokeSuper([object Object],"draw",(void 0),(void 0),(void 0),(void 0))@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:305
    isc_Toolbar_draw()@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Foundation.js:764
    isc_c_Class_invokeSuper(null,"draw")@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:305
    isc_c_Class_Super("draw",[object Arguments])@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:297
    ()@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Grids.js:2599
    isc_ListGrid__updateFieldWidths("set fields",(void 0),(void 0))@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Grids.js:1378
    isc_ListGrid_layoutChildren("set fields")@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Grids.js:1373
    isc_ListGrid_setFields([object Array])@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Grids.js:1283
    isc_Class_setProperties([object Object])@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:388
    isc_Class_setProperty("fields",[object Array])@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:386
    ("fields",[object Array])@http://127.0.0.1:8888:171
    ([object GWTJavaObject],1179847,[object GWTJavaObject])@http://127.0.0.1:8888/smartgwt2/hosted.html?smartgwt2:56
    ([object Object],(void 0))@http://127.0.0.1:8888:118
    ((function () {var param = {};var event = __gwt_makeJavaInvoke(1)(null, 1507447, param);__gwt_makeJavaInvoke(1)(selfJ, 1179847, event);var ret = __gwt_makeJavaInvoke(0)(event, 1376262);return !ret;}),[object Object],[object Arguments])@http://127.0.0.1:8888:31
    (null,65642,(function () {var param = {};var event = __gwt_makeJavaInvoke(1)(null, 1507447, param);__gwt_makeJavaInvoke(1)(selfJ, 1179847, event);var ret = __gwt_makeJavaInvoke(0)(event, 1376262);return !ret;}),[object Object],[object Arguments])@http://127.0.0.1:8888/smartgwt2/hosted.html?smartgwt2:56
    ([object Object],(void 0))@http://127.0.0.1:8888:15
    ([object Object],(void 0))@http://127.0.0.1:8888:13
    isc_StatefulCanvas_handleActivate([object Object],(void 0))@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Foundation.js:319
    isc_StatefulCanvas_handleClick([object Object],(void 0))@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Foundation.js:321
    isc_c_EventHandler_bubbleEvent([object Object],"click")@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:1597
    isc_c_EventHandler_handleClick([object Object])@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:1445
    isc_c_EventHandler__handleMouseUp([object MouseEvent],(void 0))@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:1432
    isc_c_EventHandler_handleMouseUp([object MouseEvent])@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:1423
    isc_c_EventHandler_dispatch(isc_c_EventHandler_handleMouseUp,[object MouseEvent])@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:1660
    anonymous([object MouseEvent])@http://127.0.0.1:8888/smartgwt2/sc/modules/ISC_Core.js:61
    
    See the Development console log for details.
    Register a GWT.setUncaughtExceptionHandler(..) for custom uncaught exception handling.

    #2
    This should now be fixed. Please try the next nightly build.

    Comment

    Working...
    X