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.workbench.tree.drop;
35
36 import info.magnolia.annotation.deprecation.MgnlDeprecated;
37 import info.magnolia.objectfactory.ComponentProvider;
38 import info.magnolia.ui.contentapp.browser.drop.DropConstraint;
39 import info.magnolia.ui.vaadin.integration.contentconnector.ConfiguredJcrContentConnectorDefinition;
40 import info.magnolia.ui.vaadin.integration.contentconnector.JcrContentConnector;
41 import info.magnolia.ui.vaadin.integration.jcr.JcrItemAdapter;
42 import info.magnolia.ui.vaadin.integration.jcr.JcrNodeAdapter;
43 import info.magnolia.ui.vaadin.integration.jcr.JcrPropertyAdapter;
44 import info.magnolia.ui.workbench.tree.MoveLocation;
45
46 import javax.inject.Inject;
47 import javax.jcr.Item;
48 import javax.jcr.Node;
49 import javax.jcr.Property;
50
51 import com.vaadin.shared.ui.grid.DropLocation;
52
53
54
55
56
57
58 @Deprecated
59 @MgnlDeprecated(since = "6.0")
60 public class CompatibilityDropConstraint implements DropConstraint<Item> {
61
62 private Class<info.magnolia.ui.workbench.tree.drop.DropConstraint> deprecatedDropConstraintClass;
63
64 private final ComponentProvider componentProvider;
65
66 @Inject
67 public CompatibilityDropConstraint(ComponentProvider componentProvider) {
68 this.componentProvider = componentProvider;
69 }
70
71 @Override
72 public boolean isAllowedAt(Item item, Item target, DropLocation dropLocation) {
73 info.magnolia.ui.workbench.tree.drop.DropConstraint deprecatedDropConstraint = componentProvider.newInstance(deprecatedDropConstraintClass, new JcrContentConnector(null, new ConfiguredJcrContentConnectorDefinition()));
74 return deprecatedDropConstraint.isAllowedAt(convert(item), convert(target), convert(dropLocation));
75 }
76
77 private JcrItemAdapter convert(Item item) {
78 return item.isNode() ? new JcrNodeAdapter((Node) item) : new JcrPropertyAdapter((Property) item);
79 }
80
81 private MoveLocation convert(DropLocation dropLocation) {
82 switch (dropLocation) {
83 case ABOVE:
84 return MoveLocation.BEFORE;
85 case BELOW:
86 return MoveLocation.AFTER;
87 case ON_TOP:
88 return MoveLocation.INSIDE;
89 }
90 return null;
91 }
92
93 public Class<info.magnolia.ui.workbench.tree.drop.DropConstraint> getDeprecatedDropConstraintClass() {
94 return deprecatedDropConstraintClass;
95 }
96
97 public void setDeprecatedDropConstraintClass(Class<info.magnolia.ui.workbench.tree.drop.DropConstraint> deprecatedDropConstraintClass) {
98 this.deprecatedDropConstraintClass = deprecatedDropConstraintClass;
99 }
100 }