No spring ma moznost pouzit externi editory pro tvorbu formu.
JJ presne o tom.
No nejlepsi je projit diskusi. Protoze je projekt hodne mlady, tak k
nemu dokumentace jeste moc neni. Ale je tam kompletni tutorial jak
vytvorit aplikaci.
Díky za informace, je to nesmírně zajímavé. Maličko je problém v tom,
že pro tvorbu formulářů používám Matisse, takže namapování musím
provést až pak dodatečně. Rozhodně mě ale Spring zajímá.
Jinak je řeč o tomto, že?
http://spring-rich-c.sourceforge.net/
Víte ještě o nějakém dobrém zdroji ukázek?
--------------------------- Původní zpráva ---------------------------
Odesilatel: Benda Lukas <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
Předmět: Chytre knihy o swingu
Datum: 10. října 2006, 22:16:54 (GMT +0200)
Přílohy: Zpráva.html
msgid:[EMAIL PROTECTED]
>
Jako halvni rozdil mezi Spring RCP a JGoodies bych videl, ze JGoodies
je zameren jen na formulare, kdezto Spring na beh cele aplikace.
Kdyz se jedna o formulare, tak tam se vytvareji vcelku jednoduse.
Skracene.
setFormObject(object);
formBuilder.add("polozka1");
formBuilder.add("polozka2");
formBuilder.add("polozka3");
formBuilder.add("polozka4");
formBuilder.add("polozka5");
formBuilder.getForm();
A muzete si zvolit ruzne alyouty, GridBag, TableBag. To uz je na vas.
Pokud mam formularovy objekt treba takovy:
String polozka1; -- Zobrazi se jako policko do ktereho se da vlozit
libovolny text
Integer polozka2; -- Zobrazi se jako policko do ktereho se da vlozit
jenom cislo
Enum polozka3; -- Zobrazi se jako rozbalovaci seznam s moznostmi z
vyctu. S tim, ze lozkalizovane nazvy polozek vezme ze zdroje zprav.
Date polozka4; -- Zobrazi se jako NachoCalendar (mozne je i calendar z
JGoodies, ale tam je obecne problem s lokalizaci), popripade jakykoli
jiny kalendar kdyz si na to udelas data binder
Selectable polozka5; -- No a tady tohle se zobrazi podle toho jaky
databinder vytvoris a cim ty data nacpes. Takze nekdy to mam jako
List, nekdy jako ComboBox to uz je na tobe. Proste podedis z
ComboBoxBinder a naplnis ten objekt datama jake potrebujes.
Co se tyce toho validatoru, tak tam je to postavene na modulu springu
validator. Takze to ma ty vlastnosti. Samozrejme ze validator musis
povetsinou napsat sam. Nekdy se to da udelat jenom s pomoci
regularnich vyrazu, nekdy je to potreba sprogramovat jako funkci.
Treba validator pro wizarda, ktery chce Jmeno, Prijmeni a rodne cislo,
s tim ze vsechno ve smysluplnem tvaru (ve jmene treba neni mezera,
nebo cislo atp., rodne cislo ma nalezitosti rodneho cisla), jsem
udelal takto:
/** Rules for creating new member of organization
* @return rules for creating member
*/
private final Rules createMemberRules() {
return new Rules(NewMember.class) {
protected void initRules() {
add("rodneCislo", getRodneCisloValueConstraint());
add("firstName", getNameValueConstraint());
add("secondName", getNameValueConstraint());
}
};
}
/** Methode which make contrains for new name
* @return complex contrains. Requird, max length and regexp
*/
private final Constraint getNameValueConstraint() {
return all(new Constraint[] {required(),
maxLength(MAX_NAME_LENGTH),
regexp("\\D*", "alphabetic")});
}
/** Methode which return contrains for new Rodne cislo
* @return coplex contrains and complex regexp
*/
private final Constraint getRodneCisloValueConstraint() {
String regexpMesice31 = "([05][13578](([012]\\d)|(30)|(31)))";
String regexpMesice30 = "([05][469](([012]\\d)|(30)))";
String regexpMesic2 = "((([02468][048])|([13579][26]))"
+ "([05]2(([01]\\d)|(2\\d))))"
+ "|" + "(\\d{2}[05]2(([01]\\d)|(2[0-8])))";
String regexpMesic11 = "([16]1(([012]\\d)|(30)))";
String regexpMesic12 = "([16]2(([012]\\d)|(30)}(31)))";
String regexpMesice = "(" + regexpMesice31 + "|" + regexpMesice30
+ "|" + regexpMesic11 + "|" + regexpMesic12 + ")";
String regexpRodneCislo = "((" + regexpMesic2 + ")|(\\d{2}"
+ regexpMesice + "))/\\d{3,4}";
return all(new Constraint[] {required(),
maxLength(MAX_RODNECISLO_LENGTH),
regexp(regexpRodneCislo)});
}
Ten regularni vyraz pro rodne cislo by mozna sel napsat i jednoduseji,
ale ja zase v regularech nejsem tak sbehli. Kazdopadne az na
delitelnost jedenacti (ktera fakt nevim jak se v regularu dela)
kontroluje vsechno (vcetne prestupnych roku a ctyrech cifer na konci
po roku 53).
Ahoj, odpovídám na zprávu z úterka, 10. října 2006, kterou Benda Lukas
napsal(a) v 18:21:45: No, součástí JGoodies je i Validation
framework, který přesně takové křížky umí, ale přijde mi to docela
složité. Respektive trochu moc upsané. Samotný JGoodies taky dokáže
zcela řídit, kdy má změna ve formuláři promítnout do datového modelu,
takže to Spring asi prostě jen převzal. I když možná to zjednodušil
;-) Tam se ty formuláře konfigurují jak? Je nato nějaké XML nebo
anotace? V případě JGoodies musím sám napsat třídu zajišťující
validaci, sám pro každý formulář provést mapování, atd. U toho
validátoru jsem přišel na zajímavou věc. Buďto lze docílit toho, aby
se nevyplněné položky modře podsvítily nebo jde chybně vyplněné
označit právě tím křížkem, ale nejde to zkombinovat, nechápu proč. O
to podsvícení nebo zvýraznění se starají dva různé handlery a nelze
použít oba. Leda si napsat vlastní handler. Docela mě to překvapilo.
--------------------------- Původní zpráva ---------------------------
Odesilatel: Benda<[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]>
Předmět: Chytre knihy o swingu Datum: 10. října 2006, 18:21:45
(GMT +0200) Přílohy: <none> msgid:[EMAIL PROTECTED]
<mailto:msgid:[EMAIL PROTECTED]> B> No nechci rikat ze by
to bylo snazsi, to uz je otazka jak rozsahle si B> prajete vlastnosti
vaseho formulare. Protoze Spring je obecne postaven B> na filozofii,
vytvorime spojovaci prostredi pro jiz existujici skvele B> projekty a
obcas pridame nejakou funkcnost navic. Obdobne pracuje i B> Spring
RCP. Tudiz integruje do sebe JGoodies, takze jste minimalne B> schopny
stejne jednoduse binding udelat. B> No je pravda, ze jsem se JGoodies
nikdy nezabyval do detailu, takze B> nevim jak presne funguje. B> Mne
ale na tomto uchvacuje (nevim jak je to v JGoodies, takze netvrdim B>
ze on to nemam), to ze vytvari FormObject, ktery je caschovany, takze
se B> zmeny do skutecne ziveho objektu (spojeneho s databazi) zapisi
az pro B> provedeni akce ulozeni. Samozrejme pred touto akci je mozno
provest B> kontrolu dat, stejne tak jako po vlozeni muzete reagovat
nejakou dalsi B> akci. Dal ma docela propracovane pravidla pro
vyplnovani formularu. B> Takze napriklad pri vkladani noveho clena
organizace mam ve wizardu B> nastavene policka tak, ze rodne cislo
musi byt validni a musi byt B> vyplneno jmeno a prijmeni, jinak je na
spatne vyplenem policku krizek, B> ze je policko neplatne a uzivatel
nemuze pokracovat ve vkladani. B> Dalsi super vlastnosti je moznost
vazby siwng koponenty (nebo komponent) B> na tridu parametru. Takze
kdyz napriklad vkladam dejme tomu adresu B> (adresu ma stejnou okres,
organizace, kraj, kontaktni osoba, clen - je B> to furt ten samy
formular), tak proste navazu na class Adressa formular B> s polickama
ulice, obec, posta, psc, telefon a pak pouze zadam B>
formBuilder.add("adressa"); a cely formular se mi vlozi do panelu jak
uz B> je predpripraven. B> Ma to samozrejme spustu dalsich moznosti.
Super provazani s wizardrama, B> ktere vlastne pouzivam uz casteji nez
dialogy. Dobra podpora B> Master/Detail/Detail/Detail ..... B> Tak
bych to rekl takhle kdyz umite Spring, je to super pro EE aplikace, B>
a kdyz uz ho znate a chapete jeho logiku, tak proc ho nevyuzit i pro
SE B> aplikace? Ja napriklad celou dobu vyvyjel dekstopovku a najednou
se B> ukazalo, ze bude zakaznik potrebovat mit vice klientu a jenom
jednu B> aplikaci. Takze vsechno co jsem udelal, ze jsem aplikaci
roztrhl a do B> popisovace vlozil pet radku s popisem pripojeni k RMI
a uz mam tri B> vrstvou aplikaci (samozrejme bez optimalizaci).
Bezproblemova i18n a B> sprava obrazku. B> A pro layouty a skiny se
vyuziva prevazne JGoodies. Takze asi tak. B> Paklize chcete vytvorit
jeden formular s daty, pak ma smysl uvazovat o B> prime vazbe JGoodies
+ JTA, nebo Hibernate. Ale kdyz chcete delat vetsi B> apliakci je dle
meho lepsi pouvazovat o nejakem RCP
Ahoj, odpovídám na zprávu z pondělka, 09. října 2006, kterou Benda
Lukas napsal(a) v 11:39:58:
Docela rád bych na tohle viděl nějakou ukázku :-(
Já tady před nějakým týdnem přesně popsal ve zprávě s předmětem "DB
<-> formulář (hibernate,JGoodies Binding,cglib)". Alespoň kdyby jste
mi mohl říct, zda je vámi používaný postup, tedy Spring PRC ve
výsledku jednodušší než to, co jsem popsal já. Nebo v čem je výhoda.
--------------------------- Původní zpráva ---------------------------
Odesilatel: Benda Lukas<[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]>
Předmět: Chytre knihy o swingu Datum: 9. října 2006, 11:39:58
(GMT +0200) Přílohy: <none> msgid:[EMAIL PROTECTED]
<mailto:msgid:[EMAIL PROTECTED]> B> V tomhle ohledu
zustavam zcela verny springu. A proto pouzivam i B> Spring-RCP.
Builduji si to sam, vzdycky tak jednou za mesic (stahnu z B> SVN a
spustim mavena, uplne jednoduche :)).
B> Zatim jsem se dostal do faze, ve ktere mi u zchodi komplet cele GUI
a B> jeste dodelavam server. Data Bindig, je resen jako formularove
modely. B> Nakonec vsechno ukladam pres Spring + Hibernate, ale
samozrejme by B> nebylo problem pouzit Spring JPA.
B> Ze startu mi sice chvili trvalo, nez jsem se do toho dostal.
Spoustu B> veci je nutno pochopit ze zdrojaku, ale kdyz je pochopite,
tak to uz jde B> jak po masle.
B> Takze ja doporucuju Spring RCP
B> Lukas "benzin" Benda ([EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>;
http://benzin.bloguje.cz) B> Java a Delphi programator B> PHP a
JavaScript skrypter B> Tvurce databazovych aplikaci B> A "cestinarsky"
ignorant
Ahoj, odpovídám na zprávu z pátku, 06. října 2006, kterou URBAN Leos
napsal(a) v 15:41:00:
Já jsem přesně v tom stejném stavu. Postupně stále zkouším nové a
nové postupy, ale žere to dost čas. Ono navíc není řečeno, že i kdyby
taková kniha byla a popisovala tam nějaký konkrétní postup, že by ten
postup byl nejlepší. Zatím jsem se uchýlil k Hibernate, JPA, JGoodies
databinding a občas ještě něco navíc.
Však zde napište, co považujete za nejlepší a třeba se najde někdo,
kdo navrhne něco lepšího a pro ty další to bude tip, co zase naopak
zkusit.
--------------------------- Původní zpráva ---------------------------
Odesilatel: URBAN Leos<[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]>
Předmět: Chytre knihy o swingu Datum: 6. října 2006, 15:41:00
(GMT +0200) Přílohy: <none> msgid:[EMAIL PROTECTED]
<mailto:msgid:[EMAIL PROTECTED]> U> Ahoj,
U> neprimo odkazuji na prispevek Lukase B. s prosbou zda mi nekdo
nemuze U> doporucit podobne chytre knihy pro Swing?
U> Nejlepe neco kde by byla rozebrana nejaka aplikace pro praci s daty
U> (umyslne nepisu databazi protoze bych radsi EJB3 ale to bych asi
chtel moc).
U> Ja jsem stale ve stavu kdy to sice napisu ale na konci mam pocit ze
se U> to melo delat nejak jinak :-(((
U> Diky a hezky vikend, U> Leos
>> Ja bych spis doporucil knihy o RCP. >> Dobre jsou: **Eclipse Rich
Client Platform: Designing, Coding, and >> Packaging Java(TM)
Applications*
------------------------ Konec původní zprávy ------------------------
------------------------ Konec původní zprávy ------------------------
------------------------ Konec původní zprávy ------------------------
------------------------ Konec původní zprávy ------------------------
--
---------------------------------------------------------------------
Tomáš Procházka
E-mail: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
WWW: http://atom.sf.cz
ICQ: 87147320
---------------------------------------------------------------------