flow
23 Jun 2008, 10:03 AM
- GXT RC1b
- Hosted Mode
- GWT 1.5 RC
AFAIK, this issues has only been adressed to Tables, but not to the TreeTable yet (if I am wrong, sorry...)
As the cells in a Table and a TreeTable are not yet editable I tried a workaround by setting widgets into the TableItems or TreeTableItems respectively. Using GWT widgets works fine inside the TreeTable, because their toString return the html-code. This method is called inside the TreeTable#getRenderedValue, if no CellRenderer is set.
protected String getRenderedValue(TreeTableItem item, int column, Object value) {
TreeTableColumn col = (TreeTableColumn) cm.getColumn(column);
if (col.getRenderer() != null) {
return col.getRenderer().render(item, col.getId(), value);
} else {
if (value != null) {
return value.toString();
}
return null;
}
}
But now I'd like to make use of the handy GXT-form-widgets. Of course, their toString-method does not return the html-tags. Neither can I make use of a custom CellRenderer, because I don't know, how to retrieve the rendered GXT-widgets as its string-representation.
To make things less complicated, I tried a simple example:
public void onModuleLoad() {
final Viewport viewport = new Viewport();
viewport.setLayout(new FillLayout());
final List<TreeTableColumn> columns = new ArrayList<TreeTableColumn>();
TreeTableColumn column = new TreeTableColumn("id", "id", 40f);
columns.add(column);
column = new TreeTableColumn("ComboBox", 150f);
columns.add(column);
final TreeTableColumnModel cm = new TreeTableColumnModel(columns);
final TreeTable treeTable = new TreeTable(cm);
final Object[] values = new Object[2];
values[0] = "23";
final ComboBox<BaseModelData> combobox = new ComboBox<BaseModelData>();
combobox.setDisplayField("display");
final ListStore<BaseModelData> store = new ListStore<BaseModelData>();
for (int i = 0; i < 3; i++) {
final BaseModelData dummy = new BaseModelData();
dummy.set("display", "Number " + i);
store.add(dummy);
}
combobox.setStore(store);
values[1] = combobox;
final TreeTableItem item = new TreeTableItem(values);
treeTable.getRootItem().add(item);
viewport.add(treeTable);
RootPanel.get().add(viewport);
}
But due to the issues mentioned above (toString, rendering), this won't show the expected ComboBox.
Any ideas, how I can apply GXT-widgets inside a TreeTable?
- Hosted Mode
- GWT 1.5 RC
AFAIK, this issues has only been adressed to Tables, but not to the TreeTable yet (if I am wrong, sorry...)
As the cells in a Table and a TreeTable are not yet editable I tried a workaround by setting widgets into the TableItems or TreeTableItems respectively. Using GWT widgets works fine inside the TreeTable, because their toString return the html-code. This method is called inside the TreeTable#getRenderedValue, if no CellRenderer is set.
protected String getRenderedValue(TreeTableItem item, int column, Object value) {
TreeTableColumn col = (TreeTableColumn) cm.getColumn(column);
if (col.getRenderer() != null) {
return col.getRenderer().render(item, col.getId(), value);
} else {
if (value != null) {
return value.toString();
}
return null;
}
}
But now I'd like to make use of the handy GXT-form-widgets. Of course, their toString-method does not return the html-tags. Neither can I make use of a custom CellRenderer, because I don't know, how to retrieve the rendered GXT-widgets as its string-representation.
To make things less complicated, I tried a simple example:
public void onModuleLoad() {
final Viewport viewport = new Viewport();
viewport.setLayout(new FillLayout());
final List<TreeTableColumn> columns = new ArrayList<TreeTableColumn>();
TreeTableColumn column = new TreeTableColumn("id", "id", 40f);
columns.add(column);
column = new TreeTableColumn("ComboBox", 150f);
columns.add(column);
final TreeTableColumnModel cm = new TreeTableColumnModel(columns);
final TreeTable treeTable = new TreeTable(cm);
final Object[] values = new Object[2];
values[0] = "23";
final ComboBox<BaseModelData> combobox = new ComboBox<BaseModelData>();
combobox.setDisplayField("display");
final ListStore<BaseModelData> store = new ListStore<BaseModelData>();
for (int i = 0; i < 3; i++) {
final BaseModelData dummy = new BaseModelData();
dummy.set("display", "Number " + i);
store.add(dummy);
}
combobox.setStore(store);
values[1] = combobox;
final TreeTableItem item = new TreeTableItem(values);
treeTable.getRootItem().add(item);
viewport.add(treeTable);
RootPanel.get().add(viewport);
}
But due to the issues mentioned above (toString, rendering), this won't show the expected ComboBox.
Any ideas, how I can apply GXT-widgets inside a TreeTable?