Liquiface használati útmutató

Posted by | · · · · | Cégélet · Liquiface | 2 hozzászólás Liquiface használati útmutató című bejegyzéshez

Egy korábbi bejegyzésben már említettük, hogy készítettünk egy Liquiface névre hallgató NetBeans plugint, mely a Liquibase nevű eszközhöz nyújt vizuális támogatást. Akkor elmondtuk, hogyan indult és röviden összefoglaltuk, hol tart a projekt. Ebben a bejegyzésben az utóbbira koncentrálnék, azaz részletesen bemutatom az alkalmazást és képességeit.

Felület

Telepítés után a Liquiface ablak a Netbeans menüjének Window almenüjéből érhető el. Az alkalmazást megnyitva a megjelenő ablakunk tartalmaz egy eszközsort, ahonnan elérhetőek a legfontosabb funkciók. Ha a modellünk fájlból vagy adatbázisból került megnyitásra, akkor itt megjelenítésre kerül annak forrása. Az üres területen elérhető popup menü ugyanazokat a funkciókat tartalmazza, mint az eszközsor.

liquiface képernyőkép

Liquiface képernyőkép megnyitott adatbázissal

Megjelenítést szabályozó funkciók

Az eszközsoron találhatunk három ikont, melyek a megjelenítést szabályozzák. Ezek közül sorban az első az idegen kulcsok kirajzolását kapcsolja. Performanciai okokból ez alapértelmezetten kikapcsolt állapotban van.

A következő ikon az idegen kulcsok ábrázolásának módszerét szabályozza. Alapértelmezetten ortogonális útkeresési algoritmust használ, azaz a kulcsokat ábrázoló nyilak sosem haladnak keresztül egyetlen táblán sem: a közöttük található szabad “folyosókra” rajzoljuk ki őket. Sok idegen kulcs esetén ezeknek az útvonalaknak a kiszámítása lassú lehet, ilyenkor jön jól a közvetlen útkeresési beállítás. Ebben az esetben a nyilak egyenes vonallal kapcsolják össze a táblákat, miáltal a költséges számítások elhagyhatóak, a megjelenítés gyors lesz.

A harmadik ikon a változások megjelenítésére használt animációt kapcsolja.

Táblák szűrése

Amennyiben nincs szükségünk modellünk összes táblájának megjelenítésére, a terület bal oldalán található gombra kattintva megnyithatjuk a szűrőfelületet: itt választhatunk név alapú és szomszédsági szűrést is.

A név alapú szűrőfelületen két lista komponenst találunk. A felső komponens alapértelmezetten modellünk összes táblájának nevét tartalmazza, ám ez tovább szűkíthető a felette található mezőbe beírt kereséssel. A megfelelő táblák kiválasztása után a Filter gomb megnyomásával aktiválhatjuk a szűrést. Amennyiben nincs kiválasztott táblánk, a Filter gomb megnyomása megszünteti az aktuális szűrést.

name filter

Név alapú szűrés

A szomszédsági szűrés tábláink kapcsolatainak feltérképezésekor lehet hasznos. Ezen a felületen először egy táblát kell kiválasztanunk, majd meg kell adnunk, hogy milyen mélységig akarjuk a tábla kapcsolatait megjeleníteni. Emellett beállíthatjuk, hogy milyen irányú kapcsolatokra vagyunk kíváncsiak.

szomszédsági szűrés

Szomszédsági szűrés

Adatok kezelése

A Liquibase egy nagyszerű eszköz, mely igen sok funkcióval látja el felhasználóit. Ezen teljes funkcionalitás vizuális lefedése túlmutat projektünk jelenlegi keretein: egyelőre csak a leggyakrabban használt, legfontosabb funkciókat támogatjuk, amiknek a száma azért így sem csekély.

Modell megnyitása

Ahhoz, hogy adatainkat szerkeszthessük, szükségünk van egy modellre. Modellhez három módszerrel juthatunk:

  1. Teljesen újat hozunk létre
    Ez talán nem szorul különösebb magyarázatra, tiszta lappal indulunk.
  2. Beolvasunk egy changelog fájlt
    Ebben az esetben figyelnünk kell arra, hogy a Liquiface jelenleg nem veszi figyelembe a <preConditions> tagben meghatározott feltételeket: minden megtalált changesetet érvényesít a modellen. Azokat a changeket, melyeket nem tud értelmezni (pl. <sql> tag) figyelmen kívül hagyja.
  3. Beolvasunk egy adatbázist
    A Netbeansben definiált adatbáziskapcsolatainkat felhasználva tudunk csatlakozni közvetlenül egy adatbázishoz is. Ilyenkor az adatbázis aktuális állapotából képezzük a modellt.

Modell módosítása

Ha már van modellünk, akkor máris tudunk módosítani rajta. Lehetőségeinket három szinten érhetjük el.

Globálisan elérhető módosítások

scene_popup

Globálisan elérhető popup menü

A megjelenítési felület szabad részére kattintva érhető el a globális popup menü. Ez a menü, ahogy korábban már említésre került, tartalmazza az eszközsoron megtalálható funkciókat, emellett kiegészül az új tábla létrehozásának lehetőségével.

