Announcement

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

    ListGrid.TransferSelectedData causes (TypeError) exception when using groups

    Hi I am having a problem with the ListGrid.TransferSelectedData method. Both list grids are grouped on a field named 'category'. When I attempt to drag a record from one to the other I get the following exception:

    Code:
    (TypeError): Cannot call method 'isAdvancedCriteria' of undefined
     stack: TypeError: Cannot call method 'isAdvancedCriteria' of undefined
        at Object.isc_Canvas_getDropValues [as getDropValues] ([url]http://localhost:8080/MXiConsole/mxiconsole/sc/modules/ISC_Core.js:3401:106[/url])
        at Object.isc_Canvas_transferRecords [as transferRecords] ([url]http://localhost:8080/MXiConsole/mxiconsole/sc/modules/ISC_Core.js:3369:147[/url])
        at Object.isc_Canvas_transferSelectedData [as transferSelectedData] ([url]http://localhost:8080/MXiConsole/mxiconsole/sc/modules/ISC_Core.js:3420:100[/url])
        at $transferSelectedData ([url]http://localhost:8080/MXiConsole/mxiconsole/FF1C7B48C409011194DDC7B084448AF3.cache.html:11022:10[/url])
        at Object.onCellDoubleClick_1 [as onCellDoubleClick] ([url]http://localhost:8080/MXiConsole/mxiconsole/FF1C7B48C409011194DDC7B084448AF3.cache.html:21199:5[/url])
        at Object.dispatch_13 [as dispatch] ([url]http://localhost:8080/MXiConsole/mxiconsole/FF1C7B48C409011194DDC7B084448AF3.cache.html:11451:29[/url])
        at $fireEvent_0 ([url]http://localhost:8080/MXiConsole/mxiconsole/FF1C7B48C409011194DDC7B084448AF3.cache.html:833:17[/url])
        at $fireEvent ([url]http://localhost:8080/MXiConsole/mxiconsole/FF1C7B48C409011194DDC7B084448AF3.cache.html:734:60[/url])
        at Object.fireEvent_1 [as fireEvent] ([url]http://localhost:8080/MXiConsole/mxiconsole/FF1C7B48C409011194DDC7B084448AF3.cache.html:8850:21[/url])
        at Object.
    If the both source and target grids are ungrouped then the transfer seems to work. What is the difference?

    We are using SmartGWT LGPL version 2.2

    The source code is below:

    Code:
    public UserRoleMaintenanceWindow(UserRoleRecord userRoleRecord, ConsoleServiceAsync service) {
    		UserRoleMaintenanceWindow.service = service;
    		
    		if (userRoleRecord == null)
    		{
    			isNew = true;
    			this.userRoleRecord = new UserRoleRecord();
    		}
    		else
    		{
    			isNew = false;
    			getRights(userRoleRecord.getID());
    			this.userRoleRecord = userRoleRecord;
    		}
    
    		// Setup the UI
    		userRoleMaintenanceWindow.setSize("500px", "397px");
    		userRoleMaintenanceWindow.setIsModal(true);
    		userRoleMaintenanceWindow.setAutoCenter(true);
    		userRoleMaintenanceWindow.setShowHeaderIcon(true);
    		userRoleMaintenanceWindow.setShowResizer(false);
    		userRoleMaintenanceWindow.setShowTitle(true);
    		userRoleMaintenanceWindow.setShowStatusBar(false);
    		userRoleMaintenanceWindow.setShowModalMask(true);
    		userRoleMaintenanceWindow.setShowMinimizeButton(false);
    		userRoleMaintenanceWindow.setTitle("userRoleMaintenance");
    
    		// The form for the user role name
    		dynamicForm_Role.setWidth("100%");
    		dynamicForm_Role.setSelectOnFocus(true);
    		dynamicForm_Role.setNumCols(2);
    		dynamicForm_Role.setPadding(5);
    		dynamicForm_Role.setColWidths(60, "*");
    
    		textItem_RoleName.setSelectOnFocus(true);
    		textItem_RoleName.setRequired(true);
    		textItem_RoleName.setRequiredMessage("nameRequired");
    		textItem_RoleName.setWidth("*");
    		textItem_RoleName.setColSpan(2);
    
    		if (!isNew)
    			textItem_RoleName.setValue(userRoleRecord.getName());
    
    		dynamicForm_Role.setFields(new FormItem[] { textItem_RoleName});
    		userRoleMaintenanceWindow.addItem(dynamicForm_Role);
    
    		// The area for the user functions
    		Canvas canvas_Main = new Canvas();
    		canvas_Main.setHeight("301px");
    
    		userRoleMaintenanceWindow.addItem(canvas_Main);
    		
    		listGrid_Unassigned.setCanDragRecordsOut(true);
            listGrid_Unassigned.setCanAcceptDroppedRecords(true);
            listGrid_Unassigned.setCanReorderFields(true);
            listGrid_Unassigned.setDragDataAction(DragDataAction.MOVE);
    		listGrid_Unassigned.setShowDragShadow(true);
    		listGrid_Unassigned.addCellDoubleClickHandler(new CellDoubleClickHandler() {
    
    			public void onCellDoubleClick(CellDoubleClickEvent event) {
    				try {
    					listGrid_Assigned.transferSelectedData(listGrid_Unassigned);
    				}
    				catch (Exception e) {
    					MessageBox.say(e.getMessage());
    				}
    			}
    		});
    
    		ListGridField listGridField_UnAssigned_Name = new ListGridField("name", "unassgined");
    		ListGridField listGridField_UnAssigned_Category = new ListGridField("category", "category");
    
    		listGrid_Unassigned.setFields(new ListGridField[] { listGridField_UnAssigned_Name, listGridField_UnAssigned_Category});
    		listGrid_Unassigned.setSortField("name");
    		listGrid_Unassigned.setSortDirection(SortDirection.ASCENDING);
    		listGrid_Unassigned.setGroupStartOpen(GroupStartOpen.ALL);
    		listGrid_Unassigned.setGroupByField("category");
    		listGrid_Unassigned.hideField("category");
    		listGrid_Unassigned.setData(UserFunctionData.getRecords());
    
    		EdgedCanvas edgedCanvas_Unassigned = new EdgedCanvas();
    		edgedCanvas_Unassigned.addChild(listGrid_Unassigned);
    		canvas_Main.addChild(edgedCanvas_Unassigned);
    		edgedCanvas_Unassigned.setRect(6, 6, 225, 296);
    		EdgedCanvas edgedCanvas_Assigned = new EdgedCanvas();
    
    		listGrid_Assigned.setCanDragRecordsOut(true);
            listGrid_Assigned.setCanAcceptDroppedRecords(true);
            listGrid_Assigned.setCanReorderFields(true);
            listGrid_Assigned.setDragDataAction(DragDataAction.MOVE);
    		listGrid_Assigned.setShowDragShadow(true);
    		listGrid_Assigned.addCellDoubleClickHandler(new CellDoubleClickHandler() {
    
    			public void onCellDoubleClick(CellDoubleClickEvent event) {
    				listGrid_Unassigned.transferSelectedData(listGrid_Assigned);
    			}
    		});
    
    		ListGridField listGridField_Assigned_Name = new ListGridField("name", "unassgined");
    		ListGridField listGridField_Assigned_Category = new ListGridField("category", "category");
    
    		listGrid_Assigned.setFields(new ListGridField[] { listGridField_Assigned_Name, listGridField_Assigned_Category});
    		listGrid_Assigned.setSortField("name");
    		listGrid_Assigned.setSortDirection(SortDirection.ASCENDING);
    		listGrid_Assigned.setGroupStartOpen(GroupStartOpen.ALL);
    		listGrid_Assigned.setGroupByField("category");
    		listGrid_Assigned.hideField("category");
    
    		edgedCanvas_Assigned.addChild(listGrid_Assigned);
    		canvas_Main.addChild(edgedCanvas_Assigned);
    
    		// Buttons for transfer
    		transferImgButton_Assign.addClickHandler(new ClickHandler() {
    
    			public void onClick(ClickEvent event) {
    				listGrid_Assigned.transferSelectedData(listGrid_Unassigned);
    			}
    		});
    		canvas_Main.addChild(transferImgButton_Assign);
    		transferImgButton_Assign.setRect(237, 98, 22, 22);
    
    		transferImgButton_AssignAll.addClickHandler(new ClickHandler() {
    
    			public void onClick(ClickEvent event) {
    				listGrid_Unassigned.selectAllRecords();
    				listGrid_Assigned.transferSelectedData(listGrid_Unassigned);
    			}
    		});
    		canvas_Main.addChild(transferImgButton_AssignAll);
    		transferImgButton_AssignAll.setRect(237, 126, 22, 22);
    
    		transferImgButton_UnAssign.addClickHandler(new ClickHandler() {
    
    			public void onClick(ClickEvent event) {
    				listGrid_Unassigned.transferSelectedData(listGrid_Assigned);
    			}
    		});
    		canvas_Main.addChild(transferImgButton_UnAssign);
    		transferImgButton_UnAssign.setRect(237, 154, 22, 22);
    
    		transferImgButton_UnAssignAll.addClickHandler(new ClickHandler() {
    
    			public void onClick(ClickEvent event) {
    				listGrid_Assigned.selectAllRecords();
    				listGrid_Unassigned.transferSelectedData(listGrid_Assigned);
    			}
    		});
    		canvas_Main.addChild(transferImgButton_UnAssignAll);
    		transferImgButton_UnAssignAll.setRect(237, 182, 22, 22);
    
    		edgedCanvas_Assigned.setRect(263, 6, 220, 296);
    
    		Canvas canvas_Bottom= new Canvas();
    		canvas_Bottom.setHeight("36px");
    
    		SGWTButton button_Cancel = new SGWTButton("cancel");
    		button_Cancel.addClickHandler(new ClickHandler() {
    
    			public void onClick(ClickEvent event) {
    				userRoleMaintenanceWindow.destroy();
    			}
    		});
    		canvas_Bottom.addChild(button_Cancel);
    		button_Cancel.moveTo(277, 6);
    
    		SGWTButton button_Save = new SGWTButton("save");
    		button_Save.addClickHandler(new ClickHandler() {
    
    			public void onClick(ClickEvent event) {
    				if (dynamicForm_Role.validate())
    				{
    					applyChanges();
    				}
    			}
    		});
    
    		canvas_Bottom.addChild(button_Save);
    		button_Save.moveTo(383, 6);
    		userRoleMaintenanceWindow.addItem(canvas_Bottom);
    	}

    Thanks
    Last edited by darm10; 11 Oct 2010, 03:58.

    #2
    Anyone got any ideas???

    Comment


      #3
      Are you still seeing this with the latest nightly? If so then post a minimal standalone testcase that we can run.

      Comment

      Working...
      X