ich bräuchte Hilfe in Bezug auf die zentrale Ereignisverarbeitung in Eclipse.
Ich möchte nämlich ein Plugin für Eclipse schreiben.
Bei einem Doppelklick auf einen Eintrag in einer (eigenen) View soll sich im (grafischen) Editor was tun.
Bitte um Ratschläge / Informationen jeder Art. Bücher habe ich auch schon gewälzt und im Internet geforscht… Bislang jedoch nichts Verwertbares bzw. Konkretes dabei gewesen.
Ein recht gutes pdf-Dokument findest Du, wenn Du in Google suchst mit
„eclipse plugin-in propertypage“ („Contribution to Eclipse“ von Kent Beck und Erich Gamma). Das Dokument scheint unter dem Link noch nicht ganz vollständig zu sein, aber vollständig kostet es offensichtlich Geld.
Und: downloade Dir am besten mal die eclipse-Examples von der Exclipse-Download-Seite und wirf ein Auge vor allem auf das plugin.xml.
Im plugin.xml werden die Extension-Points definiert, die der erste Einstieg in ein eigenes Plugin sind…
Die eigene View muß als Extension-Point im plugin.xml (Deines Plugins)definiert werden.
Ist in der View-Klasse z.B. ein Tree-Knoten Ausgangspunkt vom Doppelklick, dann muß auf dem TreeViewer-Objekt innerhalb der View ein DoubleClickListener registriert werden:
Aus der Selection ermittelst Du dann z.B. den TreeNode, aus dem TreeNode die Infos für die dahinterliegende Ressource und öffnest dann den Editor z.B. folgendermaßen:
Object o = sel.getFirstElement();
if (o instanceof TreeNode) {
…
IWorkbenchWindow dw = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
final IWorkbenchPage page = dw.getActivePage();
// Run as UI Thread. Only execute code concerning UI here!
if (page != null)
Display.getDefault().asyncExec(new Runnable() {
public void run() {
try {
IFile file = (IFile)MyFileReader.getResource(lName);
if (file != null)
page.openEditor((IFile)MyFileReader.getResource(lName));
}
catch (PartInitException e) {
System.out.println("??");
}
}
});
}
Über die Ressource-File-Extension läßt sich im plugin.xml steuern, welcher Editor geöffnet werden soll (sonst: Preferences-Zuordnung oder Betriebssystem-Einstellung)
Die Knoten-Klasse muß org.eclipse.core.runtime.IAdaptable implementieren und in der View-Klasse registriert werden: