public TableCellEditor getEditor(final ChangeInfo changeInfo) {
ComboBoxTableRenderer<String> editor = createComboBoxTableRenderer(changeInfo);
editor.addCellEditorListener(new CellEditorListener() {
@Override
public void editingStopped(ChangeEvent e) {
ComboBoxTableRenderer cellEditor = (ComboBoxTableRenderer) e.getSource();
String value = (String) cellEditor.getCellEditorValue();
Iterable<Pair<String, RevisionInfo>> pairs = Iterables.transform(changeInfo.revisions.entrySet(), MAP_ENTRY_TO_PAIR);
Map<String, Pair<String, RevisionInfo>> map = Maps.uniqueIndex(pairs, getRevisionLabelFunction(changeInfo));
Pair<String, RevisionInfo> pair = map.get(value);
selectedRevisions.put(changeInfo.changeId, pair.getFirst());
}