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.admincentral.shellapp.applauncher;
35
36 import info.magnolia.ui.api.app.AppDescriptor;
37 import info.magnolia.ui.api.app.launcherlayout.AppLauncherGroup;
38 import info.magnolia.ui.api.app.launcherlayout.AppLauncherGroupEntry;
39 import info.magnolia.ui.api.app.launcherlayout.AppLauncherLayout;
40 import info.magnolia.ui.api.location.DefaultLocation;
41 import info.magnolia.ui.api.location.Location;
42 import info.magnolia.ui.api.location.LocationController;
43 import info.magnolia.ui.vaadin.applauncher.AppLauncher;
44
45 import javax.inject.Inject;
46
47 import com.vaadin.ui.Component;
48
49
50
51
52
53
54
55
56
57
58 public class AppLauncherViewImpl implements AppLauncherView {
59
60 private final AppLauncher appLauncher;
61
62 private Presenter presenter;
63
64 @Inject
65 public AppLauncherViewImpl(LocationController locationController) {
66 appLauncher = new AppLauncher(appName -> locationController.goTo(new DefaultLocation(Location.LOCATION_TYPE_APP, appName)));
67 }
68
69 public Presenter getPresenter() {
70 return presenter;
71 }
72
73 @Override
74 public void setPresenter(Presenter presenter) {
75 this.presenter = presenter;
76 }
77
78 @Override
79 public Component asVaadinComponent() {
80 return appLauncher;
81 }
82
83 @Override
84 public void activateButton(boolean activate, String appName) {
85 appLauncher.setAppActive(appName, activate);
86 }
87
88 @Override
89 public void clearView() {
90 appLauncher.clear();
91 }
92
93 @Override
94 public void registerApp(AppLauncherLayout layout) {
95 for (AppLauncherGroup group : layout.getGroups()) {
96 appLauncher.addAppGroup(group.getName(), group.getLabel(), group.getColor(), group.isPermanent(), group.isClientGroup());
97 for (AppLauncherGroupEntry entry : group.getApps()) {
98 AppDescriptor descriptor = entry.getAppDescriptor();
99 appLauncher.addAppTile(descriptor.getName(), descriptor.getLabel(), descriptor.getIcon(), group.getName());
100 }
101 }
102 }
103 }