2016-06-13 3 views
0

Je travaille sur un projet de plugin Eclipse qui implémente un assistant d'importation de fichiers, conçu pour les fichiers qui appartiennent à un type de projet personnalisé. L'une des pages de l'assistant est une page WizardNewFileCreationPage, où un explorateur de projet est automatiquement (autant que je peux voir) affiché. Cet explorateur de projet affiche tous les projets disponibles dans l'espace de travail. Cependant, puisque, comme je l'ai dit, les fichiers traités par l'assistant sont utiles à un type de projet particulier, je souhaite restreindre l'explorateur et afficher uniquement les projets de ce type personnalisé.Comment définir par programmation les types de projet que l'explorateur de projet dans un WizardNewFileCreationPage va afficher

Je sais comment sélectionner les projets d'un type personnalisé:

List<IProject> projectList = new LinkedList<IProject>(); 
    try { 
    IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); 
    IProject[] projects = workspaceRoot.getProjects(); 
    for(int i = 0; i < projects.length; i++) { 
     IProject project = projects[i]; 
     if(project.hasNature("com.example.www.myNature")) { 
      projectList.add(project); 
     } 
    } 
    } 
    catch(CoreException ce) { 
    ce.printStackTrace(); 
    } 

trouvé à ce lien: Get a list of all java projects open in an Eclipse workspace

Je suppose que la classe WizardNewFileCreationPage comprend, dans les coulisses, un TreeViewer ou quelque chose de similaire . Dans tous les cas, comment puis-je filtrer le contenu de l'explorateur de projet dans cette page de l'assistant? Je pris un coup d'œil à la question suivante: How to programmatically change the selection within package explorer, mais dans mon cas, la variable activePart est de type

org.eclipse.ui.navigator.resources.ProjectExplorer 

qui ne dispose pas d'une méthode getTreeViewer(). Il a une méthode createPartControl():

public void createPartControl(Composite aParent); 

Cela pourrait-il être utile pour ce que je veux? Ou est-ce un cas d'utilisation de points d'extension?

Merci d'avance pour vos réponses.

Répondre

0

Il n'y a aucun moyen de le faire.

Bien que l'arborescence illustrée dans WizardNewFileCreationPage ressemble à l'explorateur de projet, elle n'est pas basée sur ce code.

Le code utilisé pour afficher l'arbre est org.eclipse.ui.internal.ide.misc.ContainerSelectionGroup qui est lui-même contenu dans org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup. Ces classes ne supportent pas beaucoup la personnalisation et en tout cas ne sont pas accessibles en dehors de WizardNewFileCreationPage.

+0

Merci Greg, j'avais peur de ça. Je vais attendre un peu plus longtemps, mais je soupçonne que c'est votre réponse que j'accepterai. – zerzevul