Digilaskussa on jo nyt yli
kaksikymmentä erilaista lomaketta. Syötekenttiä on noin 200. Yksi
digilaskun onnistuneimpia osioita on näiden hallinta: syötekenttien
validointi on pysynyt kohtuullisen hyvin kasassa.
Jokainen lomake on omassa luokassaan,
joka perii Vaatimen Form-luokan. Laskujen, lähetteiden ja tarjousten
formit perivät vielä tätä ennen abstraktin luokan, joka
määrittelee näille yhteiset ominaisuudet. Lähes kaikki formit
käyttävät suoraan Vaatimen datamallia, eli Java Beanit tai POJOT
asetetaan suoraan formeihin. Datan tallennus onnistuu siis helposti
ilman manuaalisia parsimisia, sillä formista tulee suoraan ulos ehjä
objekti tietokantaan tallennettavaksi.
Formin syötekentissä käytetään
useita erilaisia validaattoreita, jotka ovat myös omissa luokissaan.
Syötekenttiä on yleistetty aina kun mahdollista, jotta vältytään
perusvalidointien turhalta toistolta syötekentän luomisessa.
Vaatimen vahvuuksia on ehdottomasti monipuolinen syötekenttien
validointi.
Päädyimme toteuttamaan paljon
applikaation logiikkaa tallennusnappuloihin. Suurimmaksi osin tämä
toimii aika hyvin, vaikka paikoitellen rikomme räikeästi
olio-ohjelmoinnin perussääntöjä, mutta toisaalta, nyt bugien
lähteet on suhteellisen helppo selvittää. Elegantimpi tapa olisi
tehdä itse lomakkeista funktionaalisempia, jolloin data ja sitä
käsittelevät metodit olisivat samassa paikassa.
private Button getSaveButton() { Button save = new Button("Tallenna"); save.addListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { PersistenceManager pm = PMF.get().getPersistenceManager(); try { adminForm.commit(); userForm.commit(); user.setAccountId(ac.getAccountid()); user.setUserType(DigilaskuApplication.USERTYPE_ADMIN); pm.makePersistent(ac); pm.makePersistent(user); NotificationFactory.showSaveMessage(); } catch (Exception e) { } finally { pm.close(); } } }); return save; }
Comments
Post a Comment