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.config;
35
36 import info.magnolia.ui.api.action.ActionDefinition;
37 import info.magnolia.ui.api.action.config.ActionBuilder;
38 import info.magnolia.ui.dialog.definition.ConfiguredFormDialogDefinition;
39 import info.magnolia.ui.form.config.FormBuilder;
40 import info.magnolia.ui.form.definition.ConfiguredFormDefinition;
41
42
43
44
45 public class DialogBuilder {
46
47 private final ConfiguredFormDialogDefinition definition = new ConfiguredFormDialogDefinition();
48
49 public DialogBuilder(String id) {
50 definition().setId(id);
51 }
52
53 public ConfiguredFormDialogDefinition definition() {
54 return definition;
55 }
56
57 public DialogBuilder label(String label) {
58 definition().setLabel(label);
59 return this;
60 }
61
62 public DialogBuilder i18nBasename(String i18nBasename) {
63 definition().setI18nBasename(i18nBasename);
64 return this;
65 }
66
67 public DialogBuilder description(String description) {
68 definition().setDescription(description);
69 return this;
70 }
71
72 public DialogBuilder form(FormBuilder builder) {
73 this.definition().setForm(builder.definition());
74 return this;
75 }
76
77 public FormBuilder form() {
78 if (this.definition().getForm() == null) {
79 this.definition().setForm(new ConfiguredFormDefinition());
80 }
81 return new FormBuilder((ConfiguredFormDefinition) definition().getForm());
82 }
83
84 public DialogBuilder actions(ActionBuilder... builders) {
85 for (ActionBuilder builder : builders) {
86 definition().addAction(builder.definition());
87 }
88 return this;
89 }
90
91 public DialogBuilder addAction(ActionDefinition actionDefinition) {
92 definition().addAction(actionDefinition);
93 return this;
94 }
95 }