2016-06-21 15 views
-1

Ich möchte den Dateinamen und seinen Paketpfad in Eclipse erhalten, wenn man mit der rechten Maustaste auf das Menü klickt.Wie man den gewählten Dateinamen und seinen Paketpfad im Eclipse-Plugin erhält

Action-Klasse implementiert IObjectActionDelegate

Run-Methode ist wie folgt,

public void run(IAction action) 
{ 
    ISelection sel = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection(); 
    if (!(sel instanceof IStructuredSelection)) 
       return null; 
    } 
    IStructuredSelection selection = (IStructuredSelection) sel ; 
    Object obj = selection.getFirstElement(); 
    IFile file = (IFile) Platform.getAdapterManager().getAdapter(obj, IFile.class); 

Aber die "sel" Variable ist keine Instanz von IStructuredSelection. Daher gibt es null zurück.

Ich habe durch folgenden Link gegangen, How to get the active package path in eclipse workspace

Aber kein Ergebnis.

+0

Wenn laufen Sie diesen Code? –

+0

@ greg-449 Sobald der Benutzer auf das Kontextmenü geklickt hat. – abo

+0

Was ist die eigentliche Art von 'sel'? –

Antwort

0

Der Code, den Sie zeigen, sollte für eine Auswahl in einer Ansicht funktionieren, aber wenn Sie mit einem Editor arbeiten, müssen Sie die Dinge anders machen.

Etwas wie:

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 

IEditorPart editor = page.getActiveEditor(); 

IEditorInput input = editor.getEditorInput(); 

IFile file = (IFile)Platform.getAdapterManager().getAdapter(input, IFile.class); 
+0

Danke, es funktioniert. – abo