@EventHandler(display = true) protected void onFeatureClick(FeatureClickEvent ev) throws IOException { if (!viewer.getTable().isDisposed()) { IFeatureTableElement[] selected = viewer.getSelectedElements(); String clickedFid = ev.clicked.get().getIdentifier().getID(); if (selected.length != 1 || !selected[0].fid().equals(clickedFid)) { // viewer.setSelection() does not work with LazyContentProvider int index = contentProvider.indexOfFid(clickedFid); viewer.getTable().select(index); viewer.getTable().showSelection(); } } else { EventManager.instance().unsubscribe(this); } }