Salome HOME
Study validation cycle operations are implemented according to the specification.
[tools/siman.git] / Workspace / Siman / src / org / splat / simer / EditStudyAction.java
index c666c042fb0f273dcf44f7937623408ee61993de..73c5c95f364bd76734e69447a4096823aee117e3 100644 (file)
@@ -9,14 +9,37 @@ public class EditStudyAction extends DisplayStudyStepAction {
         */
        private static final long serialVersionUID = -4865668290514118396L;
 
+       /**
+        * Possible operations on a study.
+        */
        private enum Execute {
-               publish, protect, promote
+               /**
+                * Publish a study.
+                */
+               publish,
+               /**
+                * Make published study private.
+                */
+               protect,
+               /**
+                * Promote a study to the next state.
+                */
+               promote,
+               /**
+                * Demote a study from In-Draft or In-Check to In-Work.
+                */
+               demote
        }
 
-       // ==============================================================================================================================
+       // =========================================================================
        // Action methods
-       // ==============================================================================================================================
+       // =========================================================================
 
+       /**
+        * Perform operation on the selected study.
+        * 
+        * @return SUCCESS
+        */
        public String doEdition() {
                _openStudy = getOpenStudy();
 
@@ -28,48 +51,53 @@ public class EditStudyAction extends DisplayStudyStepAction {
                } else if (todo == Execute.protect) {
                        getStudyService().moveToPrivate(study);
                } else if (todo == Execute.promote) {
-                       getStudyService().moveToReference(study);
+                       getStudyService().promote(study);
+               } else if (todo == Execute.demote) {
+                       getStudyService().demote(study);
                }
+//             _openStudy.getMenu().refreshSelectedItem(); // Updates the menu icon, in case of other documents in approved state
                _openStudy.getPopup().setContext("study", _openStudy.getStudyRights()); // The context has changed
 
                setMenu();
 
                _myindex = null;
-               _selection = _openStudy.getSelection(); //actually, value doesn't matter, it just has to be not null
+               _selection = _openStudy.getSelection(); // actually, value doesn't matter, it just has to be not null
                doOpen();
                return SUCCESS;
        }
-       
+
        /**
         * Mark study as reference functionality.
+        * 
         * @return SUCCESS
         */
        public String doMarkAsReference() {
-               
+
                _openStudy = getOpenStudy();
                Study study = _openStudy.getStudyObject();
-               
+
                getStudyService().markStudyAsReference(study);
 
                _myindex = null;
-               _selection = _openStudy.getSelection(); //actually, value doesn't matter, it just has to be not null
+               _selection = _openStudy.getSelection(); // actually, value doesn't matter, it just has to be not null
                doOpen();
                return SUCCESS;
        }
-       
+
        /**
         * Remove study as reference functionality.
+        * 
         * @return SUCCESS
         */
        public String doRemoveAsReference() {
-               
+
                _openStudy = getOpenStudy();
                Study study = _openStudy.getStudyObject();
-               
+
                getStudyService().removeStudyAsReference(study);
 
                _myindex = null;
-               _selection = _openStudy.getSelection(); //actually, value doesn't matter, it just has to be not null
+               _selection = _openStudy.getSelection(); // actually, value doesn't matter, it just has to be not null
                doOpen();
                return SUCCESS;
        }