protected void createNewODProject() {
    final IWizardDescriptor descriptor =
        WizardFinder.findNewWizardDescriptor(
            "org.gemoc.xdsmlframework.extensions.sirius.wizards.NewGemocSiriusProjectWizard");
    // Then if we have a wizard, open it.
    if (descriptor != null) {
      NewProjectWorkspaceListener workspaceListener = new NewProjectWorkspaceListener();
      ResourcesPlugin.getWorkspace().addResourceChangeListener(workspaceListener);
      try {
        IWorkbenchWizard wizard;
        wizard = descriptor.createWizard();
        ((NewGemocSiriusProjectWizard) wizard)
            .setInitialProjectName(XDSMLProjectHelper.baseProjectName(gemocLanguageIProject));

        IWorkbench workbench = PlatformUI.getWorkbench();
        wizard.init(workbench, null);
        WizardDialog wd = new WizardDialog(workbench.getActiveWorkbenchWindow().getShell(), wizard);
        wd.create();
        wd.setTitle(wizard.getWindowTitle());

        int res = wd.open();
        if (res == WizardDialog.OK) {
          ResourcesPlugin.getWorkspace().removeResourceChangeListener(workspaceListener);
          createdProject = workspaceListener.getLastCreatedProject();
          // update the project configuration model
          if (createdProject != null) {
            SiriusEditorProject editorProject =
                Xdsml_baseFactoryImpl.eINSTANCE.createSiriusEditorProject();
            editorProject.setProjectName(createdProject.getName());
            addOrUpdateProjectToConf(editorProject);
          } else {
            Activator.error("not able to detect which project was created by wizard", null);
          }
        }
      } catch (CoreException e) {
        Activator.error(e.getMessage(), e);
      } finally {
        ResourcesPlugin.getWorkspace().removeResourceChangeListener(workspaceListener);
      }
    } else {
      Activator.error(
          "wizard with id=org.eclipse.sirius.ui.specificationproject.wizard not found", null);
    }
  }