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.choosedialog.action;
35
36 import info.magnolia.ui.api.action.AbstractAction;
37 import info.magnolia.ui.api.action.ActionExecutionException;
38 import info.magnolia.ui.api.app.ChooseDialogCallback;
39 import info.magnolia.ui.dialog.choosedialog.ChooseDialogPresenter;
40
41 import java.util.Set;
42
43
44
45
46 public class ChooseDialogAction extends AbstractAction<ChooseDialogActionDefinition> {
47
48 private ChooseDialogPresenter presenter;
49
50 private ChooseDialogCallback callback;
51
52 private Object itemId;
53
54 public ChooseDialogAction(ChooseDialogPresenter presenter, ChooseDialogActionDefinition definition, ChooseDialogCallback callback, Set<Object> selected) {
55 super(definition);
56 this.presenter = presenter;
57 this.callback = callback;
58 this.itemId = selected.iterator().next();
59 }
60
61 public ChooseDialogAction(ChooseDialogPresenter presenter, ChooseDialogActionDefinition definition, ChooseDialogCallback callback) {
62 this(presenter, definition, callback, null);
63 }
64
65 @Override
66 public void execute() throws ActionExecutionException {
67 if (getDefinition().isCallSuccess() && itemId != null) {
68 callback.onItemChosen(getDefinition().getSuccessActionName(), itemId);
69 } else {
70 callback.onCancel();
71 }
72 presenter.closeDialog();
73 }
74 }