CanvasItem issues

Hi,

I don’t understand how to use CanvasItem or is it buggy?!.
My sample test code:

public void onModuleLoad() {

	final ListGrid grid = new ListGrid();
	final DynamicForm form = new DynamicForm();
	final DataSource dataSource = new DataSource();

	class CustomEditorItem extends CanvasItem {

		private final IButton button = new IButton("Edit...");

		public CustomEditorItem() {
			super();

			button.addClickHandler(new ClickHandler() {

				@Override
				public void onClick(ClickEvent event) {
					// How to get the old value?
					// getValue throw an exception:
					// [..] self.getValue is not a function [..]
					// final String oldValue = (String) getValue();
					SC.askforValue("Edit", "Enter new value", /* oldValue, */
					new ValueCallback() {

						@Override
						public void execute(String value) {
							// How to set the new value?
							// This don't work!
							setValue(value);
						}
					}/* , null */);
				}
			});

			setCanvas(button);
		}
	}

	final DataSourceField customEditorField = new DataSourceField("custom",
			FieldType.TEXT, "Custom Editor");
	customEditorField.setEditorType(new CustomEditorItem());

	final DataSourceField frameworkEditorField = new DataSourceField(
			"framework", FieldType.TEXT, "Framework Editor");

	dataSource.setClientOnly(true);
	dataSource.setFields(customEditorField, frameworkEditorField);
	for (int i = 0; i < 10; i++) {
		final Record record = new Record();
		record.setAttribute("custom", "Value Custom " + i);
		record.setAttribute("framework", "Value Framework " + i);
		dataSource.addData(record);
	}

	form.setDataSource(dataSource);

	// Rendering issue for the CustomEditorItem when start
	// editing a grid row.
	grid.setCanEdit(true);
	grid.setAutoFetchData(true);
	grid.setHeight(300);
	grid.setDataSource(dataSource);
	grid.addRecordClickHandler(new RecordClickHandler() {

		@Override
		public void onRecordClick(RecordClickEvent event) {
			form.reset();
		        form.editSelectedData(grid);
		}
	});

	final VLayout layout = new VLayout();
	layout.setWidth(400);
	layout.setMembers(grid, form);
	layout.draw();
}

Any help are welcome.

You may want to check out this thread: http://forums.smartclient.com/showthread.php?t=9739&highlight=CanvasItem