package com.smartgwt.client.widgets.grid;
import com.google.gwt.core.client.JavaScriptObject;
import com.smartgwt.client.util.JSOHelper;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.form.fields.FormItem;
/**
* Context object holding information about the cell being edited as part of a listGrid edit event.
*/
public class ListGridEditorContext {
private int rowNum;
private ListGridField editField;
private ListGridRecord editedRecord;
private FormItem defaultProperties;
ListGridEditorContext (JavaScriptObject jsContext) {
FormItem item = FormItem.getOrCreateRef(JSOHelper.getAttributeAsJavaScriptObject(jsContext, "defaultProperties"));
setDefaultProperties(item);
setRowNum(JSOHelper.getAttributeAsInt(jsContext, "rowNum"));
ListGridField editField = ListGridField.getOrCreateRef(JSOHelper.getAttributeAsJavaScriptObject(jsContext, "editField"));
setEditField(editField);
ListGridRecord record = ListGridRecord.getOrCreateRef(JSOHelper.getAttributeAsJavaScriptObject(jsContext, "editedRecord"));
setEditedRecord(record);
}
/**
* Default FormItem properties to apply to the editor for this cell. These properties are derived automatically
* from {@link ListGridField#setEditorType()}
* @return
*/
public FormItem getDefaultProperties() {
return defaultProperties;
}
public void setDefaultProperties(FormItem item) {
defaultProperties = item;
}
/**
* Returns the rowNum being edited
* @return
*/
public int getRowNum() {
return rowNum;
}
public void setRowNum(int rowNum) {
this.rowNum = rowNum;
}
/**
* Returns the field in which the editor will be displayed
* @return
*/
public ListGridField getEditField() {
return editField;
}
public void setEditField(ListGridField field) {
editField = field;
}
/**
* Similar to {@link ListGrid#getEditedRecord()}, this method returns a copy of the
* record being edited, with unsaved edit values applied.
* @return
*/
public ListGridRecord getEditedRecord() {
return editedRecord;
}
public void setEditedRecord(ListGridRecord record) {
editedRecord = record;
}
}