[Java lista] eclipse new file template
Legéndi Richárd Olivér
roante at freemail.hu
2007. Jan. 8., H, 21:24:45 CET
Szia Fisha!
Én épp most szívtam egy két hetet az Eclipse pluginokkal - szívtam, mert
0 ismerettel kellett egy saját productot összeraknom 2 hét alatt,
mindenféle saját editorral, outline-al, perspektívával meg minden egyéb
nyalánksággal ;]
Igen, ezt úgy tudod megcsinálni, ha saját plugint csinálsz (legalábbis
úgy is, nekem is ez volt az első ötletem, de szóljon valaki, ha tud
egyszerűbb módot).
Viszont készülj fel, hogy azért ez nem olyan egyszerű dolog, nekem pl.
napok elmentek, mire egy buildet sikerült összehoznom :-)
Kell csinálnod először is egy AbstractUIPlugin-ból származó valamit, itt
elég, ha a std. cuccokat megvalósítod, sok meló nem lesz vele (kell egy
ID, start, stop, ...)
Aztán kell egy saját perspektíva, amit majd a Java perspektívából
származtatsz.
Valahogy hozzá kell majd adnod a Java perspektívában azt a cuccot, amit
látni szeretnél, pl. fájlok, mappák hozzáadása így megy:
private void defineActions(IPageLayout layout) {
layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.folder");
layout.addNewWizardShortcut("org.eclipse.ui.wizards.new.file");
}
Ez csak annyit tesz, hogy amikor majd rámész a new-ra, akkor abban a kis
kinyíló menüben ezeket fogja csak ez a perspektíva felhozni. Tippre a
többi metódushoz nem kell hozzányulnod.
Azután tudni kéne, hogy mit is szeretnél abban a template-ben igazán
tárolni. Előfordulhat, hogy kellenek külön wizardok, ezeket a
BasicNewResourceWizard-ból kell származtatnod.
Ezekhez ha szükséged van wizard page-eket tudsz hozzáadni, ezeket a
WizardPage-ből származtasd (micsoda beszélő nevek :-)))).
No, a BasicNewResourceWizard-nak van egy doFinish() metódusa, oda
kellene beírkálnod, hogy mivel szeretnéd feltölteni a fájlt, valahogy így:
getShell().getDisplay().asyncExec(new Runnable() {
public void run() {
try {
// file kiírás
} catch (Exception e) {
e.printStackTrace();
}
}
});
Persze előtte valahogy létre kell hoznod azt az IFile-t amit használni
akarsz, majd hívni rá egy file.create(stream, true, monitor);-t, és ennyi.
Namost a fájl tartalmát megadni már mókásabb dolog, pl. sima üres
tartalmat megadni csak úgy lehet, ha pl. a "".getBytes()-ra ráállítasz
egy byte streamet, és kiírod :-)
Elég faramuci dolog, nekem jobbat nem sikerült csinálni.
Ha konkrét tartalmat akarsz belerakni, akkor a pluginod mellé beteszed a
filet, becsomagolod a jarba, és onnan kell kiolvasnod a tartalmát.
Doksikat itt találhatsz, amit itt megtalálsz, azt könnyen meg tudod
csinálni, de ha valami nincs itt ledokumentálva, azt elég nehezen fogod
tudni összerakni:
http://help.eclipse.org/help32/index.jsp (eléggé el vannak dugva rajta
az infók, de lehet keresgetni ;])
http://wiki.eclipse.org/ (itt nagyon jó howto-k vannak!!)
Nekem személyszerint egy irc channel segített sokat, de ide is akkor
érdemes menni ha ébren vannak a kollégák ;]
irc://irc.freenode.net/#eclipse
A többit nem próbáltam, de ha esetleg szükséged lesz rá, ne kelljen
keresgetni:
http://wiki.eclipse.org/index.php/IRC
A fejlesztésről még annyit, hogy az Eclipse hajlamos lenyelni a hibákat
(valami nem megy, de te észre se veszed), pl. ikonokkal kapcsolatban, ha
nem talál valamit, annak semmi nyoma nem lesz, max. annyi, hogy nincs
meg az ikon. Van egy érdekes szemlélete a dolognak (pl. egyes függvények
hajlamosak elszállni valami exception-ökkel, ha nem gui-s szálból hívják
őket).
Ajánlanám még figyelmedbe a "workspace/.metadata/log.txt" fájlt, ebbe te
is tudsz majd logolni, meg ide írkálja az exception dumpokat.
Remélem segít valamit!
Ricsi
Fisha wrote:
> Sziasztok!
>
> Hogyan lehet eclipse-ben a legegyszerubben uj fajta new file
> template-et
> csinalni. Legjobb az lenne ha a file new menuben lenne egy uj file
> tipus? Ehhez plugint kellene irni? Ha igen, mik a kulcsszavak egy
> ilyen fajta plugin irasahoz, amire keresni erdemes.
>
> Elore is kosz,
> Fisha mailto:fisha at freemail.hu
>
További információk a(z) Javalist levelezőlistáról