*/
private static final long serialVersionUID = -4865668290514118396L;
+ /**
+ * Possible operations on a study.
+ */
private enum Execute {
- publish, 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() {
- try {
- _openStudy = getOpenStudy();
-
- Execute todo = Execute.valueOf(_action);
- Study study = _openStudy.getStudyObject();
-
- if (todo == Execute.publish) {
- getStudyService().moveToPublic(study);
- } else if (todo == Execute.promote) {
- getStudyService().moveToReference(study);
- }
- _openStudy.getPopup().setContext("study",
- _openStudy.getStudyRights()); // The context has changed
-
- setMenu();
-
- return SUCCESS;
- } catch (RuntimeException saverror) {
- LOG.error("Reason:", saverror);
- return ERROR;
+ _openStudy = getOpenStudy();
+
+ Execute todo = Execute.valueOf(_action);
+ Study study = _openStudy.getStudyObject();
+
+ if (todo == Execute.publish) {
+ getStudyService().moveToPublic(study);
+ } else if (todo == Execute.protect) {
+ getStudyService().moveToPrivate(study);
+ } else if (todo == Execute.promote) {
+ 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
+ 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
+ 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
+ doOpen();
+ return SUCCESS;
}
}
\ No newline at end of file