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.contentapp.choosedialog;
35
36 import info.magnolia.event.EventBus;
37 import info.magnolia.event.SimpleEventBus;
38 import info.magnolia.module.ModuleRegistry;
39 import info.magnolia.module.model.ModuleDefinition;
40 import info.magnolia.objectfactory.ComponentProvider;
41 import info.magnolia.objectfactory.configuration.ComponentConfigurer;
42 import info.magnolia.objectfactory.configuration.ComponentProviderConfiguration;
43 import info.magnolia.objectfactory.configuration.ComponentProviderConfigurationBuilder;
44 import info.magnolia.objectfactory.guice.AbstractGuiceComponentConfigurer;
45 import info.magnolia.objectfactory.guice.GuiceComponentProvider;
46 import info.magnolia.objectfactory.guice.GuiceComponentProviderBuilder;
47 import info.magnolia.ui.api.event.ChooseDialogEventBus;
48 import info.magnolia.ui.dialog.definition.ChooseDialogDefinition;
49 import info.magnolia.ui.imageprovider.ImageProvider;
50 import info.magnolia.ui.vaadin.integration.contentconnector.ContentConnector;
51
52 import java.util.List;
53
54 import com.google.inject.name.Names;
55
56
57
58
59 public class ChooseDialogComponentProviderUtil {
60
61 private static final String CHOOSE_DIALOG_COMPONENT_ID = "choosedialog";
62
63
64
65
66
67
68
69
70
71
72 public static ComponentProvider createChooseDialogComponentProvider(final ChooseDialogDefinition chooseDialogDefinition, ComponentProvider componentProvider) {
73 ModuleRegistry moduleRegistry = componentProvider.getComponent(ModuleRegistry.class);
74 ComponentProviderConfigurationBuilder configurationBuilder = new ComponentProviderConfigurationBuilder();
75 List<ModuleDefinition> moduleDefinitions = moduleRegistry.getModuleDefinitions();
76 ComponentProviderConfiguration configuration =
77 configurationBuilder.getComponentsFromModules(CHOOSE_DIALOG_COMPONENT_ID, moduleDefinitions);
78 GuiceComponentProviderBuilder builder = new GuiceComponentProviderBuilder();
79 builder.withConfiguration(configuration);
80 builder.withParent((GuiceComponentProvider) componentProvider);
81
82 ComponentConfigurer c = new AbstractGuiceComponentConfigurer() {
83 @Override
84 protected void configure() {
85
86 bind(ChooseDialogDefinition.class).toInstance(chooseDialogDefinition);
87
88 bind(EventBus.class).annotatedWith(Names.named(ChooseDialogEventBus.NAME)).toInstance(new SimpleEventBus());
89 bind(ContentConnector.class).toProvider(ChooseDialogContentConnectorProvider.class);
90 bind(ImageProvider.class).toProvider(ChooseDialogImageProviderProvider.class);
91 }
92 };
93 return builder.build(c);
94 }
95 }