Package Explorer get Selection

ManIHang

Mitglied
Hallo Leute,

bin gerade dabei aus Testzwecken ein kleines Plugin zu erstellen. Was ich erreichen möchte ist: Wenn eine Datei im PackageExplorer ausgewählt wird, sollte es mir innerhalb einer anderen View den Pfad des ausgewählten Objektes anzeigen.

Das ganze sollte ähnlich der Properties View sein wo ich bei der Auswahl der Datei den Pfadnamen und weitere Informationen erhalte. Realisiert aber mit einem Table Viewer. Derzeit hätte ich es mit einem ISelectionListener probiert, problem ist, dass ich nicht auf meinen Dateinamen, bzw. Dateipfad komme.

Code:
ISelectionListener listener = new ISelectionListener() {
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
if (part.getTitle().equals("Package Explorer")) {
System.out.println(selection.toString());
}
}
};

Ausgabe:
HTML:
<empty selection>
[Test
  src
    <default> (...)
  C:\Program Files\Java\jre6u26\lib\resources.jar (not open)
  C:\Program Files\Java\jre6u26\lib\rt.jar (not open)
  C:\Program Files\Java\jre6u26\lib\jsse.jar (not open)
  C:\Program Files\Java\jre6u26\lib\jce.jar (not open)
  C:\Program Files\Java\jre6u26\lib\charsets.jar (not open)
  C:\Program Files\Java\jre6u26\lib\ext\dnsns.jar (not open)
  C:\Program Files\Java\jre6u26\lib\ext\localedata.jar (not open)
  C:\Program Files\Java\jre6u26\lib\ext\sunjce_provider.jar (not open)
  C:\Program Files\Java\jre6u26\lib\ext\sunmscapi.jar (not open)
  C:\Program Files\Java\jre6u26\lib\ext\sunpkcs11.jar (not open)]
[src [in Test]
  <default> (...)]
[org.eclipse.jdt.internal.ui.packageview.ClassPathContainer@59c70bb1]
[org.eclipse.jdt.internal.ui.packageview.ClassPathContainer@59c70bb1]
[<default> [in src [in Test]]
  test.java (not open)
  [Working copy] hello.java
    class hello]
[[Working copy] hello.java [in <default> [in src [in Test]]]
  class hello]
[test.java [in <default> [in src [in Test]]]
  class test]
[[Working copy] hello.java [in <default> [in src [in Test]]]
  class hello]
[test.java [in <default> [in src [in Test]]]
  class test]
[[Working copy] hello.java [in <default> [in src [in Test]]]
  class hello]

Es sollte aber so funktionionieren, hierbei wurde aber das Ausgewählte Element in der Editor View verwendet:
Code:
String fileId = "java";
IFile file = (IFile) part.getSite().getPage().getActiveEditor().getEditorInput().getAdapter(IFile.class);
if (file != null) {
IPath filePath = file.getProjectRelativePath();
if (filePath.getFileExtension().contains(fileId)) {
System.out.println(filePath.toString());
}
}

Viele Grüße, ManIHang
 

maestr0

Bekanntes Mitglied
Hey ManIHang,

hatte ein ähnliches Problem,schau dir mal die Seite an Eclipse Workbench: Using the Selection Service.
Relativ weit unten findest du das com.mountainminds.eclipse.selectionsample_1.1.0.jar Plugin,welches du in eclipse importierst und dir dann mal den quellcode anschaust.solltest dann schnell drauf kommen wie das ganze funktioniert.
 

Ähnliche Java Themen


Oben