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.pages.app.detail.action;
35
36 import info.magnolia.context.Context;
37 import info.magnolia.i18nsystem.I18nizer;
38 import info.magnolia.pages.app.detail.PageEditorStatus;
39 import info.magnolia.ui.api.action.ActionExecutionException;
40 import info.magnolia.ui.api.i18n.I18NAuthoringSupport;
41 import info.magnolia.ui.dialog.DialogDefinitionRegistry;
42 import info.magnolia.ui.editor.LocaleContext;
43 import info.magnolia.ui.UIComponent;
44 import info.magnolia.ui.ValueContext;
45 import info.magnolia.ui.observation.DatasourceObservation;
46
47 import javax.inject.Inject;
48 import javax.jcr.Node;
49
50 import org.apache.commons.lang3.StringUtils;
51
52 import com.machinezoo.noexception.Exceptions;
53
54
55
56
57
58
59 public class CreateAreaAction extends EditElementAction {
60
61 private final DatasourceObservation.Manual datasourceObservation;
62
63 @Inject
64 public CreateAreaAction(EditElementActionDefinition definition, UIComponent parentView, LocaleContext localeContext, I18NAuthoringSupport i18NAuthoringSupport, DialogDefinitionRegistry dialogDefinitionRegistry, I18nizer i18nizer, Context context, ValueContext<Node> valueContext, PageEditorStatus pageEditorStatus, DatasourceObservation.Manual datasourceObservation) {
65 super(definition, parentView, localeContext, i18NAuthoringSupport, dialogDefinitionRegistry, i18nizer, context, valueContext, pageEditorStatus);
66 this.datasourceObservation = datasourceObservation;
67 }
68
69 @Override
70 public void execute() throws ActionExecutionException {
71 if (StringUtils.isBlank(getPageEditorStatus().getSelectedElement().getDialog())) {
72 Exceptions.wrap().run(() -> getValueContext().getSingleOrThrow().getSession().save());
73 datasourceObservation.trigger();
74 } else {
75 super.execute();
76 }
77 }
78 }