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.datasource.jcr;
35
36 import info.magnolia.ui.contentapp.preview.JcrPreviewDefinition;
37 import info.magnolia.ui.datasource.BaseDatasourceDefinition;
38 import info.magnolia.ui.datasource.DatasourceType;
39
40 import java.util.Collections;
41 import java.util.HashSet;
42 import java.util.LinkedHashMap;
43 import java.util.List;
44 import java.util.Map;
45 import java.util.Set;
46
47 import javax.jcr.Item;
48
49 import org.apache.commons.lang3.StringUtils;
50
51 import com.vaadin.shared.data.sort.SortDirection;
52
53 import lombok.Getter;
54 import lombok.Setter;
55
56
57
58
59 @Setter
60 @Getter
61 @DatasourceType("jcrDatasource")
62 public class JcrDatasourceDefinition extends BaseDatasourceDefinition {
63
64 private String name = "jcr";
65 private String rootPath = "/";
66 private String workspace;
67 private boolean includeProperties;
68 private boolean includeSystemProperties;
69 private boolean includeSystemNodes;
70 private Set<String> allowedNodeTypes = new HashSet<>();
71 private String describeByProperty;
72 private JcrPreviewDefinition preview;
73 private String nodeNameProperty;
74
75 private Map<String, SortDirection> sortBy = new LinkedHashMap<>();
76
77
78
79
80
81 @Override
82 public List<String> getSortByProperties() {
83 if (isSortable() && super.getSortByProperties().isEmpty() && StringUtils.isNotBlank(describeByProperty)) {
84 return Collections.singletonList(describeByProperty);
85 }
86 return super.getSortByProperties();
87 }
88
89 @Override
90 public Class<?> getEntityType() {
91 return Item.class;
92 }
93
94
95
96
97 @Deprecated
98 public void setPreviewDefinition(JcrPreviewDefinition preview) {
99 setPreview(preview);
100 }
101
102
103
104
105
106 @Deprecated
107 public JcrPreviewDefinition getPreviewDefinition() {
108 return getPreview();
109 }
110 }