@Override
 protected void onCancelPressed() {
   super.onUpdatePressed();
   if (installerThread != null) {
     installerThread.interrupt();
   }
 }
 @Override
 public void updateIndexFilter(String[] filters, Predicate<ContributedLibrary>... additionalFilters) {
   if (additionalFilters.length == 1) {
     additionalFilters = new Predicate[] { additionalFilters[0], typeFilter };
   }
   super.updateIndexFilter(filters, additionalFilters);
 }
 @Override
 protected void onUpdatePressed() {
   super.onUpdatePressed();
   installerThread = new Thread(new Runnable() {
     @Override
     public void run() {
       try {
         setProgressVisible(true, "");
         installer.updateIndex();
         onIndexesUpdated();
       } catch (Exception e) {
         throw new RuntimeException(e);
       } finally {
         setProgressVisible(false, "");
       }
     }
   });
   installerThread.setUncaughtExceptionHandler(new InstallerJDialogUncaughtExceptionHandler(this, noConnectionErrorMessage));
   installerThread.start();
 }