2017-05-30 4 views
0

J'ai développé un plugin Eclipse qui crée un nouveau projet personnalisé via l'assistant de création de projet en utilisant INewWizard.Eclipse PDE: Comment charger un nouveau projet dans l'explorateur de paquets par programmation?

enter image description here

Une fois les informations entrées utilisateur et de la finition "clics, le projet est créé au sein de l'espace de travail avec succès. Le problème est que Package Explorer ne charge pas ce projet nouvellement créé sur l'événement 'Terminer'. Que devrait-on mettre en œuvre sous performFinish() de la dernière page de l'assistant pour charger automatiquement le projet dans l'explorateur de paquets?

Comment charger un tel projet nouvellement créé dans l'explorateur de paquets par programmation?

+0

Je suis tombé sur la méthode updatePerspective(), mais aucune idée sur la façon de l'utiliser. – Xplora

+1

Utilisez-vous 'IProject.create' et les autres API' IFile'? En utilisant les API correctes, le projet devrait être détecté automatiquement. –

+0

@ greg-449 En fait, aucun moyen ... J'ai créé un modèle personnalisé (projet Simple C++ avec quelques bibliothèques supplémentaires) sur le système de fichiers et le copier dans l'espace de travail sur performFinish(). Je ne pouvais pas trouver un moyen de travailler pour créer un projet C++ par programmation. Ce serait génial si vous pouviez pointer vers les bonnes étapes! – Xplora

Répondre

1

Idéalement, un projet doit être créé en utilisant la version de IProject.create qui prend un IProjectDescriptor. Mais si vous créez les fichiers de projet d'une autre manière, vous devez créer le projet en utilisant IProject pour en informer Eclipse. Vous pouvez utiliser quelque chose comme:

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); 
IProject project = root.getProject(projectName); 
if (!project.exists()) { 
    project.create(monitor); 
} else { 
    project.refreshLocal(IResource.DEPTH_INFINITE, monitor); 
} 

// TODO add files 

project.refreshLocal(IResource.DEPTH_INFINITE, monitor); 
+0

Merci! Le code ci-dessus crée et restitue automatiquement le répertoire du projet dans l'Explorateur de projet. Un problème: je dois encore cliquer avec le bouton droit sur le répertoire du projet et sélectionner 'Open Project' pour afficher la section 'Includes'. Est-il possible d'automatiser ce scénario. C'est un projet purement C++ avec quelques bibliothèques supplémentaires. – Xplora

+0

Je ne sais rien à propos du code CDT Eclipse –

+0

Pas de problème. "project.open (monitor);" a fait l'affaire! – Xplora