A megfelelő liquibase changesethez igazodva új tábla létrehozásakor lehetőségünk van a hozzá tartozó oszlopok definiálására is. A tábla neve alatt található egy összesített nézet a már hozzáadott oszlopokról. Új oszlopnál a típus megadása szabad-szövegesen történik, de található mellette egy legördülő menü is, amiben ha kiválasztunk egy értéket, az automatikusan beíródik a típus mezőbe. A legördülő menü értékkészlete jelenleg fix, de a hosszabb távú tervek között szerepel a funkció bővítése. Ezen felül új oszlop hozzáadásakor támogatjuk még az autoincrement, unique és not null beállítások használatát.

create_table

Új tábla létrehozása

Táblán elérhető módosítások

table_popup

Tábla fejlécén elérhető popup menü

Egy tábla fejlécén kattintva elérhetjük a tábla szintű módosításokhoz tartozó popup menüt. Itt hozzáadhatunk új oszlopokat a táblához (hasonló módon, mint új tábla létrehozásakor), illetve megadhatunk és törölhetünk elsődleges kulcsot, idegen kulcsot, unique constraintet, valamint átnevezhetjük és eldobhatjuk a táblát. Új kulcsok létrehozásakor és kezelésekor támogatjuk az összetett kulcsokat is. A kulcsok eldobását csak akkor engedélyezi a rendszer, ha semmilyen kapcsolatban nincsenek használva. Tábla eldobására nincs ilyen megkötés. A unique constraintek is a kulcsokhoz hasonlóan működnek.

A megjelenített tábla oszlopai mellett piktogramokkal jelöljük, ha az adott oszlop része egy kulcsnak. Elsődleges kulcs esetén egy sárga kulcs ikonja, idegen kulcs esetén egy szürke kulcs ikonja jelenik meg.

add_fk

Idegen kulcs létrehozásakor meg kell adni, hogy a hivatkozott tábla melyik constraintjére mutatunk, és be kell állítani, hogy a constraint melyik oszlopának melyik helyi oszlop felel meg

Oszlopon elérhető módosítások

column_popup

Oszlopon elérhető popup menü

Egy oszlopra kattintva elérhetjük az oszlop szintű módosításokhoz tartozó popup menüt. Itt átnevezhetjük és eldobhatjuk az oszlopot, átírhatjuk a típusát és állíthatjuk a kötelezőségét. A nem null beállítást az oszlop neve mellett egy sárga csillag ikonjával jelöljük.

Modell érvényesítése

Ha végeztünk modellünk átalakításával a változtatásokat több módon is eltárolhatjuk. A használható tárolási módszerek teljesen függetlenek attól, hogy milyen módon tettünk szert a modellre. Az alábbi lehetőségeink vannak:

  1. Mentés fájlként
    Ilyenkor teljesen új changelog xml fájlt hozunk létre. Mentés előtt meghatározhatjuk, hogy a változtatásainkat egyetlen changesetben szeretnénk-e látni, vagy minden változtatáshoz generáljunk saját changesetet.
  2. Hozzáadás meglévő fájlhoz
    Ilyen esetben a már létező changelog xml fájlhoz hozzáadjuk az új changeseteket. Ilyenkor minden változtatás hozzáadásra kerül, ami a modell megnyitása óta történt, de minden esetben megmaradnak a korábban létrehozott changesetek is (azok is, amelyeket jelenleg a felület nem támogat).
  3. Futtatás adatbázison
    Ha nem akarunk fájlba menteni, lehetőségünk van arra is, hogy rögtön adatbázison futtassuk a változtatásokat. Az elérhető adatbázisok listája ilyenkor is a Netbeansben definiált kapcsolatainktól függ.
save_changelog

Fájlba mentés előtt megtekinthetjük a generált changeseteket

Zárszó

Hát, ez lenne a Liquiface 1.0. Reméljük Ti is hasznosnak találjátok majd! Örömmel veszünk bármilyen észrevételt, tapasztalatot: ezeket az info@liquiface.org címen vagy itt a hozzászólások között oszthatjátok meg velünk!
Ha pedig érdekel Titeket, hogy mi is van a motorháztető alatt, akkor figyeljétek a blogot, mert további bejegyzésekben megosztjuk veletek a fejlesztés alatt szerzett tapasztalatainkat!


2 hozzászólás

hron84 says:

2013. szeptember 7. at 20:47

Kerdes: mi volt az oka annak, hogy a RelationFilter fulre jutott Clear Filter gomb, de a NameFilter fulre mar nem? Szerintem volna ertelme, egyszerubbe tenne a munkat, ha lenne egy fix takarito gomb, amivel ugymond tiszta lappal lehetne indulni.

Reply

Adorján Botond says:

2013. szeptember 10. at 15:09

NameFilter fülön, ha a Selected lista üres, mikor megnyomod a Filter gombot, akkor újrarajzolunk minden táblát, szűrés nélkül. A Selected lista pedig egyszerűen üríthető a Clear All gombbal. Szóval azért nem raktunk ki külön Clear gombot a NameFilter fülre, mert összesen egy kattintást spórolnánk vele.

Reply

Leave a comment