]> SALOME platform Git repositories - tools/siman.git/blob - Workspace/Siman/src/org/splat/simer/EditStudyAction.java
Salome HOME
SIMAN Eclipse workspace first version
[tools/siman.git] / Workspace / Siman / src / org / splat / simer / EditStudyAction.java
1 package org.splat.simer;
2
3 import org.hibernate.HibernateException;
4 import org.hibernate.Session;
5 import org.hibernate.Transaction;
6 import org.splat.som.Database;
7 import org.splat.som.Study;
8
9
10 public class EditStudyAction extends DisplayStudyStepAction {
11     
12     private static final long serialVersionUID = -4865668290514118396L;
13
14         private enum Execute { publish, promote }
15
16 //  ==============================================================================================================================
17 //  Action methods
18 //  ==============================================================================================================================
19
20     public String doEdition () {
21 //  --------------------------
22       Session      connex  = Database.getSession();
23           Transaction  transax = connex.beginTransaction();
24           try {
25         mystudy = getOpenStudy();
26
27         Execute  todo   = Execute.valueOf(action);
28         Study    study  = mystudy.getStudyObject();
29         
30         if      (todo == Execute.publish) study.moveToPublic();
31         else if (todo == Execute.promote) study.moveToReference();
32         mystudy.getPopup().setContext("study", mystudy.getStudyRights());   // The context has changed
33
34 //      Useless to update the open study
35         transax.commit();
36         return SUCCESS;
37           }
38       catch (RuntimeException saverror) {
39         logger.error("Reason:", saverror);
40         if (transax != null && transax.isActive()) {
41 //        Second try-catch as the rollback could fail as well
42           try {
43             transax.rollback();
44           } catch (HibernateException backerror) {
45             logger.debug("Error rolling back transaction", backerror);
46           }
47         }
48         return ERROR;
49       }
50     }
51 }