Példa - Java szerkesztő
Bevezetés
A Java szerkesztő példa az egyéni szövegszerkesztők rendelkezésére álló
szabványos szolgáltatásokat szemlélteti. Azt is bemutatja, hogyan lehet bejegyezni egy szerkesztőt egy
fájlkiterjesztéshez (ebben az esetben: .jav), és hogyan lehet megadni egy
egyéni dokumentumszolgáltatót, hogy a szerkesztő használhassa.Ez a példa csak bemutatási céllal készült.A Java szerkesztési támogatást az Eclipse Java Tooling nyújtja.
A példa kódja az org.eclipse.ui.examples.javaeditor
bedolgozóban található.
A kód megvizsgálásához ajánlott importálni a bedolgozót a munkaterületre.
A szolgáltatások a példaszerkesztőben vannak bemutatva
-
szintaxiskiemelés
-
tartalomtípusra érzékeny tartalomsegéd (Javadoc és Java kód)
-
kommunikáció a tartalomkiemelő és szerkesztő között, vagyis a
tartalomkiemelő kiválasztása táplálja a szerkesztő kiemelési
tartományát
-
két különböző megjelenítési mód
-
a kiemelési tartomány megjelölése egy vizuális
tartományjelzővel
-
a szerkesztő korlátozása, hogy csak a kiemelt tartományon belül található
szöveget mutassa (pl.: egy Java osztály egyetlen metódusának megjelenítése)
-
jelzőkezelő
-
dokumentummegosztás
Nem szemléltetett szolgáltatások
-
tartalomformázás
-
a tartalomkiemelő oldal dinamikus egyeztetése
A példa Java szerkesztő futtatása
-
Projekt létrehozása
-
Készítsen egy ".jav" kiterjesztésű fájlt az újonnan létrehozott
projektben.
Automatikusan megnyílik a Java példaszerkesztő.
-
Illessze be a Java kódot. A Java kód dinamikusan kiszíneződik. A példaszerkesztő különböző színekkel jeleníti meg a következő nyelvi
elemeket: többsoros megjegyzések, egysoros megjegyzések, Java nyelv
fenntartott szavai, karaktersorozatok és karakterállandók, szabályos
Java kód, valamint a Javadoc irányelveket követő többsoros megjegyzések. A JavaDoc megjegyzéseken belül a JavaDoc (zöld) kulcsszavak és HTML címkék
(szürkék) színezése eltérő.
-
Nyisson egy új többsoros megjegyzést azzal, hogy beszúr egy "/*"
jelet a Java megjegyzésen kívülre.
Minden, a "/*" jel és a "*/" jel első előfordulása, vagy a szövet vége
közötti szöveg színe vörösre változik. Fűzzön hozzá mégegy "*" jelet. A vörös tartomány feketére változik, mivel
a szabályos többsoros megjegyzések most vélhetően Javadoc dokumentációt
tartalmaznak. Hívja meg a kódsegédet a CTRL-Szóköz billentyűk használatával.
A tartalomsegéd funkciója az, hogy támogassa a felhasználókat a
kódírásban.
Így a meghíváskor a tartalomsegédnek minden lehetséges érvényes befejezést
fel kell sorolnia a meghívási helyen. A Javadoc-on belül a példaszerkesztő mindig felajánlja az összes Javadoc
kulcsszót.
-
Egy Java megjegyzésen kívül hívja meg a tartalomtippeket a
CTRL+SHIFT+Szóköz billentyűk használatával. Öt ajánlott lehetőség jelenik
meg. Válassza ki az egyiket, és nyomja meg az Entert. A kijelölt ajánlattal
megjelenik egy kis vörös lebegő ablak az aktuális sor fölött.
A tartalomtippek lehetővé teszik, hogy a felhasználó kifejezze szándékát
(például egy metódushívással), majd megjelenítik a felhasználó számára
ennek végrehajtásához szükséges környezetfüggő információkat. A példaszerkesztőben az ajánlás a kiinduló meghívási helyszín öt
karakteres körzetében számít érvényesnek. Amikor a tartalomtipp látható, hívja meg a tartalomsegédet a CTRL+Szóköz
billentyűk használatával.
Az ebben a helyzetben meghívott tartalomsegédnek
segítenie kell a felhasználót abban, hogy valóra váltsa a tartalomtippben
látható kifejezett szándékát. A Java kódon belül a példaszerkesztő mindig felajánlja az összes Java kód
kulcsszót.
-
Mentse el a Java kódot. A mentés frissíti a tartalomkiemelőt. A tartalomkiemelő tíz bejegyzést tartalmaz, amelyek mindegyike a Java kód
tíz egyforma méretű darabjának egyikét jelenti a szerkesztőben. Ez a fajta tartalomkiemelő került kiválasztásra, annak megjelenítésére,
hogy a kiemelt tartományok jelentéstani beállításai tetszőlegesen
választhatók. (Lásd a következő lépéseket.)
-
Válassza ki a bejegyzések egyikét a tartalomkiemelőben. A megfelelő sorokat egy kék sáv jelzi a szerkesztő bal oldali függőleges
vonalzójában.
-
Most váltson a Java szerkesztő részekre osztott megjelenítésére. Ehhez győződjön meg róla, hogy a szerkesztőn van a fókusz és nyomja meg
azt a gombot az asztal eszköztárban, amelynek lebegő súgójában a következő
feliratot látja: "Részekre osztott erőforrás-megjelenítő
engedélyezése/letiltása". Ez a funkció egyedülálló metódusnézetekhez és hasonló funkciókhoz
használható.
-
Válasszon ki egy másik bejegyzést a tartalomkiemelőben. A szerkesztő most csak a kijelölt szegmenseket mutatja. A bejegyzés kijelölésének megszüntetésével a tartalomkiemelőben ismét a
teljes Java kód láthatóvá válik.
-
Válasszon ki egy bejegyzést a tartalomkiemelőben, jelölje ki a látható
szöveg egy részét, és adjon egy feladatot a kijelöléshez. A feladat megjelenik a feladatlistában.
Módosítsa a látható kódot. A feladatlistában válassza ki az előzőleg
létrehozott feladatot, és nyomja meg a "Fájlra lépés" gombot. A feladat ki van választva a látható területen, megfelelően számításba
véve az előzőleg alkalmazott módosításokat.
-
Válasszon ki egy másik bejegyzést a tartalomkiemelőben. Tegye láthatóvá az előzőleg hozzáadott feladatot a feladatlistából. A szerkesztő kiemelési tartománya automatikusan felnagyításra kerül a
láthatóvá tett feladatok tartományának befogadására.
-
Nyisson meg egy új munkaterületet. Az új munkaterületen nyisson meg egy
Java szerkesztőt ugyanahhoz a fájlhoz, mint az eredeti munkaterületen. Módosítsa a szerkesztő tartalmát. Váltson vissza az eredeti
munkaterületre. A felhasználó megjeleníti a másik munkaterületen elvégzett
változtatásokat. Két, ugyanazt a fájlt megjelenítő szerkesztő között kapcsolat van.
Egyéni szövegszerkesztők létrehozásának alapelvei
A következő lépésekre rendszerint szükség van egy saját szövegszerkesztő
elkészítéséhez.
-
Készítsen egy dokumentumszolgáltatót. A dokumentumszolgáltató (lásd
IDocumentProvider) a szerkesztő beviteli elemeinek szöveges megjelenítését
tartalmazza. Fontos annak eldöntése, hogyan kerüljön végrehajtásra az elem és a
szöveges megjelenítés közötti fordítás, és hogy meg kell-e osztani a
dokumentumszolgáltatót több szerkesztő között. Lásd a FileDocumentProvider osztályt a Java példaszerkesztőben.
-
Készítsen egy dokumentum-particionálót. A dokumentum-particionáló (lásd
IDocumentPartitioner) különálló részekre oszt egy dokumentumot. A particionáló minden részt hozzárendel egy tartalomtípushoz. A
tartalomtípusok készletét a particionáló előre meghatározza. Minden dokumentum esetében frissíteni kell a dokumentum particionálásának
változását. Lásd a JavaPartitioner osztályt a Java példaszerkesztőben. A JavaPartitioner meghatározza a "többsoros megjegyzések", "Javadoc
megjegyzések" és "minden egyéb" típusok régióit. Biztosítani kell, hogy a dokumentumszolgáltató be legyen állítva minden
általa készített dokumentumnál.
-
Határozza meg, melyik forrásmegjelenítő bedolgozókat kell megadni. A többi támogatott bedolgozó között megtalálhatók az automatikus behúzási
stratégiák, a két kattintásra vonatkozó stratégiák, a tartalomformázó és a
szöveges megjelenítésegyengető. A további leírás a szöveges megjelenítésegyengetőre korlátozódik (lásd:
IPresentationReconciler).
A Java példaszerkesztőben a szöveges megjelenítésegyengető a
szintaxis-kiemelés megvalósítására használatos.
-
Az összes forrásmegjelenítő bedolgozóhoz hozza létre a megfelelő
kiterjesztést minden támogatott tartalomtípushoz. Amint fent látható, a dokumentum-particionáló megadja a támogatott
tartalomtípusokat. Az IPresentationReconciler alapértelmezett implementációja támogatja az
IPresentationDamagers és IPresentationRepairers használatát
kiterjesztésként.
Ezek a kiterjesztések egy bizonyos tartalomtípushoz specifikusnak
számítanak. Vagyis egy egyéni szerkesztő esetében a felhasználónak előbb meg kell
adnia a támogatott tartalomtípusok egy részhalmazát. A kiválasztott részhalmaz típusú területek például ki
lesznek emelve. E típusok mindegyikéhez meg kell
valósítani a kiterjesztéseket. Lásd a JavaDamagerRepairer és a JavaDocDamagerRepairer elemeket a
példaszerkesztőben.
-
Állítson össze egy forrásmegjelenítő konfigurációt az előzőleg létrehozott
bedolgozók és kiterjesztések használatával. Lásd a JavaSourceViewerConfiguration elemet a példaszerkesztőben.
-
Szabja testre a TextEditor vagy AbstractTextEditor osztályt az elkészített
dokumentum-particionáló és forrásmegjelenítő konfigurációval. Adja hozzá vagy cserélje le a műveleteket és adaptálja a szerkesztő
helyzetérzékeny menüjének szerkezetét. Az aktuális verzióban ezt a személyre szabást egy alosztályban kell
elvégezni. Lásd a JavaEditor elemet a példaszerkesztőben.
-
Állítson be egy megfelelő műveletsor résztvevőt, aki hozzáadja a
szerkesztővel összefüggő műveleteket az asztal eszköztárához és menüihez. Lásd a JavaActionContributor elemet a példaszerkesztőben.
-
Terjessze ki a szerkesztő bedolgozójának XML konfigurációs fájlját, így a
szerkesztő bejegyzésre kerül az előre meghatározott szerkesztő
kiterjesztési ponton egy adott fájlkiterjesztés-készlethez. Állítsa be a műveletsor résztvevőt is az XML fájlban.
Lásd a példa plugin.xml fájlját.
A példa kódszervezése
A Java szerkesztő példakód négy csomagból áll:
-
Az
org.eclipse.ui.examples.javaeditor
a szerkesztőspecifikus
osztályokat tartalmazza.
-
Az
org.eclipse.ui.examples.javaeditor.java
a Java-specifikus
forrásmegjelenítő bedolgozókat tartalmazza, mint például a
JavaDamagerRepairer, valamint a Java-specifikus dokumentumparticionálót.
-
Az
org.eclipse.ui.examples.javaeditor.javadoc
a
Javadoc-specifikus forrásmegjelenítő-bedolgozókat tartalmazza, mint
például a JavaDocDamagerRepairer.
Az org.eclipse.ui.examples.javaeditor.util
kényelmi
osztályokat tartalmaz, megosztva a másik három csomaggal.