Es gibt jetzt für die JUnit View bei Fehlern einen neuen Button, der automatisch den Fehler-Trace in der Console View öffnet. Einfach unten rechts klicken in der JUnit View klicken:
Eclipse Plugin: Wie kann der absolute Dateipfad einer selektierten Datei aus der View des Package oder Project Explorer ermittelt werden?
Wie kann in Eclipse Luna 4.4.1 aus einem Plugin der absolute Dateipfad einer selektierten Datei aus dem Package oder Project Exporer ermittelt werden?
Das Selection Service wird ja schön hier beschrieben.
Befindet man sich nicht in einer View, sondern in einer Action, kann folgende Methode verwendet werden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/** * Liefert den selektierten absoluten Dateipfad aus der Package oder Project * Explorer View. * * @param explorer * Klassennamen des Package oder Projekt Exporers * @return der absolute Dateipfad oder null wenn nichts gewählt oder wenn * ein Projekt gewählt wird. */ private String getAbsolutenDateiPfad(final String explorer) { IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); IStructuredSelection structured = (IStructuredSelection) window.getSelectionService().getSelection(explorer); if (structured == null) { return null; } Object erstesElement = structured.getFirstElement(); if (erstesElement instanceof IFile) { IFile file = (IFile) structured.getFirstElement(); IPath path = file.getLocation(); return path.toPortableString(); } else { // Keine Projekte: org.eclipse.core.internal.resources.Project return null; } } |
Der Test liefert jeweils den Pfad inkl. Dateiname:
1 2 3 |
System.out.println("Im Package Explorer selektierte Datei: " + getAbsolutenDateiPfad("org.eclipse.jdt.ui.PackageExplorer")); System.out.println("Im Project Explorer selektierte Datei: " + getAbsolutenDateiPfad("org.eclipse.ui.navigator.ProjectExplorer")); |
Braucht man das Plattform Arbeisverzeichnis kann man dies über die folgende static Methode erhalten:
1 |
System.out.println("Plattform Arbeitsverzeichnis: " + Platform.getLocation()); |