Návrh aplikace
JkCrud slouží jako nástroj pro generování uživatelského rozhraní. JkCrud není samostatně funkčním celkem, předpokládá se jeho integrace do jiné aplikace. Tato nadřazená aplikace pak zajišťuje obecnou funkcionalitu, například řízení přístupových práv nebo internacionalizaci. Uživatelem programu je obvykle programátor, kterému usnadní tvorbu uživatelského rozhraní pro databázové tabulky. Běžný uživatel má přístup pouze k vygenerovanému uživatelskému rozhraní.
Hierarchie balíčků a tříd
Aplikace JkCrud je rozdělena do několika balíčků podle jejich účelu a použití. Nejdůležitějším balíčkem je jkcrud.main.crud, který obsahuje základní součásti aplikace JkCrud. Patří mezi ně třídy pro přehled, stavy, uživatelské rozhraní a spolupráci elementů. Dalšími balíčky jsou jkcrud.elements s elementy, jkcrud.filters s filtry, jkcrud.components s komponentami pro zobrazení a editaci nebo jkcrud.validators s validátory dat. Hierarchie balíčků je přehledně zobrazena v příslušném diagramu v dalším odstavci.
Diagram balíčků
Přehled balíčků v aplikaci JkCrud
Diagramy tříd
Diagramy tříd zobrazují metody a atributy s úrovní přístupu public nebo package protected.
- jkcrud.components.displayables - komponenty pro zobrazení dat.
- jkcrud.components.updatables - komponenty pro editaci dat.
- jkcrud.db - připojení a práce s databází.
- jkcrud.elements - elementy pro přehled záznamů, například stránkování.
- jkcrud.enums - výčtové typy.
- jkcrud.filters - filtry pro filtrování dat v přehledu.
- jkcrud.helpers - pomocné třídy.
- jkcrud.main - hlavní balíček aplikace.
- jkcrud.main.crud - třídy hlavní aplikace JkCrud.
- jkcrud.main.crosscrud - třídy doplňkové aplikace JkCrossCrud.
- jkcrud.validators - validátory pro kontrolu dat v editačních komponentách.
Práce s databází
Práce s databází probíhá prostřednictvím javového rozhraní JDBC. S tímto rozhraním komunikují třídy DB, CrudDB a CrossCrudDB, které zapouzdřují metody pro manipulaci s daty. Doplňující statická třída DbConfig obsahuje údaje o připojení. Aplikace pracuje právě nad jedním typem databázového serveru. Pro změnu databáze je nutné vyměnit všechny již jmenované třídy, tj. DB, DbConfig, CrudDB a CrossCrudDB. Ve výchozí verzi aplikace JkCrud jsou podporovány databáze MySQL a PostgreSQL.
Návrhové vzory
Seznam návrhových vzorů včetně krátkého popisu jejich použití v realizovaném programu.
- Decorator - doplňování komponent o novou funkcionalitu nebo vzhled.
- Factory - vytváření elementů, komponent, validátorů a dalších objektů.
- Mediator - spolupráce mezi jednotlivými prvky grafického rozhraní v přehledu.
- Observer - události uživatelského rozhraní a jejich zpracování.
- Singleton - přístup k databázi.
- State - reprezentace stavu aplikace JkCrud.
V plánu je i použití návrhového vzoru Composite pro vnořování instancí JkCrudu a JkCrossCrudu do sebe.
Použité knihovny
SWING
SWING je knihovna prvků pro vytváření a obsluhu grafického uživatelského rozhraní pro platformu Java. V JkCrudu je používán pro vykreslení komponent a samotného rozhraní pro práci s databází.
JDBC
JDBC je aplikační rozhraní pro přístup k relačním databázím v programovacím jazyku Java. V aplikaci slouží právě ke spolupráci s databázovým serverem MySQL nebo PostgreSQL.
JUnit
JUnit je knihovna, která usnadňuje vytváření jednotkových testů v jazyce Java. V aplikaci je používána pro testování jednotlivých tříd a součástí.