@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);
   }
 }