1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.security.app.action;
35
36 import info.magnolia.event.EventBus;
37 import info.magnolia.repository.RepositoryManager;
38 import info.magnolia.ui.api.action.ActionExecutionException;
39 import info.magnolia.ui.api.context.UiContext;
40 import info.magnolia.ui.api.event.AdmincentralEventBus;
41 import info.magnolia.ui.api.event.ContentChangedEvent;
42 import info.magnolia.ui.dialog.callback.DefaultEditorCallback;
43 import info.magnolia.ui.dialog.definition.FormDialogDefinition;
44 import info.magnolia.ui.dialog.formdialog.FormDialogPresenter;
45 import info.magnolia.ui.vaadin.integration.jcr.JcrNodeAdapter;
46
47 import javax.inject.Inject;
48 import javax.inject.Named;
49
50
51
52
53
54
55
56 public class OpenEditRoleDialogAction<D extends OpenEditRoleDialogActionDefinition> extends AbstractRoleDialogAction<D> {
57
58 private final JcrNodeAdapter itemToEdit;
59 private final FormDialogPresenter formDialogPresenter;
60 private final UiContext uiContext;
61 private final EventBus eventBus;
62
63 @Inject
64 public OpenEditRoleDialogAction(D definition, JcrNodeAdapter itemToEdit, FormDialogPresenter formDialogPresenter, UiContext uiContext, @Named(AdmincentralEventBus.NAME) final EventBus eventBus, RepositoryManager repositoryManager) {
65 super(definition, repositoryManager);
66 this.itemToEdit = itemToEdit;
67 this.formDialogPresenter = formDialogPresenter;
68 this.uiContext = uiContext;
69 this.eventBus = eventBus;
70 }
71
72 @Override
73 public void execute() throws ActionExecutionException {
74
75 FormDialogDefinition dialogDefinition = getDialogDefinition("role");
76
77 formDialogPresenter.start(itemToEdit, dialogDefinition, uiContext, new DefaultEditorCallback(formDialogPresenter) {
78 @Override
79 public void onSuccess(String actionName) {
80 eventBus.fireEvent(new ContentChangedEvent(itemToEdit.getItemId(), true));
81 super.onSuccess(actionName);
82 }
83 });
84 }
85 }