public boolean performFinish ( ) { final String containerName = getProjectName ( ) ; final IPath location = projectPage . useDefaults ( ) ? null : projectPage . getLocationPath ( ) ; IRunnableWithProgress op = new IRunnableWithProgress ( ) { public void run ( IProgressMonitor monitor ) throws InvocationTargetException { try { doFinish ( containerName , location , monitor ) ; } catch ( CoreException e ) { throw new InvocationTargetException ( e ) ; } finally { monitor . done ( ) ; } } } ; try { getContainer ( ) . run ( true , false , op ) ; } catch ( InterruptedException e ) { return false ; } catch ( InvocationTargetException e ) { Throwable realException = e . getTargetException ( ) ; MessageDialog . openError ( getShell ( ) , "Error" , realException . getMessage ( ) ) ; return false ; } return true ; }
This method is called when Finish button is pressed in the wizard . We will create an operation and run it using wizard as execution context .