Cao,
Nisam bas siguran da sam u potpunosti shvatio problem, ali mi jako lici na concurrency control problem koji mozda i ne treba na prvom mestu resavati na View strani. Hocu da kazem da mi lici kao da nije reseno lock-ovanje dokumenta, jer ako jedan korisnik edituje dokument i desi se da sam sa sobom ima problem, zasto onda i neki drugi korisnik koji recimo krene malo nakon da edituje isti dokument (obojica drze dokument u edit modu), ne bi imao problem sa prvim korisnikom.
Ako je u pitanju slicna situacija, resavao sam je standardno primenom metode optimistickog lokovanja tj. ko pre devojci :) - ko prvi sacuva dokument - njegove promene ce biti sacuvane, a drugi korisnik mora biti obavesten o tome da je prvi izmenio u medjuvremenu nesto u vezi sa dokumentom (da li onog momenta kad ucini akciju "Save" ili ce neki observer istog momenta da ga obavesti, to je stvar implementacije, ali mora biti obavesten).
Znaci jos jednom kazem, nisam siguran da sam 100% shvatio o cemu se radi, pa mi se ucinilo da je problem u ovome i ako je tako predlazem:
http://en.wikipedia.org/wiki/Optimistic_concurrency_control
Standardno se koristi neki row id u tabeli iz baze (dodatna kolona koja oznacava verziju sloga). Row id moze biti timestamp ili bilo kakav version number gde ces uporedjivati verziju sloga svaki put kad se nesto promeni prilikom korisnikove akcije (znaci kad uzmes slog i posle kad zelis a ga update-ujes). Hibernate ima integrisanu podrsku za ovakve situacije:
http://www.hibernate.org/hib_d...ence/en/html/transactions.html (potpoglavlje 11.3.)
Ovo resenje je backend orijentisano, ukoliko nisam dobro shvatio i ako je problem striktno vezan za frontend - necu ti moci pomoci, jer sam tanak sa JSF-om (vise JSP, Tapestry, Struts, GWT) :(
Ali mi lici da to moze pomoci :)