2010-09-19 10 views
2

J'ai une action qui implémente IObjectActionDelegate. Dans cette action, je veux préformer certaines opérations sur le fichier sélectionné dans l'explorateur de paquets lorsque j'ai sélectionné mon action. J'ai seulement une méthode d'exécution (action IAction) et l'ObjectAction filtre les fichiers afin que l'action n'apparaisse que pour les fichiers que je veux.Comment obtenir le fichier sélectionné dans l'Explorateur de packages à partir d'Eclipse

Je cherche un moyen de récupérer un IFile de la sélection afin que je puisse exécuter mon action sur le fichier.

Merci,

+4

double possible de [Comment obtenir le nœud sélectionné dans l'explorateur de package à partir d'un plug-in Eclipse] (http://stackoverflow.com/questions/585802/how-to-get-the-selected-node- in-the-package-explorer-from-an-eclipse-plugin) –

+0

en effet Merci –

+1

S'il vous plaît marquer comme répondu, de sorte qu'il ne montre pas comme sans réponse, merci – ramirogm

Répondre

0

Voici le code pour obtenir la sélection.

if (selection instanceof IStructuredSelection) { 
    IStructuredSelection ssel = (IStructuredSelection) selection; 
    Object obj = ssel.getFirstElement(); 
    IFile file = (IFile) Platform.getAdapterManager().getAdapter(obj, IFile.class); 

    if (file == null) { 
     if (obj instanceof IAdaptable) { 
      file = (IFile) ((IAdaptable) obj).getAdapter(IFile.class); 
     } 
    } 

    if (file != null) { 
     //Deal with the file 
    } 
}