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.framework.tools;
35
36 import info.magnolia.ui.api.action.ActionDefinition;
37 import info.magnolia.ui.api.action.ActionExecutionException;
38 import info.magnolia.ui.api.view.View;
39 import info.magnolia.ui.dialog.actionarea.ActionListener;
40 import info.magnolia.ui.dialog.formdialog.FormBuilder;
41 import info.magnolia.ui.form.EditorValidator;
42 import info.magnolia.ui.form.definition.FormDefinition;
43 import info.magnolia.ui.vaadin.form.Form;
44 import info.magnolia.ui.vaadin.form.FormViewReduced;
45
46 import java.util.Map;
47
48 import javax.inject.Inject;
49
50 import org.slf4j.Logger;
51 import org.slf4j.LoggerFactory;
52
53 import com.vaadin.v7.data.Item;
54 import com.vaadin.v7.data.util.PropertysetItem;
55
56
57
58
59
60
61
62
63
64 @Deprecated
65 public class FormToolPresenter implements ToolPresenter<FormToolDefinition, FormToolView>, ActionListener, EditorValidator {
66
67 private static final Logger log = LoggerFactory.getLogger(FormToolPresenter.class);
68
69 private final FormToolView view;
70 private final FormBuilder formBuilder;
71 private final FormToolActionExecutor actionExecutor;
72 private Item item;
73 private FormViewReduced formView;
74
75 @Inject
76 public FormToolPresenter(FormToolView view, FormBuilder formBuilder, FormToolActionExecutor actionExecutor) {
77 this.view = view;
78 this.formBuilder = formBuilder;
79 this.actionExecutor = actionExecutor;
80 }
81
82 @Override
83 public FormToolView start(FormToolDefinition definition) {
84 item = getItem();
85
86 formView = new Form();
87 FormDefinition form = definition.getForm();
88 if (form != null) {
89 formBuilder.buildReducedForm(form, formView, item, null);
90 view.setForm(formView);
91 } else {
92 view.asVaadinComponent().addStyleName("no-form");
93 }
94
95 actionExecutor.setFormToolDefinition(definition);
96 buildActions(definition);
97
98 return view;
99 }
100
101 protected Item getItem() {
102 return new PropertysetItem();
103 }
104
105 protected View getView() {
106 return view;
107 }
108
109 protected void buildActions(FormToolDefinition definition) {
110 Map<String, ActionDefinition> actions = definition.getActions();
111 if (actions != null && !actions.isEmpty()) {
112 for (final ActionDefinition action : actions.values()) {
113 view.addAction(action.getName(), action.getLabel(), this);
114 }
115 }
116 }
117
118 @Override
119 public void onActionFired(String actionName, Object... actionContextParams) {
120 try {
121 actionExecutor.execute(actionName, view, this, item);
122 } catch (ActionExecutionException e) {
123 log.error("Cannot execute action " + actionName, e);
124 }
125 }
126
127 @Override
128 public void showValidation(boolean visible) {
129 formView.showValidation(visible);
130 }
131
132 @Override
133 public boolean isValid() {
134 return formView.isValid();
135 }
136 }