1 package org
.argeo
.security
.ui
.admin
.commands
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Iterator
;
7 import org
.argeo
.security
.UserAdminService
;
8 import org
.argeo
.security
.ui
.admin
.views
.RolesView
;
9 import org
.eclipse
.core
.commands
.AbstractHandler
;
10 import org
.eclipse
.core
.commands
.ExecutionEvent
;
11 import org
.eclipse
.core
.commands
.ExecutionException
;
12 import org
.eclipse
.jface
.dialogs
.MessageDialog
;
13 import org
.eclipse
.jface
.viewers
.ISelection
;
14 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
15 import org
.eclipse
.ui
.handlers
.HandlerUtil
;
17 /** Deletes the selected roles */
18 public class DeleteRole
extends AbstractHandler
{
19 private UserAdminService userAdminService
;
21 @SuppressWarnings("unchecked")
22 public Object
execute(ExecutionEvent event
) throws ExecutionException
{
23 ISelection selection
= HandlerUtil
.getCurrentSelection(event
);
24 if (selection
.isEmpty())
27 List
<String
> toDelete
= new ArrayList
<String
>();
28 Iterator
<String
> it
= ((IStructuredSelection
) selection
).iterator();
29 while (it
.hasNext()) {
30 toDelete
.add(it
.next());
35 HandlerUtil
.getActiveShell(event
),
37 "Are you sure that you want to delete "
40 + "This may lead to inconsistencies in the application."))
43 for (String role
: toDelete
) {
44 userAdminService
.deleteRole(role
);
47 RolesView view
= (RolesView
) HandlerUtil
48 .getActiveWorkbenchWindow(event
).getActivePage()
49 .findView(RolesView
.ID
);
54 public void setUserAdminService(UserAdminService userAdminService
) {
55 this.userAdminService
= userAdminService
;