2012-02-22 3 views
1

Моя конечная цель - создать плагин eclipse, который устанавливает проект PDT, но с некоторыми добавленными сборщиками (и скриптами пользовательской сборки), а также с конкретным расположением папок (и разные папки должны рассматриваться как источник, а некоторые - как обычные папки).Как создать настраиваемый макет проекта на основе другого плагина eclipse?

Я просмотрел/заработал учебник по разработке плагина eclipse и хорошо. Я получаю суть создания мастера, который создает файл, но у меня возникли проблемы с попыткой выяснить, как создать проект, и, что более важно, сделать этот проект связан с функцией PDT (PHP Development Tools).

Ответ:

Я наткнуться на решение сам до того, как был дан ответ, но это очень похоже.

Во-первых, WizardNewProjectCreationPage использовался как первая страница моего волшебника.

Во-вторых, на performFinish() я побежал следующий код:

 IProgressMonitor m   = new NullProgressMonitor(); 
     IWorkspaceRoot  root  = ResourcesPlugin.getWorkspace().getRoot(); 
     IProject   project  = root.getProject(_pageOne.getProjectName()); 

     if (!project.exists()) 
     { 
      IProjectDescription desc = project.getWorkspace().newProjectDescription(project.getName()); 
      URI projectLocation = _pageOne.getLocationURI(); 
      // desc.setLocationURI(projectLocation); 

      String[]   natures  = desc.getNatureIds(); 
      String[]   newNatures = new String[natures.length + 1]; 

      System.arraycopy(natures, 0, newNatures, 0, natures.length); 
      newNatures[natures.length] = PHPNature.ID; 

      desc.setNatureIds(newNatures); 
      project.create(desc, m); 
      project.open(m); 
     } 

ответ

1

как создать проект

Взгляните на BasicNewProjectResourceWizard.createNewProject() метод.

сделать этот проект, связанный с (Tools PHP Development) PDT функция

Вам нужно добавить "org.eclipse.php.core.PHPNature" в проекте (это то, что Добавить PHP Поддержка ... action.). Используйте IProjectDescription.setNatureIds().

+0

Благодарим вас за ответ. Я отредактировал свой вопрос, чтобы показать, что я сделал, чтобы выполнить то, что я хотел. Я наткнулся на него сам и почти идентичен тому, что вы описываете. Я просто не знал, как работает природа;) –

Смежные вопросы