You can use a selection model:
Datagrid<Contract> table = new Datagrid<Contract>();
SingleSelectionModel<Contract> selectionModel = new SingleSelectionModel<Contract>();
table.setSelectionModel(selectionModel);
table.addDomHandler(new DoubleClickHandler() {
@Override
public void onDoubleClick(final DoubleClickEvent event) {
Contract selected = selectionModel.getSelectedObject();
if (selected != null) {
// TODO
}
}
}, DoubleClickEvent.getType());