]> SALOME platform Git repositories - tools/siman.git/blobdiff - Workspace/Siman/src/org/splat/simer/ApplicationSettings.java
Salome HOME
Some PMD rules are satisfied.
[tools/siman.git] / Workspace / Siman / src / org / splat / simer / ApplicationSettings.java
index 8c8a6728d651f9077bb91f632779da47199e2f1a..06b640ce694e4871ba985d65e79d5c43b924bbdc 100644 (file)
@@ -23,6 +23,7 @@ import org.splat.dal.bo.som.DocumentType;
 import org.splat.dal.bo.som.KnowledgeElement;
 import org.splat.dal.bo.som.ProgressState;
 import org.splat.dal.bo.som.SimulationContext;
+import org.splat.dal.bo.som.Visibility;
 import org.splat.manox.XDOM;
 import org.splat.service.DocumentTypeService;
 import org.splat.service.technical.ProjectSettingsService;
@@ -205,6 +206,10 @@ public class ApplicationSettings {
         * Publish menu item name.
         */
        private static final String MNU_NAME_PUBLISH = "menu.publish";
+       /**
+        * Protect menu item name.
+        */
+       private static final String MNU_NAME_PROTECT = "menu.protect";
        /**
         * Edit menu item name.
         */
@@ -233,10 +238,6 @@ public class ApplicationSettings {
         * Mark as reference menu item name.
         */
        private static final String MNU_MARK_AS_REFERENCE = "markasreference";
-       /**
-        * Remove as reference menu item name.
-        */
-       private static final String MNU_REMOVE_AS_REFERENCE = "removeasreference";
        /**
         * Mark as reference menu item label key.
         */
@@ -473,18 +474,33 @@ public class ApplicationSettings {
        private static class EditableMarkedStudyPopup extends PopupMenu {
                private transient StudyRights _user = null;
 
-               private EditableMarkedStudyPopup() {
+               private EditableMarkedStudyPopup(final boolean isPublic, final boolean isMarked) {
                        super();
-                       addItem(MNU_MARK_AS_REFERENCE, new PopupItem(MNU_NAME_MARK_AS_REFERENCE)
-                                       .action(ACT_MARK_AS_REFERENCE).confirmation(
-                                                       "message.markasreference.study"));
-                       addItem(MNU_PUBLISH, new PopupItem(MNU_NAME_PUBLISH).icon(
-                                       "image.publish.png").action("edit-study?action=publish")
-                                       .confirmation("message.publish.study"));
+                       
+                       if (isMarked) {
+                               addItem(MNU_MARK_AS_REFERENCE, new PopupItem(
+                                               MNU_NAME_REMOVE_AS_REFERENCE).action(ACT_REMOVE_AS_REFERENCE)
+                                               .confirmation("message.removeasreference.study"));
+                       } else {
+                               addItem(MNU_MARK_AS_REFERENCE, new PopupItem(MNU_NAME_MARK_AS_REFERENCE)
+                                               .action(ACT_MARK_AS_REFERENCE).confirmation(
+                                               "message.markasreference.study"));
+                       }
+                       
+                       if (isPublic) {
+                               addItem(MNU_PUBLISH, new PopupItem(MNU_NAME_PROTECT).icon(
+                                               "image.publish.png").action("edit-study?action=protect")
+                                               .confirmation("message.protect.study"));
+                       } else {
+                               addItem(MNU_PUBLISH, new PopupItem(MNU_NAME_PUBLISH).icon(
+                                               "image.publish.png").action("edit-study?action=publish")
+                                               .confirmation("message.publish.study"));
+                       }
+
                        /* addItem(MNU_PROMOTE, new PopupItem("menu.archive")); */
                        addSeparator();
                        addItem(MNU_EDIT, new PopupItem("menu.properties").icon(
-                                       "icon.ed.png").action("../select?menu=properties"));
+                                       "icon.ed.png").action("../select?menu=configuration&item=prop-general"));
                        addSeparator();
                        addItem(MNU_SCRIPT, new PopupItem(MNU_NAME_SCRIPT)
                                        .action("add-scenario"));
@@ -512,96 +528,11 @@ public class ApplicationSettings {
                                Item item = Item.valueOf(name);
                                switch (item) {
                                        case publish:
-                                               res = _user.canPublish();
-                                               break;
-                                       case edit:
-                                               res = _user.canEditProperties();
-                                               break;
-                                       case script:
-                                               res = _user.canAddScenario();
-                                               break;
-                                       case version:
-                                               res = _user.canVersion();
-                                               break;
-                                       case remove:
-                                               res = _user.canRemove();
-                                               break;
-                                       case purge:
-                                               res = _user.canPurge();
-                                               break;
-                                       case markasreference:
-                                               res = _user.canMarkStudyAsReference();
-                                               break;
-                                       default:
-                                               res = false;
-                               }
-                       }
-                       return res;
-               }
-
-               @Override
-               public void setContext(final String name, final Object context) {
-                       if (context instanceof StudyRights) {
-                               _user = (StudyRights) context; // Just for optimizing
-                               boolean history = _user.getOperand().isVersioned();
-                               PopupItem item = this.item(MNU_REMOVE);
-                               if (history) {
-                                       item.rename(MNU_NAME_REMOVE);
-                               } else {
-                                       item.rename("menu.remove.study");
-                               }
-                       }
-               }
-       }
-       
-       // Resources relative to studies
-       private static class EditableUnmarkedStudyPopup extends PopupMenu {
-               private transient StudyRights _user = null;
-
-               private EditableUnmarkedStudyPopup() {
-                       super();
-                       addItem(MNU_MARK_AS_REFERENCE, new PopupItem(
-                                       MNU_NAME_REMOVE_AS_REFERENCE).action(ACT_REMOVE_AS_REFERENCE)
-                                       .confirmation("message.removeasreference.study"));
-                       addItem(MNU_PUBLISH,
-                                       new PopupItem(MNU_NAME_PUBLISH).icon("image.publish.png")
-                                                       .action("edit-study?action=publish")
-                                                       .confirmation("message.publish.study"));
-                       /* addItem(MNU_PROMOTE, new PopupItem("menu.archive")); */
-                       addSeparator();
-                       addItem(MNU_EDIT,
-                                       new PopupItem("menu.properties").icon("icon.ed.png")
-                                                       .action("../select?menu=properties"));
-                       addSeparator();
-                       addItem(MNU_SCRIPT,
-                                       new PopupItem(MNU_NAME_SCRIPT).action("add-scenario"));
-                       /*
-                        * addItem(MNU_VERSION, new PopupItem(MNU_NAME_VERSION).icon( IMG_VERSION).action(ACT_NOT_YET_IMPLEMENTED));
-                        */
-                       addSeparator();
-                       /*
-                        * addItem(MNU_PURGE, new PopupItem(MNU_NAME_PURGE) .confirmation("message.purge.study")); addItem("export", new
-                        * PopupItem("menu.export") .icon("image.export.png")); // For future needs
-                        */addItem(
-                                       MNU_REMOVE,
-                                       new PopupItem(MNU_NAME_REMOVE).icon(IMG_DELETE)
-                                                       .action(ACT_NOT_YET_IMPLEMENTED)
-                                                       .confirmation("message.delete.study"));
-               }
-
-               /**
-                * {@inheritDoc}
-                * 
-                * @see org.splat.wapp.ContextualMenu#isEnabled(java.lang.String)
-                */
-               @Override
-               public boolean isEnabled(final String name) {
-                       boolean res = (_user != null);
-                       if (res) {
-                               Item item = Item.valueOf(name);
-                               switch (item) {
-                                       case publish:
-                                               res = _user.canPublish();
+                                               if (_user.getOperand().getVisibility() == Visibility.PRIVATE) {
+                                                       res = _user.canPublish();
+                                               } else {
+                                                       res = _user.canProtect();
+                                               }
                                                break;
                                        case edit:
                                                res = _user.canEditProperties();
@@ -619,7 +550,11 @@ public class ApplicationSettings {
                                                res = _user.canPurge();
                                                break;
                                        case markasreference:
-                                               res = _user.canRemoveStudyAsReference();
+                                               if (_user.getOperand().getMarkreference() == 0) {
+                                                       res = _user.canMarkStudyAsReference();
+                                               } else {
+                                                       res = _user.canRemoveStudyAsReference();
+                                               }
                                                break;
                                        default:
                                                res = false;
@@ -1048,8 +983,10 @@ public class ApplicationSettings {
                _menus.put(menu.getName(), menu);
 
                _popups = new HashMap<String, PopupMenu>();
-               _popups.put("steditablemark", new EditableMarkedStudyPopup());
-               _popups.put("steditableunmark", new EditableUnmarkedStudyPopup());
+               _popups.put("steditablemarkpublic", new EditableMarkedStudyPopup(false, false));
+               _popups.put("steditableunmarkpublic", new EditableMarkedStudyPopup(false, true));
+               _popups.put("steditablemarkprivate", new EditableMarkedStudyPopup(true, false));
+               _popups.put("steditableunmarkprivate", new EditableMarkedStudyPopup(true, true));
                _popups.put("editable", new EditableDocumentPopup());
                _popups.put("notresult", new NotResultDocumentPopup());
                _popups.put("reviewable", new ReviewableDocumentPopup());