Pogledajte određenu poruku
Staro 07. 06. 2005.   #3
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Napravio sam jedano prilično zgodno rešenje, ali daleko od toga da je jednostavno. U pitanju je sistem za generisanje i procesiranje formularan baziran na komponentama.

Komponente nasleđuju BaseComponent klasu i imaju ime, raspon vrednosti i niz apstraktnih metoda (checkRange, checkValue, getComponentCode...). Svaka prava komponenta implementira ove metode.

Lepota ovog sistema je što je užasno fleksibilan i proširiv jer sve leži u nasleđivanju. Tako npr. imamo bazni tekst input. Ništa ne radi, samo vaća kod i vrednost kao string. Međutim, iz njega nasleđujemo Float input, Integer input, Text input i dodajemo kojekakve validacije.

Pošto se sama komponenta brine za serverside validaciju onda se može sastojati i iz više kontrola. Npr. datum pomoću 3 select boxa, kompleksna WYSIWYG editor itd.

Dalje, tu je Form klasa koja se brine o printanju formu, validaciji i skupljanju vrednosti. Doda joj se niz komponenti, a onda pozove renderForm funkcija. Kada je potrebno skupiti sve vrednosti samo se kaže collectValues koja vrati FALSE ukoliko postoji greška.

Problem je u tome što sam i ja već ispustio sve detalje ovog sistemčića jer je ušniran u jedan od starijih projekata i nemam ga u "samostalnom" obliku. Par puta mi je zatrebao, ali nikako da sednem i "izvučem" ga.

Inače, koncept je jako dobar, a forme se prave dok kažeš keks...
Ilija Studen je offline   Odgovorite uz citat