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;
35
36 import info.magnolia.objectfactory.ComponentProvider;
37 import info.magnolia.ui.api.app.SubAppContext;
38 import info.magnolia.ui.api.app.SubAppDescriptor;
39 import info.magnolia.ui.framework.app.BaseSubApp;
40
41 import java.util.Map;
42
43 import javax.inject.Inject;
44
45 import org.apache.commons.collections4.MapUtils;
46
47
48
49
50
51
52
53
54
55
56
57
58 @Deprecated
59 public class ToolsSubApp extends BaseSubApp<ToolsSubAppView> {
60
61 private final SubAppContext subAppContext;
62 private final ToolsSubAppView subAppView;
63 private final ComponentProvider componentProvider;
64
65 @Inject
66 public ToolsSubApp(SubAppContext subAppContext, ToolsSubAppView subAppView, ComponentProvider componentProvider) {
67 super(subAppContext, subAppView);
68
69 this.subAppContext = subAppContext;
70 this.subAppView = subAppView;
71 this.componentProvider = componentProvider;
72 }
73
74 @Override
75 protected void onSubAppStart() {
76 SubAppDescriptor subAppDescriptor = subAppContext.getSubAppDescriptor();
77
78 if (!(subAppDescriptor instanceof ToolsSubAppDescriptor)) {
79 throw new IllegalArgumentException(String.format("Cannot start ToolsSubApp '%s', expected ToolsSubAppDescriptor but got %s.", subAppDescriptor.getName(), subAppDescriptor.getClass().getSimpleName()));
80 }
81
82 ToolsSubAppDescriptori/framework/tools/ToolsSubAppDescriptor.html#ToolsSubAppDescriptor">ToolsSubAppDescriptor toolsSubAppDescriptor = (ToolsSubAppDescriptor) subAppDescriptor;
83
84 subAppView.setDescription(toolsSubAppDescriptor.getDescription());
85
86 Map<String, ToolDefinition> toolDefinitions = toolsSubAppDescriptor.getTools();
87 if (MapUtils.isEmpty(toolDefinitions) || toolDefinitions.containsKey(null)) {
88 throw new IllegalArgumentException(String.format("Cannot start ToolsSubApp '%s', 'tools' (ToolDefinitions) are not configured.", subAppDescriptor.getName()));
89 }
90
91 for (ToolDefinition toolDefinition : toolDefinitions.values()) {
92 if (toolDefinition.getPresenterClass() == null) {
93 throw new IllegalArgumentException(String.format("Cannot start ToolPresenter '%s', 'presenterClass' is not configured.", toolDefinition.getName()));
94 }
95
96 ToolPresenter toolPresenter = componentProvider.newInstance(toolDefinition.getPresenterClass());
97 subAppView.addToolView(toolDefinition.getLabel(), toolPresenter.start(toolDefinition));
98 }
99 }
100 }