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.dialog;
35
36 import info.magnolia.config.registry.AbstractRegistry;
37 import info.magnolia.config.registry.DefinitionMetadataBuilder;
38 import info.magnolia.config.registry.DefinitionProvider;
39 import info.magnolia.config.registry.DefinitionProviderBuilder;
40 import info.magnolia.config.registry.DefinitionProviderWrapper;
41 import info.magnolia.config.registry.DefinitionType;
42 import info.magnolia.module.ModuleRegistry;
43
44 import javax.inject.Inject;
45 import javax.inject.Singleton;
46
47
48
49
50 @Singleton
51 public class DialogDefinitionRegistry extends AbstractRegistry<DialogDefinition> {
52
53 @Inject
54 public DialogDefinitionRegistry(ModuleRegistry moduleRegistry) {
55 super(moduleRegistry);
56 }
57
58 @Override
59 public DefinitionType type() {
60 return DefinitionTypes.DIALOG;
61 }
62
63 @Override
64 public DefinitionMetadataBuilder newMetadataBuilder() {
65 return DefinitionMetadataBuilder.usingModuleAndRelativePathAsId();
66 }
67
68 @Override
69 public DefinitionProviderBuilder<DialogDefinition> newDefinitionProviderBuilder() {
70 return new DefinitionProviderBuilder<DialogDefinition>() {
71 @Override
72 public DefinitionProvider<DialogDefinition> build() {
73 return new DefinitionProviderWrapper<DialogDefinition>(super.build()) {
74 @Override
75 public DialogDefinition get() {
76 DialogDefinition dialogDefinition = super.get();
77 if (dialogDefinition.getId() == null && dialogDefinition instanceof ConfiguredDialogDefinition) {
78 ((ConfiguredDialogDefinition) dialogDefinition).setId(getDelegate().getMetadata().getReferenceId());
79 }
80 return dialogDefinition;
81 }
82 };
83 }
84 };
85 }
86
87 }