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

Nem szemléltetett szolgáltatások

A példa Java szerkesztő futtatása

  1. Projekt létrehozása
  2. Készítsen egy ".jav" kiterjesztésű fájlt az újonnan létrehozott projektben. Automatikusan megnyílik a Java példaszerkesztő.
  3. 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ő.
  4. 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.
  5. 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.
  6. 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.)
  7. 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.
  8. 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ó.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Á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.
  6. 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.
  7. Á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.
  8. 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: