Author: EvaV Date: 2010-02-15 19:58:10 +0100 (Mon, 15 Feb 2010) New Revision: 1737 Modified: trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/impl/LayoutWorkerImpl.java trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/impl/UnlockLayourWorkerImpl.java trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/servlet/applet/LayoutLockingServlet.java Log: uprava zamykani layoutu - jen update Modified: trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/impl/LayoutWorkerImpl.java =================================================================== --- trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/impl/LayoutWorkerImpl.java 2010-02-15 16:25:37 UTC (rev 1736) +++ trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/impl/LayoutWorkerImpl.java 2010-02-15 18:58:10 UTC (rev 1737) @@ -253,7 +253,7 @@ public String whoLockedLayout(Integer layoutID) throws Exception { // get Hib layout from DB cz.elvys.webServer.HIBgen.Layout hibl = (cz.elvys.webServer.HIBgen.Layout) HibUtils.findByID( - cz.elvys.webServer.HIBgen.Layout.class, layoutID, "aspectRatio", "layoutPositions", "layoutPositions.contentTypes", "user"); + cz.elvys.webServer.HIBgen.Layout.class, layoutID, "aspectRatio", "layoutPositions", "layoutPositions.contentTypes", "userByLastLockUser"); if (hibl == null) { // desired layout is not set Modified: trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/impl/UnlockLayourWorkerImpl.java =================================================================== --- trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/impl/UnlockLayourWorkerImpl.java 2010-02-15 16:25:37 UTC (rev 1736) +++ trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/impl/UnlockLayourWorkerImpl.java 2010-02-15 18:58:10 UTC (rev 1737) @@ -1,11 +1,16 @@ package cz.elvys.dispatcher.impl; import org.apache.log4j.Logger; +import org.hibernate.HibernateException; +import org.hibernate.Session; +import org.hibernate.Transaction; import cz.elvys.commons.utils.HibUtils; import cz.elvys.dispatcher.api.LayoutWorker; import cz.elvys.dispatcher.api.UnlockLayoutWorker; +import cz.elvys.webServer.HIBgen.LayoutPosition; import cz.elvys.webServer.HIBgen.User; +import cz.elvys.webServer.db.InitSessionFactory; public class UnlockLayourWorkerImpl implements UnlockLayoutWorker { @@ -20,7 +25,7 @@ lockLayout(layoutID, companyID, userID, isLocked); } - private int lockLayout(Integer layoutID, Integer companyID, Integer userID, + private void lockLayout(Integer layoutID, Integer companyID, Integer userID, boolean setLocked) throws Exception { LayoutWorker worker = ServletLogicFactory.getInstance() @@ -41,15 +46,29 @@ layout.setLocked(setLocked); // store layout into DB - int resultID = -1; try { - resultID = ServletLogicFactory.getInstance() - .getLayoutStorageWorker().storeHIB(layout); + storeHIB(layout); } catch (Exception e) { String message = COULDNT_SAVE_INTO_DB; throw new Exception(message, e); } - return resultID; } + private void storeHIB(cz.elvys.webServer.HIBgen.Layout layoutHIB) + throws Exception { + Session sess = InitSessionFactory.getInstance().getCurrentSession(); + Transaction tx = sess.getTransaction(); + try { + tx.begin(); + } catch (HibernateException e) { + throw new RuntimeException(HibUtils.COULDNT_START_TRANSACTION, e); + } + try { + sess.update(layoutHIB); + tx.commit(); + } catch (Exception e) { + tx.rollback(); + throw e; + } + } } Modified: trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/servlet/applet/LayoutLockingServlet.java =================================================================== --- trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/servlet/applet/LayoutLockingServlet.java 2010-02-15 16:25:37 UTC (rev 1736) +++ trunk/server/dispatcher/JavaSource/cz/elvys/dispatcher/servlet/applet/LayoutLockingServlet.java 2010-02-15 18:58:10 UTC (rev 1737) @@ -141,7 +141,8 @@ PrintWriter writer = resp.getWriter(); if(isLocked) { try { - writer.write(IS_LOCKED + " " + worker.whoLockedLayout(layoutID)); + String lastLockUser = worker.whoLockedLayout(layoutID); + writer.write(IS_LOCKED + " " + lastLockUser); } catch (Exception e) { e.printStackTrace(); }