Java saját szoftver készítése 6. rész – ModifyDeleteDialog

Ugye most ott tartok a tervezésben, hogy vannak különféle listáim, melyek objektumokat tartalmaznak:

  • List<Order> orders: ez a megrendeléseket tartalmazza
  • List<Company> companies: a vállalatainkat tartalmazza
  • List<Customer> customers: a megrendelőket tartalmazza
  • List<Vat> vats: az áfa értékeket tartalmazza (mondjuk ez lehetne vatValues, szebben hangzik)
  • List<Employee> employees: ez pedig a dolgozóinkat tartalmazza

Tervezek egy ModifyDeleteDialog dialógusablakot, melyet az objektumok szerkesztéséhez és törléséhez használnék fel. Ez megkapná az adott listát, aminek elemeit egymás alatt megjelenítené. Ha a customers-t kapja meg, akkor az ügyfeleket listázza egymás alatt, ha az employees-t, akkor meg a munkatársainkat.

Na most még az nem tiszta, hogy pontosan hogyan is működjön ez az ablak. Kapja meg egy konstruktorban, hogy a Törlés vagy a Szerkesztés gombot tegye ki a dialógusra, és onnantól fogva csak a megadott feladatot lehet elvégezni.

Vagy tegye ki alapból a Törlés és a Szerkesztés gombokat is, és a felhasználó döntse el, hogy törölni akarja a kiválasztott elemet, vagy szerkeszteni. Ez utóbbinál lehet, hogy nincs is értelme Két külön menüpontba szétszedni a törlés és szerkesztés parancsokat, mert úgyis egy ablak a felelős értük.

Kb. ilyen az ablak elvi vázlata:

modifydeletedialog.jpg

A szerkesztési vagy törlési folyamatot ez az ablak indítja el minden objektumnál. Ha a felhasználó a törlést választja, akkor feldobok még egy dialógusablakot, mely a ConfirmationDialog nevet kapta. Itt megkérdezem a felhasználót, hogy Biztos? Igen gombbal törlöm az objektumot, és visszatérek a ModifyDeleteDialog-hoz. Nem gombbal törlés nélkül térek vissza.

Ha a felhasználó a szerkesztést választja, akkor pedig az adott objektumhoz kapcsolódó DetailsDialog-ot hívom meg. A CompanyDetailsDialog, CustomerDetailsDialog, OrderDetailsDialog, VatDetailsDialog és EmployeeDetailsDialog a felelős az új cég, ügyfél, rendelés, áfa vagy munkavállaló hozzáadásáért. A szerkesztés esetén ugyanezeket a dialógusablakokat hívom meg, csak nem üresen érkeznek, hanem az átadott objektum adatait írom bele a mezőkbe. A mentés előtt egy hibaellenőrzéssel leellenőrzöm a mezők megfelelőségét, ha minden rendben, frissül az adott rekord az adatbázisban. Ha nem, hibaüzenetet dobok. A mégsem gombbal bezárom az adott DetailsDialog-ot, és nem csinálok semmit az adatbázissal.