# Eclipse plugin fuer dummys



## bygones (2. Okt 2009)

Hi,

ich wuerde gern ein kleines Eclipse plugin schreiben. Es gibt zig tutorials im netz, ich wuerde aber gern aus zeit gruenden mich schnell spezialisieren.

Im grunde will ich ein Plugin haben, was den "New Java Project" mechanismus erweitert (also extra folders anlegen, bestimmte linkedresources erstellen, .classpath datei manipulieren).

Meine hoffnung ist es gibt irgendwo ne beschreibung wie ich genau DIESES Problem angehen kann (der extension point fuer "New Java Project", erweiterung von exist. Plugins) ohne Buecher zu lesen die alles behandeln.

oder ist dieser Wunsch naiv ?


----------



## bygones (2. Okt 2009)

im grunde suche ich einfach mal den code / klasse von dem Java New Project wizard oder was das auch immer is


----------



## Gonzo17 (2. Okt 2009)

Also wenn ich mit dem Plug-In Spy schaue, dann sagt er mir, dass dieser Wizard in org.eclipse.jdt.ui liegt. Da kannste mal schauen. Die Klasse heisst JavaProjectWizard.

Edit: Wie man das erweitert weiss ich gerade nicht so recht. Mir würde nur einfallen, dass du eben deinen eigenen Wizard machst und die Pages von diesem Wizard eben auch einbaust. Dann hättest du die Pages von vorher + deine neuen.


----------



## bygones (2. Okt 2009)

mhm interessant.. ueber den spy kann ich mir die klassen anschauen... nur sind die nirgends in den abhaengigkeiten des plugins ?


----------



## Wildcard (2. Okt 2009)

> mhm interessant.. ueber den spy kann ich mir die klassen anschauen... nur sind die nirgends in den abhaengigkeiten des plugins ?


Dein Plugin muss jdt.ui bei required bundles deklarieren.


----------



## bygones (2. Okt 2009)

Wildcard hat gesagt.:


> Dein Plugin muss jdt.ui bei required bundles deklarieren.



danke... 

scheinbar ist es nicht gewuenscht - es gibt eine "Discourage access" warnung...

oh man - ich fuehl mich wieder wien blutiger anfaenger

lol wie man es halt macht... man ignoriert warnings 

immerhin bekomm ich schonmal den dialog... mal schaun ob ich ihn manipulieren kann


----------



## Gonzo17 (2. Okt 2009)

Das liegt daran, dass es ein internal Package ist, in dem der Wizard liegt und man soll generell nicht auf solche Sachen zugreifen. Warum genau weiss ich auch nicht, aber tun kann man es trotzdem.


----------



## bygones (2. Okt 2009)

Gonzo17 hat gesagt.:


> Das liegt daran, dass es ein internal Package ist, in dem der Wizard liegt und man soll generell nicht auf solche Sachen zugreifen. Warum genau weiss ich auch nicht, aber tun kann man es trotzdem.



v.a. wenn newJavaProjectPageOne dann oeffentlich ist ?!


----------



## Vayu (2. Okt 2009)

wenn man auf eclipse funktionalität zurückgreift bei der plugin entwicklung, dann sollte man eigentlich schon auf die "discouraged access"-warnings achten und versuchen sie zu vermeiden, wenn man nicht nach jedem Eclilpse release nachschauen möchte, ob noch alles läuft 

aber ehrlich gesagt, ich ignoriere sie auch.

zu deinem Problem:
Direkt den Wizard erweitern kannst du nicht, aber du kannst dir die Klasse des Wizards kopieren und erweitern und dann per extension point den JavaProjectWizard überschreiben/neu definieren oder eben deinen eigenen JavaProjectWizardNeu anlegen.


----------



## bygones (2. Okt 2009)

ich finds nur nervig wenn ich im Grunde 1-2funktionalitaeten haben will (1 checkbox mehr, 1 file anders erstellen) eigentlich alles rumkopieren muss und nicht einfach mich per vererbung einhaengen kann und das entspr. hinzufuegen...


----------



## Wildcard (2. Okt 2009)

Die internal Packages sind dazu da um Entwicklern klar zu machen das es sich nicht um öffentlich API handelt, sich also im laufe der Zeit ändern kann.
Wenn man solchen Code verwenden will, ist es oft ratsam ihn einfach zu kopieren, dann ist man auf der sicheren Seiten (das ist die übliche Vorgehensweise unter Eclipse Entwicklern).


----------



## bygones (2. Okt 2009)

Wildcard hat gesagt.:


> Die internal Packages sind dazu da um Entwicklern klar zu machen das es sich nicht um öffentlich API handelt, sich also im laufe der Zeit ändern kann.
> Wenn man solchen Code verwenden will, ist es oft ratsam ihn einfach zu kopieren, dann ist man auf der sicheren Seiten (das ist die übliche Vorgehensweise unter Eclipse Entwicklern).



das mit internal packges ist mir vertraut und auch in ordnung... das ganze zieht halt einfach weitere kreise, da ich im grunde ja die selbe funktionalitaet nutzen will, aber ca 5-schiessmichtot Klassen kopiert werden muessen....

ist natuerlich nicht viel aufwand... werds dann wohl am Montag machen 

danke euch

PS: dennoch laeuft man durch das rumkopieren immer Gefahr etliche Codekopien zu haben und das sollte man ebenso eindaemmen - also bei vielen verwender nicht ueberlegen eine separate API dafuer bereitzustellen...

aber ganzzzz anderes thema


----------

