Mirki, małe podsumowanie postępów, wolniejszych zresztą niż przewidywałem (robota i grypa swoje musiały zająć...). Od momentu coming-out'u coming-out'u, wydaje mi się, że udało mi się projekt posunąć we właściwym kierunku. Ogarnąłem podstawowe funkcjonalności Hibernate na tyle, że napisałem proste DAO pozwalające na zapis i wczytywanie danych do bazy (na początku planowałem SQLite, ale ze względu na brak pełnego wsparcia Hibernate, przesiadłem się na HSQLDB), ogarnąłem też podstawowe klasy opisujące przedmiot i jego ceny i klasę reprezentującą stawki podatku VAT potrzebną do wyliczania cen.
Do zrobienia na nabliższe tygodnie:
- ogarnąć zależności między klasami:
- najważniejszym obiektem jest obiekt DAO i wydaje mi się, że najsensowniej będzie zrobić nadrzędny obiekt, na poziomie którego obiekt DAO będzie wstrzykiwany przez konstruktor do obiektów wymagających dostępu do bazy (przede wszystkim obiektu reprezentującego magazyn sklepowy, w którym będą przechowywane przedmioty).
- ogarnąć metody pobierania/dodawania/usuwaniu/wyszkiwania danych w obiekcie DAO. Zależy mi na tym, żeby było jak najbardziej uniwersalne i żebym w razie potrzeby miał gotową klasę, która z powodzeniem da się użyć w innym projekcie opartym o Hibernate. Narazie w metodach pobierania/dodawania używam klasy Object, ale jest to niewygodne ze względu na konieczność późniejszego rzutowania. Rzecz do ogarnięcia: Generics (nie znam zgrabnego terminu polskiego). Narazie klasa jest zaśmiecona i wymaga uproszczenia i
Do zrobienia na nabliższe tygodnie:
- ogarnąć zależności między klasami:
- najważniejszym obiektem jest obiekt DAO i wydaje mi się, że najsensowniej będzie zrobić nadrzędny obiekt, na poziomie którego obiekt DAO będzie wstrzykiwany przez konstruktor do obiektów wymagających dostępu do bazy (przede wszystkim obiektu reprezentującego magazyn sklepowy, w którym będą przechowywane przedmioty).
- ogarnąć metody pobierania/dodawania/usuwaniu/wyszkiwania danych w obiekcie DAO. Zależy mi na tym, żeby było jak najbardziej uniwersalne i żebym w razie potrzeby miał gotową klasę, która z powodzeniem da się użyć w innym projekcie opartym o Hibernate. Narazie w metodach pobierania/dodawania używam klasy Object, ale jest to niewygodne ze względu na konieczność późniejszego rzutowania. Rzecz do ogarnięcia: Generics (nie znam zgrabnego terminu polskiego). Narazie klasa jest zaśmiecona i wymaga uproszczenia i
Docelowo TimeKeeper, bo tak się nazywa, ma być zegarem/timerem do śledzenia czasu poświęconego na pracę nad danym zadaniem (inspiracją był blogowy wpis @JavaDevMatt). Jeśli chodzi o rozwiązania projektowe: dane przechowywane są w pliku .csv, ale podłączenie bazy danych przez np. Hibernate nie powinno być problemem (podmiana implementacji interfejsu + dodanie adnotacji, albo pliku xml). Każda część GUI jest obsługiwana przez odrębny kontroler. Dzięki temu nie ma jednego wielkiego pliku FXML, tylko kilka odrębnych mniejszych, a i sama klasa kontrolera jest znacznie mniejsza. DI jest rozwiązane bez framework'u, w głównym pliku FXML, który instancjuje kontrolery poszczególnych elementów UI i wstrzykuje do głównego kontrolera.
Apka ma też dawać możliwość zwinięcia do paska systemowego, ale póki co JavaFX nie pozwala na to (tzn. jest obejście z wykorzystaniem Swing'a, ale wolałbym go uniknąć). Na chwilę obecną zaimplementowana jest podstawowa funkcjonalność, tj. mierzenie czasu od dodania zadania do jego ukończenia z możliwością zapauzowania. Zmiany zapisywane są automatycznie co minutę plus przy każdym zapauzowaniu zadania Chcę dodać w najbliższym czasie kolumnę z ikonami (uruchomiona, zatrzymana, zakończona, +1h, +3h, +5h, +10h), pasek statusu i legenda u dołu i tooltipy oraz ogarnąć do końca wygląd okna i poszczególnych elementów. Mój #rozowypasek zasugerował, żeby dodać też opcję timer'a (odliczanie czasu od zadanej wartości do zera i później czasu ile przekroczono zadaną wartość).
Czego się nauczyłem przy
źródło: comment_vqhD1LY0shp2YTcXGuCrfmDCwZhJGies.jpg
Pobierznp:
// TODO: obsluga wyjatku
Twój IDE pokaże Ci takie markery na liście