public boolean performFinish()
  {
    IRunnableWithProgress runThread = new IRunnableWithProgress()  {
      public void run(IProgressMonitor monitor) throws InvocationTargetException {           
        try
        {
          doFinish(monitor);
        } 
        catch (Throwable e)
        {
          throw new InvocationTargetException(e);
        }
        finally {
          monitor.done();
        }
      }
    }; 
    
    try  {
      getContainer().run(true, false, runThread);
    }
    catch (InterruptedException e) {
      return false;
    }
    catch (InvocationTargetException e) {      
      Throwable re = e.getTargetException();
      P5ExportUtils.errorDialog(getShell(), re.getMessage(), e);
      return false;
    }
    return true;
  }