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.action;
35
36 import info.magnolia.event.EventBus;
37 import info.magnolia.i18nsystem.SimpleTranslator;
38 import info.magnolia.jcr.util.NodeUtil;
39 import info.magnolia.ui.api.app.SubAppEventBus;
40 import info.magnolia.ui.api.context.UiContext;
41 import info.magnolia.ui.framework.action.DuplicateNodeAction;
42 import info.magnolia.ui.vaadin.integration.jcr.JcrItemAdapter;
43 import info.magnolia.ui.vaadin.integration.jcr.JcrItemId;
44 import info.magnolia.ui.vaadin.integration.jcr.JcrItemUtil;
45 import info.magnolia.ui.vaadin.overlay.MessageStyleTypeEnum;
46
47 import javax.inject.Inject;
48 import javax.inject.Named;
49 import javax.jcr.Node;
50 import javax.jcr.RepositoryException;
51
52
53
54
55 public class DuplicatePageComponentAction extends DuplicateNodeAction {
56
57 private final UiContext uiContext;
58 private final SimpleTranslator i18n;
59 private JcrItemId changedId;
60
61 @Inject
62 public DuplicatePageComponentAction(DuplicatePageComponentActionDefinition definition, JcrItemAdapter item, @Named(SubAppEventBus.NAME) EventBus eventBus, UiContext uiContext, SimpleTranslator i18n) {
63 super(definition, item, eventBus);
64 this.uiContext = uiContext;
65 this.i18n = i18n;
66 }
67
68 @Override
69 protected void onExecute(JcrItemAdapter item) throws RepositoryException {
70 super.onExecute(item);
71 Node node = (Node) item.getJcrItem();
72 NodeUtil.orderAfter((Node) JcrItemUtil.getJcrItem(changedId), node.getName());
73 uiContext.openNotification(MessageStyleTypeEnum.INFO, true, i18n.translate("actions.duplicatePageComponent.successMessage"));
74 }
75
76 @Override
77 protected void setItemIdOfChangedItem(JcrItemId itemIdOfChangedItem) {
78 changedId = itemIdOfChangedItem;
79 super.setItemIdOfChangedItem(itemIdOfChangedItem);
80 }
81 }