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.admincentral;
35
36 import static org.apache.commons.lang3.StringUtils.defaultIfBlank;
37
38 import info.magnolia.init.MagnoliaConfigurationProperties;
39
40 import javax.inject.Inject;
41
42 import com.vaadin.server.DefaultUIProvider;
43 import com.vaadin.server.UICreateEvent;
44 import com.vaadin.server.WidgetsetInfo;
45
46
47
48
49 public class ResurfaceUIProvider extends DefaultUIProvider {
50 public static final String WIDGETSET_PROPERTY_KEY = "magnolia.ui.vaadin.widgetset";
51 public static final String THEME_PROPERTY_KEY = "magnolia.ui.vaadin.theme";
52
53 public static final String DEFAULT_WIDGETSET = "info.magnolia.widgetset.MagnoliaWidgetSet";
54 public static final String DEFAULT_THEME = "resurface-admincentral";
55
56 private final MagnoliaConfigurationProperties magnoliaProperties;
57
58 @Inject
59 public ResurfaceUIProvider(MagnoliaConfigurationProperties magnoliaProperties) {
60 this.magnoliaProperties = magnoliaProperties;
61 }
62
63 @Override
64 public WidgetsetInfo getWidgetsetInfo(UICreateEvent event) {
65 WidgetsetInfo widgetsetInfo = super.getWidgetsetInfo(event);
66
67 if (widgetsetInfo != null) {
68 return widgetsetInfo;
69 }
70
71 String widgetset = defaultIfBlank(magnoliaProperties.getProperty(WIDGETSET_PROPERTY_KEY), DEFAULT_WIDGETSET);
72 return new WidgetsetInfo() {
73 @Override
74 public String getWidgetsetName() {
75 return widgetset;
76 }
77
78 @Override
79 public String getWidgetsetUrl() {
80 return null;
81 }
82
83 @Override
84 public boolean isCdn() {
85 return false;
86 }
87 };
88 }
89
90 @Override
91 public String getTheme(UICreateEvent event) {
92 String theme = super.getTheme(event);
93
94 if (theme != null) {
95 return theme;
96 }
97
98 if (magnoliaProperties != null) {
99 return defaultIfBlank(magnoliaProperties.getProperty(THEME_PROPERTY_KEY), DEFAULT_THEME);
100 }
101 return null;
102 }
103 }