After a couple of tries Ive managed to write something that gets the job done.
My example: List<String> opts = new ArrayList<String>(); opts.add("Enabled"); opts.add("Disabled"); table.addColumn(new IdentityColumn<MyData>(new ActiveSelectionCell(opts)), "Active"); private class ActiveSelectionCell implements Cell<MyData>{ private HashMap<String, Integer> indexForOption = new HashMap<String, Integer>(); private final List<String> options; public ActiveSelectionCell(List<String> options) { this.options = new ArrayList<String>(options); int index = 0; for (String option : options) { indexForOption.put(option, index++); } } @Override public boolean consumesEvents() { return false; } @Override public boolean dependsOnSelection() { return false; } private int getSelectedIndex(String value) { Integer index = indexForOption.get(value); if (index == null) { return -1; } return index.intValue(); } @Override public void setValue(Element parent, MyData value, Object viewData) { StringBuilder sb = new StringBuilder(); render(value, viewData, sb); parent.setInnerHTML(sb.toString()); } @Override public Object onBrowserEvent(Element parent, MyData value, Object viewData, NativeEvent event, ValueUpdater<MyData> valueUpdater) { String type = event.getType(); if ("change".equals(type)) { SelectElement select = parent.getFirstChild().cast(); if( options.get(select.getSelectedIndex()).equalsIgnoreCase("Enabled")) value.setActive("1"); else value.setActive("0"); System.out.println(value.getName() + " - " + options.get(select.getSelectedIndex())); // valueUpdater.update(value); } return viewData; } @Override public void render(MyData value, Object viewData, StringBuilder sb) { int selectedIndex = 0; if(value.getActive().equalsIgnoreCase("1")){ selectedIndex = getSelectedIndex("Enabled"); }else{ selectedIndex = getSelectedIndex("Disabled"); } sb.append("<select>"); int index = 0; for (String option : options) { if (index++ == selectedIndex) { sb.append("<option selected='selected'>"); } else { sb.append("<option>"); } sb.append(option); sb.append("</option>"); } sb.append("</select>"); } } If you think this was the wrong/not the best way to get an event from a cell, pleas give me a comment. On Jun 22, 1:25 pm, saklig <d3andr...@gmail.com> wrote: > Hi, > > How does one handle events from cells in a CellTable( specifically a > SelectionCell ) ? -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.