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.dialog.setup.migration;
35
36 import info.magnolia.jcr.util.NodeTypes;
37 import info.magnolia.module.InstallContext;
38 import info.magnolia.ui.form.field.converter.BaseIdentifierToPathConverter;
39 import info.magnolia.ui.form.field.definition.LinkFieldDefinition;
40
41 import javax.jcr.Node;
42 import javax.jcr.Property;
43 import javax.jcr.RepositoryException;
44
45
46
47
48 public class LinkControlMigrator implements ControlMigrator {
49
50 @Override
51 public void migrate(Node controlNode, InstallContext installContext) throws RepositoryException {
52 Property controlType = controlNode.getProperty("controlType");
53 String appName = "pages";
54 String className = LinkFieldDefinition.class.getName();
55 String targetWorkspace = "website";
56
57
58 if (controlType.getString().equals("uuidLink")) {
59 controlNode.addNode("identifierToPathConverter", NodeTypes.ContentNode.NAME);
60 controlNode.getNode("identifierToPathConverter").setProperty("class", BaseIdentifierToPathConverter.class.getName());
61 }
62
63 if (controlNode.hasProperty("repository")) {
64 if (controlNode.getProperty("repository").getString().equals("data")) {
65
66 if (controlNode.hasProperty("tree") && controlNode.getProperty("tree").getString().equals("Contact")) {
67 appName = "contacts";
68 targetWorkspace = "contacts";
69 controlNode.addNode("contentPreviewDefinition", NodeTypes.ContentNode.NAME);
70 controlNode.getNode("contentPreviewDefinition").setProperty("contentPreviewClass", "info.magnolia.contacts.app.field.component.ContactPreviewComponent");
71 controlNode.getProperty("repository").remove();
72 }
73
74 } else if (controlNode.getProperty("repository").getString().equals("website")) {
75 controlNode.getProperty("repository").remove();
76 }
77 }
78
79 controlNode.setProperty("targetWorkspace", targetWorkspace);
80 controlNode.setProperty("appName", appName);
81 controlNode.setProperty("class", className);
82
83 controlType.remove();
84
85 }
86
87 }