2015-05-08 8 views
0

В следующем коде я получаю информацию, которая мне нужна из проектов по умолчанию Workspace, но мне нужно изменить ее для проектов рабочих наборов.Как получить проекты (IProject) из рабочих наборов?

IWorkspace workspace = ResourcesPlugin.getWorkspace(); 

    // Get the root of the workspace 
    IWorkspaceRoot root = workspace.getRoot(); 

    // Get all projects in the workspace 
    IProject[] projects = root.getProjects(); 

    // Loop over all projects 
    for (IProject project : projects) { 
     try { 
      if (project.getName().equals("RemoteSystemsTempFiles")) 
      { 
       System.out.println("Ignored project"); 
       //setSystemName(project.getName()); 
      } 
      else 
      { 
       // Load the data model by extracting APIs declaration (Imports) 
       printProjectInfo(project); 
      } 
     } catch (CoreException e) { 
      e.printStackTrace(); 
     } 
    } 

Итак, я нашел answer, но как возвращение после автоматического повтора я получаю много информации, как:

- ProjectName (not open) 

или

- ProjectName 
    src 
     <default> (...) 
     src (...) 
    src.tryone (...) 
    C:\Program Files\Java\jre1.8.0_31\lib\resources.jar (not open) 

код, который возвращается, что информация:

 IWorkingSetManager manager = PlatformUI.getWorkbench().getWorkingSetManager(); 

    IWorkingSet [] allWorkingSets = manager.getAllWorkingSets(); 

    for (IWorkingSet aWorkingset : allWorkingSets) { 

     IAdaptable[] elems = aWorkingset.getElements(); 
     System.out.println("Working set " + aWorkingset.getName() + " has "+ elems.length + " projects."); 
     for (IAdaptable elem : elems) { 
       System.out.println("Working set " + aWorkingset.getName()+ " contains " + elem.toString()); 
     } 
    } 

Итак, вкратце, я хотел бы знать, как я могу получить IProjects из Рабочих наборов таким же образом или аналогичным образом с проектами рабочей области?

ответ

2

На каждом IAdaptable элемент вызова

IResource resource = (IResource)elem.getAdapter(IResource.class); 

, который будет возвращать любой ресурс, который представляет элемент (некоторые рабочие наборы содержат другие вещи, так что результат может быть нулевым).

Вы можете позвонить

IProject project = resource.getProject(); 
+0

Спасибо так много. Это сработало! –

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

  • Нет связанных вопросов^_^