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.contentapp.detail.action;
35
36 import info.magnolia.ui.api.action.AbstractAction;
37 import info.magnolia.ui.api.action.ActionExecutionException;
38 import info.magnolia.ui.api.location.LocationController;
39 import info.magnolia.ui.contentapp.detail.DetailLocation;
40 import info.magnolia.ui.contentapp.detail.DetailView;
41 import info.magnolia.ui.vaadin.integration.contentconnector.ContentConnector;
42
43 import org.slf4j.Logger;
44 import org.slf4j.LoggerFactory;
45
46 import com.vaadin.v7.data.Item;
47
48
49
50
51
52
53
54 @Deprecated
55 public class EditItemAction extends AbstractAction<EditItemActionDefinition> {
56
57 private final Logger log = LoggerFactory.getLogger(getClass());
58
59 private final Item nodeItemToEdit;
60 private final LocationController locationController;
61 private final ContentConnector contentConnector;
62
63 public EditItemAction(EditItemActionDefinition definition, Item nodeItemToEdit, LocationController locationController, ContentConnector contentConnector) {
64 super(definition);
65 this.nodeItemToEdit = nodeItemToEdit;
66 this.locationController = locationController;
67 this.contentConnector = contentConnector;
68 }
69
70 @Override
71 public void execute() throws ActionExecutionException {
72 try {
73 Object itemId = contentConnector.getItemId(nodeItemToEdit);
74 if (!contentConnector.canHandleItem(itemId)) {
75 log.warn("EditItemAction requested for a node type definition {}. Current node type is {}. No action will be performed.", getDefinition(), String.valueOf(itemId));
76 return;
77 }
78
79 final String path = contentConnector.getItemUrlFragment(itemId);
80 DetailLocation location = new DetailLocation(getDefinition().getAppName(), getDefinition().getSubAppId(), DetailView.ViewType.EDIT, path, "");
81 locationController.goTo(location);
82
83 } catch (Exception e) {
84 throw new ActionExecutionException("Could not execute EditItemAction: ", e);
85 }
86 }
87 }