Hello, I can't handle with such an easy operation :-(
I'm using smartgwt 4.1
I need to create a grid with three columns.
In the first and the second column I need to keep Id and lable of an entity from database. I want to receive this data by Request.
In the third row I want to keep a ListBox with 3 options - "no","R","RW"
I'm trying to do it this way:
it shows me a grid with a listbox. But when I change selections in two rows and try to iterate grid to get this rows - i get only first value.
Guys, I can't understand what I'm doing wrong. Please, help me with this rather easy task
I'm using smartgwt 4.1
I need to create a grid with three columns.
In the first and the second column I need to keep Id and lable of an entity from database. I want to receive this data by Request.
In the third row I want to keep a ListBox with 3 options - "no","R","RW"
I'm trying to do it this way:
Code:
ListGrid rightsGrid = new ListGrid();
....
ListGridField rdsUnique = new ListGridField("uniqueId", "uniqueId");
rdsUnique.setHidden(true);
ListGridField rdsLabel = new ListGridField("label", rolesDirNLS.objectName());
rdsLabel.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);
rdsLabel.setCanEdit(false);
ListGridField rdsRight = new ListGridField("right", rolesDirNLS.right());
ResultSet resultSet = new ResultSet();
rightsGrid.setShowAllRecords(true);
rightsGrid.setAlwaysShowEditors(true);
rightsGrid.setFields(rdsUnique, rdsLabel, rdsRight);
rdsRight.setAutoFitWidthApproach(AutoFitWidthApproach.TITLE);
rightsGrid.setCanEdit(true);
rightsGrid.setEditEvent(ListGridEditEvent.CLICK);
SelectItem rightSelectItem = new SelectItem();
rightSelectItem.setValueMap("NO", "R", "RW");
rightSelectItem.setEmptyDisplayValue(rolesDirNLS.no());
rightSelectItem.setDefaultValue(rolesDirNLS.no());
rightSelectItem.setAddUnknownValues(false);
rdsRight.setEditorType(rightSelectItem);
RequestBuilder getObjects = new CustomRequestBuilder(RequestBuilder.GET, common.prefix() + "/object_type/");
getObjects.setCallback(new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
if (response.getStatusCode() == 200) {
JSONArray objectsArray = JSONParser.parseStrict(response.getText()).isArray();
for (int i = 0; i < objectsArray.size(); i++) {
JSONObject Object = objectsArray.get(i).isObject();
if (Object != null) {
ListGridRecord record = new ListGridRecord();
record.setAttribute("uniqueId", Object.get("uniqueId").isString().stringValue());
record.setAttribute("label", Object.get("label").isString().stringValue());
rightsGrid.addData(record);
}
}
} else {
SC.warn(notifications.rest_on_error());
}
}
@Override
public void onError(Request request, Throwable throwable) {
SC.warn(throwable.getMessage());
}
});
try {
getObjects.send();
} catch (RequestException e) {
e.printStackTrace();
}
Guys, I can't understand what I'm doing wrong. Please, help me with this rather easy task
Comment