2009-02-25 15 views

Respuesta

15

El código sería:

IWorkbenchWindow window = 
    PlatformUI.getWorkbench().getActiveWorkbenchWindow(); 
ISelection selection = window.getSelectionService().getSelection("org.eclipse.jdt.ui.PackageExplorer"); 

ve un ejemplo de una acción como esta LuaFileWizardAction class.

+1

Gracias por la edición, Aaron. Extraje ese código incorrectamente ... – VonC

+0

Parece que tu enlace a la clase LuaFileWizardAction está roto. Redirige a http://www.blackducksoftware.com/ – David

+0

@David gracias. He actualizado el enlace. – VonC

32

El primer paso es obtener un servicio de selección, p. desde cualquier punto de vista o editor de la siguiente manera:

ISelectionService service = getSite().getWorkbenchWindow() 
      .getSelectionService(); 

O as VonC wrote, que podía llegar a través de la PlatformUI, si está ni en una vista o un editor.

A continuación, obtener la selección para el Explorador de paquetes, y echarlo a un IStructuredSelection:

IStructuredSelection structured = (IStructuredSelection) service 
      .getSelection("org.eclipse.jdt.ui.PackageExplorer"); 

de eso, usted puede conseguir su IFile seleccionado:

IFile file = (IFile) structured.getFirstElement(); 

ahora para obtener la ruta completa , tendrá que obtener la ubicación para el IFile:

IPath path = file.getLocation(); 

Que finalmente puede utiliza para obtener la verdadera ruta completa al archivo (entre otras cosas):

System.out.println(path.toPortableString()); 

Puede encontrar más información sobre el servicio de selección aquí: Using the Selection Service.

+1

"visto 9 veces" ... nadie mira esas preguntas;) De todos modos, respuesta bien detallada. +1 – VonC

+3

Al obtener la selección del explorador de paquetes, los elementos no son instancias si es IFile. Necesita realizar conversiones de recursos JDT->. – kberg

+0

@kberg El elenco lanza una excepción de hecho. Pero ¿qué quiere decir con realizar JDT-> conversión de recursos – Fofole

Cuestiones relacionadas