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.ui.framework.action;
35
36 import info.magnolia.cms.i18n.MessagesManager;
37 import info.magnolia.commands.CommandsManager;
38 import info.magnolia.context.Context;
39 import info.magnolia.context.MgnlContext;
40 import info.magnolia.event.EventBus;
41 import info.magnolia.module.ModuleRegistry;
42 import info.magnolia.ui.api.context.UiContext;
43 import info.magnolia.ui.api.app.SubAppContext;
44 import info.magnolia.ui.api.event.AdmincentralEventBus;
45 import info.magnolia.ui.api.event.ContentChangedEvent;
46 import info.magnolia.ui.vaadin.integration.jcr.AbstractJcrNodeAdapter;
47 import info.magnolia.ui.vaadin.integration.jcr.JcrItemAdapter;
48 import info.magnolia.ui.vaadin.overlay.MessageStyleTypeEnum;
49
50 import javax.inject.Inject;
51 import javax.inject.Named;
52
53 import org.apache.commons.lang.StringUtils;
54
55
56
57
58
59
60 public class DeactivationAction extends AbstractCommandAction<DeactivationActionDefinition> {
61
62 private final AbstractJcrNodeAdapter jcrNodeAdapter;
63 private final EventBus eventBus;
64 private final UiContext uiContext;
65 private ModuleRegistry moduleRegistry;
66
67 @Inject
68 public DeactivationAction(final DeactivationActionDefinition definition, final JcrItemAdapter item, final CommandsManager commandsManager, @Named(AdmincentralEventBus.NAME) EventBus eventBus, SubAppContext uiContext, ModuleRegistry moduleRegistry) {
69 super(definition, item, commandsManager, uiContext);
70 this.jcrNodeAdapter = (AbstractJcrNodeAdapter) item;
71 this.eventBus = eventBus;
72 this.uiContext = uiContext;
73 this.moduleRegistry = moduleRegistry;
74 }
75
76 @Override
77 protected void onError(Exception e) {
78 uiContext.openNotification(MessageStyleTypeEnum.ERROR, true, MessagesManager.get(isWorkflowInstalled() ? getDefinition().getWorkflowErrorMessage() : getDefinition().getErrorMessage()));
79 }
80
81 @Override
82 protected void onPostExecute() throws Exception {
83 eventBus.fireEvent(new ContentChangedEvent(jcrNodeAdapter.getWorkspace(), jcrNodeAdapter.getItemId()));
84
85
86 Context context = MgnlContext.getInstance();
87 boolean result = (Boolean) context.getAttribute(COMMAND_RESULT);
88 String message;
89 MessageStyleTypeEnum messageStyleType;
90 if (!result) {
91 message = MessagesManager.get(isWorkflowInstalled() ? getDefinition().getWorkflowSuccessMessage() : getDefinition().getSuccessMessage());
92 messageStyleType = MessageStyleTypeEnum.INFO;
93 } else {
94 message = MessagesManager.get(isWorkflowInstalled() ? getDefinition().getWorkflowFailureMessage() : getDefinition().getFailureMessage());
95 messageStyleType = MessageStyleTypeEnum.ERROR;
96 }
97
98 if (StringUtils.isNotBlank(message)) {
99 uiContext.openNotification(messageStyleType, true, message);
100 }
101 }
102
103 private boolean isWorkflowInstalled() {
104 return moduleRegistry.isModuleRegistered("workflow");
105 }
106 }