]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/MarkAsRelevantCategory.java
Work on index policies.
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui.dist / src / main / java / org / argeo / slc / client / ui / dist / commands / MarkAsRelevantCategory.java
index 59b8e20e44139ac67a983a53756e0c49634a0468..f4f8bcbc3db57b8e4761342519894f953b2c0075 100644 (file)
@@ -41,8 +41,11 @@ public class MarkAsRelevantCategory extends AbstractHandler {
 
        public final static String ID = DistPlugin.ID + ".markAsRelevantCategory";
        public final static String DEFAULT_LABEL = "Mark as relevant category base";
+       public final static String DEFAULT_REMOVE_LABEL = "Remove this category from relevant list";
        public final static ImageDescriptor DEFAULT_ICON = DistPlugin
                        .getImageDescriptor("icons/addItem.gif");
+       public final static ImageDescriptor DEFAULT_REMOVE_ICON = DistPlugin
+                       .getImageDescriptor("icons/removeMark.gif");
 
        public Object execute(ExecutionEvent event) throws ExecutionException {
                try {
@@ -57,17 +60,24 @@ public class MarkAsRelevantCategory extends AbstractHandler {
                                        Iterator<?> it = ((IStructuredSelection) selector)
                                                        .iterator();
 
-                                       String msg = "Your are about to mark this group as category base in the current workspace"
-                                                       + ".\n" + "Are you sure you want to proceed?";
-
-                                       boolean result = MessageDialog.openConfirm(DistPlugin
-                                                       .getDefault().getWorkbench().getDisplay()
-                                                       .getActiveShell(), "Confirm", msg);
+                                       Node node = (Node) it.next();
+                                       if (node.isNodeType(SlcTypes.SLC_CATEGORY)) {
+                                               String msg = "Your are about to unlist this category from the relevant category list for current workspace"
+                                                               + ".\n" + "Are you sure you want to proceed?";
+                                               if (MessageDialog.openConfirm(DistPlugin.getDefault()
+                                                               .getWorkbench().getDisplay().getActiveShell(),
+                                                               "Confirm", msg)) {
+                                                       node.removeMixin(SlcTypes.SLC_CATEGORY);
+                                                       node.getSession().save();
+                                               }
+                                       } else {
+                                               String msg = "Your are about to mark this group as category base in the current workspace"
+                                                               + ".\n" + "Are you sure you want to proceed?";
 
-                                       if (result) {
-                                               while (it.hasNext()) {
-                                                       Node node = (Node) it.next();
-                                                       node.addMixin(SlcTypes.SLC_RELEVANT_CATEGORY);
+                                               if (MessageDialog.openConfirm(DistPlugin.getDefault()
+                                                               .getWorkbench().getDisplay().getActiveShell(),
+                                                               "Confirm", msg)) {
+                                                       node.addMixin(SlcTypes.SLC_CATEGORY);
                                                        node.getSession().save();
                                                }
                                        }