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.commands.CommandsManager;
37 import info.magnolia.event.EventBus;
38 import info.magnolia.i18nsystem.SimpleTranslator;
39 import info.magnolia.jcr.util.NodeTypes;
40 import info.magnolia.jcr.util.NodeUtil;
41 import info.magnolia.ui.api.context.UiContext;
42 import info.magnolia.ui.api.event.AdmincentralEventBus;
43 import info.magnolia.ui.api.location.LocationController;
44 import info.magnolia.ui.contentapp.browser.action.RestoreItemPreviousVersionAction;
45 import info.magnolia.ui.contentapp.detail.DetailLocation;
46 import info.magnolia.ui.contentapp.detail.DetailView;
47 import info.magnolia.ui.vaadin.integration.jcr.JcrItemAdapter;
48
49 import java.util.List;
50
51 import javax.inject.Named;
52 import javax.jcr.Node;
53
54
55
56
57 public class RestorePreviousVersionAction extends RestoreItemPreviousVersionAction<RestorePreviousVersionActionDefinition> {
58
59 private final LocationController locationController;
60
61 public RestorePreviousVersionAction(RestorePreviousVersionActionDefinition definition, JcrItemAdapter item, CommandsManager commandsManager, @Named(AdmincentralEventBus.NAME) EventBus eventBus, UiContext uiContext, SimpleTranslator i18n, LocationController locationController) {
62 super(definition, item, commandsManager, eventBus, uiContext, i18n);
63 this.locationController = locationController;
64 }
65
66 public RestorePreviousVersionAction(RestorePreviousVersionActionDefinition definition, List<JcrItemAdapter> items, CommandsManager commandsManager, @Named(AdmincentralEventBus.NAME) EventBus eventBus, UiContext uiContext, SimpleTranslator i18n, LocationController locationController) {
67 super(definition, items, commandsManager, eventBus, uiContext, i18n);
68 this.locationController = locationController;
69 }
70
71
72 @Override
73 protected void onPostExecute() throws Exception {
74 super.onPostExecute();
75
76 Node node = (Node) getCurrentItem().getJcrItem();
77 boolean restoreMultiple = getItems().size() > 1 || NodeUtil.getNodes(node, NodeTypes.Page.NAME).iterator().hasNext();
78
79
80 if (((RestorePreviousVersionActionDefinition) getDefinition()).isShowPreview() && !restoreMultiple) {
81 DetailLocation location = new DetailLocation("pages", "detail", DetailView.ViewType.EDIT, node.getPath(), "");
82 locationController.goTo(location);
83 }
84 }
85 }