YaJF (Yet another Java Framework)
Co to jest YaJF?
YaJF (po polsku: jeszcze inna struktura ramowa oprogramowania Java), to fundament systemów informatycznych oferowanych przez firmę MINARTEC. Właścicielem licencji jest Bartosz Minartowicz.
YaJF jest w całości kodowany w języku oprogramowania Java SE.
Jako system bazy danych został zastosowany MySQL 5.
Charakterystycznym aspektem dla YaJF jest umieszczone w bazie danych repository, które zawiera kluczowe dane dotyczące graficznej szaty systemu oraz jego połączenia z poszczególnymi tabelami w bazie danych.
Dlaczego YaJF?
Framework YaJF został specjalnie zaplanowany i zrealizowany jako stała baza w tworzeniu nowych systemów informatycznych. Umożliwia on sprawne i zarazem bezpieczne tworzenie aplikacji z bazą danych i graficznym interfejsem użytkownika. Jego szczegolne zalety to:
-
Architektura zawierająca repository, konsekwencją której jest możliwość rozszerzania systemu bez konieczności kodowania i kompilacji;
-
Kodowanie w Javie, które udostępnia wszelkie możliwości, jakie posiada ten język oprogramowania;
-
Konstrukcja wielojęzykowa, która umożliwia wygodny wybór języka obsługi przez użytkownika;
-
Szeroki zakres standartowej funkcjonalności peryferyjnej takiej, jak np. zintegrowany klient e-mail i wielorakie opcje wydruku wraz z możliwością zapisu do pliku w wielu formatach (np. PDF, XLS).
Składniki techniczne
-
Java SE;
-
MySQL 5;
-
Repository w bazie danych. Zawiera ono kluczowe dane dotyczące graficznej szaty systemu;
-
JavaHelp System (http://java.sun.com/products/jfc/tsc/articles/javahelp). Jest to zintegrowany z YaJF program, który w praktycznym zastosowaniu umożliwia w komfortowy sposób (kreowania jak i używania) dostęp to opisu pomocy dla danej funkcji poprzez naciśnięcie klawisza F1 lub przycisku Pomoc w pasku narzędzi (toolbar). 100 % Java;
-
JavaMail System (http://www.oracle.com/technetwork/java/javamail). Jest to zintegrowany z YaJF program, który umożliwia wysyłanie wiadomości e-mail. 100 % Java;
-
Logging. Jest to pewna struktura, której zadaniem jest skanalizowanie wyłapanych, występujących w programie stanów wyjątkowych. Przy wystąpieniu jakiegoś błędu w programie, zostaje on wyłapany i zapisany np. w pliku YajfLogFile.log lub/i wysłany jako wiadomość e-mail. Struktura ta umożliwia szybkie wyłapanie, zlokalizowanie i reakcję na zaistniały błąd. Logging jest integralną częścią języka oprogramowania Java;
-
SSL (Secure Sockets Layer), czyli bezpieczne połączenie, które jest częścią integralną Javy i MySQL;
-
JCalendar (http://www.toedter.com/en/jcalendar). Jest to dodatkowy program, który z YaJF został zintegrowany w celu komfortowej selekcji daty. 100 % Java;
-
Look & Feel. Struktura języka oprogramowania Java umożliwia w bardzo komfortowy sposób zmianę wyglądu szaty graficznej programu. Dodatkowo istnieje opcja użycia innych (niebędących już standartowo w Javie) kreacji szaty graficznej programu. Wiele kreacji jest dostępnych w internecie jako projekty Open Source, ale są też odpłatne produkty komercyjne.
Zarys funkcjonalności
-
Dobra ergonomia YaJF wyraża się w płynnej i logicznej kolejności wykonywanych akcji;
-
Przejrzystość poprzez jednolitą (stały schemat paska narzędzi i screenów) oraz płytką strukturę interfejsu użytkownika. To znaczy, że potrzebną funkcję można wywołać bezpośrednio, a nie poprzez otwieranie wielu skaskadowanych okienek;
-
Pomoc online. Poprzez naciśnięcie klawisza F1 lub kliknięcie przycisku Pomoc w pasku narzędzi (toolbar), w zależności od kontekstu, wywoływany jest tekst pomocy;
-
Zintegrowany klient e-mail. Dzięki niemu, każda aplikacja zbudowana na bazie YaJF może samodzielnie wysyłać i odbierać informacje pocztą elektroniczną;
-
Menu o strukturze drzewa. Wszystkie funkcje i opcje są osiągalne wyłącznie z tego menu. Celowo zrezygnowano z klasycznego „pull-down” menu;
- Task-Panel. Jest to pionowy pasek znajdujący się po prawej stronie aplikacji. Jest to miejsce na umieszczenie dowolnych funkcji rozszerzających standartową funkcjonalność każdego okienka;
Task-Panel zawierający 4 opcje.
- Możliwe są dowolne struktury Filter-Master-(Multi)-Detail;
Master-Only
Master-Detail
Master-Multi-Detail
Filter-Master-Detail. Dopiero po wprowadzeniu filtra (żółte pole w górnej części) wyświetlane zostaną wybrane dane.
- Framework YaJF standartowo posiada moduł administracji użytkowników z podziałem na profile;
Użytkownicy
Profile. Widoczna w dolnej części struktura drzewa, 1 do 1 odzwierciedla układ menu.
- Look & Feel do wyboru. Dzięki Javie możliwe jest bardzo proste nadanie aplikacji indywidualnego akcentu szaty graficznej;
Nimbus Look & Feel (standardowo w Javie SE).
Lipstik Look & Feel (http://sourceforge.net/projects/lipstiklf).
Napkin Look & Feel (http://napkinlaf.sourceforge.net).
- Dowolne ustawienie wielkości czcionki w czasie trwania programu za pomocą suwaka znajdującego się w prawym dolnym rogu aplikacji;
Font-Zoom
-
Dowolny język użytkownika. Framework YaJF jest dedykowany wielojęzykowości. Zastosowanie nowego języka wymaga jedynie tłumaczenia, a nie programowania;
-
W tabelach, nad każdą kolumną znajduje się pole filtru, które w prosty, ale skuteczny sposób otwiera niemalże nieskończone możliwości selekcji danych;
- Możliwość wyświetlania lub ukrycia wybranych kolumn po kliknięciu prawym przyciskiem myszki na symbol w prawym górnym rogu każdej tabeli;
Możliwe kolumny w tabeli ze screenu Osoby
- Dowolne ustawienie tła;
Tapeta
-
Wszystkie ustawienia użytkownika są zapisywane w bazie danych, zupełnie niezależne od komputera, na którym się pracuje. Innymi słowy: moje indywidualne ustawienia nie zalężą od konkretnego komputera, co więcej, nie zależą od systemu operacyjnego, na którym pracuję;
- Dowolne ustawienie miejsca wyświetlania zakładek (na górze, dole, po lewej lub prawej stronie);
Układ zakładek po lewej stronie.
- Możliwość widoku przedstawiającego okna wewnętrzne;
Wewnętrzne okna.
- Dowolnie kompleksowe raporty z podglądem, kodami kreskowymi i możliwością eksportu do plików PDF, RTF, HTML, XML, XLS, ODT, DOCX i CSV;
Raport zlecenia
- Przeróżne diagramy do wyboru wraz z możliwością ich bezpośredniego drukowania, kopiowania lub zapisania pliku PNG;
Diagramy
-
Możliwość automatycznego zawiadomienia pocztą elektroniczną w przypadkach wystąpienia stanów wyjątkowych systemu;
- Możliwość instalacji na wielu systemach operacyjnych, np. MS Windows, Linux.
Jak to działa?
Podstawą wszystkiego jest instalacja MySQL 5 lokalnie lub na serwerze i lokalna instalacja Java 6 SE.
Na początku jest YaJF z funkcjami standartowymi, to znaczy:
- Administracja profili. Profil Administrator jest już zdefiniowany;
- Administracja użytkowników. Użytkownik Administrator jest już zdefiniowany;
- Ustawienia użytkownika;
- Archiwum dokumentów;
- Strefa dewelopera.
Wygląda to tak:
Wygląd interfejsu YaJF na początku każdego projektu
W MySQL znajduje się baza danych (yajf_db), która zawiera wszystkie niezbędne do funkcjonowania YaJF tabele, triggery, procedury, funkcje itd.
Następnie wdrażana jest wymagana funkcjonalność. Wykonanie składa się z następujących kroków:
-
Definicja nowej, specyficznej dla powstającego systemu, bazy danych (nazwasystemu_db) wraz z potrzebnymi tabelami, procedurami itp;
-
W strukturze menu zostają umieszczone wszystkie potrzebne (wcześniej omówione i zdefiniowane) pozycje;
- Za pomocą repository (przycisk Repository w pasku narzędzi), do każdej pozycji w menu, następuje definicja okien (screenów) i ich zawartości. Zawartość repository odzwierciedla schematycznie układ pól, tabel, diagramów i innych rzeczy zawartych w screenie;
Repository do screenu Użytkownicy
Repository do screenu Użytkownicy - objekt (tutaj: TextField) zosteje dodany
-
Dodatkowa funkcjonalność niewymagająca interakcji użytkownika zostaje zrealizowana za pomocą YaJF-API;
-
Dodatkowa funkcjonalność wymagająca interakcję użytkownika zostaje zrealizowana w postaci nowych funkcji wprowadzonych do Task-Panela (patrz powyżej: hasło Task-Panel).
Wszystkim zainteresowanym chętnie udzielę więcej informacji nt. YaJF. Zapraszam.