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.tools.jcr;
35
36 import info.magnolia.context.Context;
37 import info.magnolia.jcr.util.NodeUtil;
38 import info.magnolia.ui.dialog.formdialog.FormBuilder;
39 import info.magnolia.ui.framework.tools.FormToolActionExecutor;
40 import info.magnolia.ui.framework.tools.FormToolDefinition;
41 import info.magnolia.ui.framework.tools.FormToolPresenter;
42 import info.magnolia.ui.framework.tools.FormToolView;
43 import info.magnolia.ui.vaadin.integration.jcr.JcrNodeAdapter;
44
45 import javax.inject.Inject;
46 import javax.inject.Provider;
47 import javax.jcr.RepositoryException;
48
49 import com.vaadin.v7.data.Item;
50
51
52
53
54
55 public class JcrNodeFormToolPresenter extends FormToolPresenter {
56
57 private JcrNodeFormToolDefinition definition;
58
59 private final Provider<Context> contextProvider;
60
61 @Inject
62 public JcrNodeFormToolPresenter(FormToolView view, FormBuilder formBuilder, FormToolActionExecutor actionExecutor, Provider<Context> contextProvider) {
63 super(view, formBuilder, actionExecutor);
64 this.contextProvider = contextProvider;
65 }
66
67 @Override
68 public FormToolView start(FormToolDefinition definition) {
69 this.definition = ((JcrNodeFormToolDefinition) definition);
70 return super.start(definition);
71 }
72
73 @Override
74 protected Item getItem() {
75 try {
76 return new JcrNodeAdapter(NodeUtil.createPath(contextProvider.get().getJCRSession(definition.getWorkspace()).getRootNode(), definition.getNodePath(), definition.getNodeType(), true));
77 } catch (RepositoryException e) {
78 throw new RuntimeException(e);
79 }
80 }
81 }