public boolean performFinish() {
    if (!isRepoValid()) return false;
    boolean res = super.performFinish();
    if (res) {
      final IJavaElement newElement = getCreatedElement();

      IWorkingSet[] workingSets = fFirstPage.getWorkingSets();
      if (workingSets.length > 0) {
        PlatformUI.getWorkbench().getWorkingSetManager().addToWorkingSets(newElement, workingSets);
      }

      BasicNewProjectResourceWizard.updatePerspective(fConfigElement);
      selectAndReveal(fSecondPage.getJavaProject().getProject());

      Display.getDefault()
          .asyncExec(
              new Runnable() {
                public void run() {
                  IWorkbenchPart activePart = getActivePart();
                  if (activePart instanceof IPackagesViewPart) {
                    (new ShowInPackageViewAction(activePart.getSite())).run(newElement);
                  }
                }
              });
      new CeylonNature().addToProject(getCreatedElement().getProject());
    }

    if (!useEmbeddedRepo && repositoryPath != null && !repositoryPath.isEmpty()) {
      IEclipsePreferences node =
          new ProjectScope(getCreatedElement().getProject()).getNode(CeylonPlugin.PLUGIN_ID);
      node.put("repo", repositoryPath);
      try {
        node.flush();
      } catch (BackingStoreException e) {
        e.printStackTrace();
      }
      /*getCreatedElement().getProject()
      .setPersistentProperty(new QualifiedName(CeylonPlugin.PLUGIN_ID, "repo"),
              repositoryPath);*/
      ExportModuleWizard.persistDefaultRepositoryPath(repositoryPath);
    }

    /*IEclipsePreferences node = new ProjectScope(getCreatedElement().getProject())
            .getNode(JavaCore.PLUGIN_ID);
    node.put(JavaCore.CORE_JAVA_BUILD_RESOURCE_COPY_FILTER, "*.launch, *.ceylon");
    try {
        node.flush();
    }
    catch (BackingStoreException e) {
        e.printStackTrace();
    }*/

    return res;
  }