1 package fr.ifremer.dali.ui.swing.content.manage.rule;
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 import com.google.common.collect.Lists;
27 import fr.ifremer.dali.ui.swing.action.AbstractDaliRemoteSaveAction;
28 import fr.ifremer.dali.ui.swing.content.manage.rule.menu.SearchAction;
29 import fr.ifremer.quadrige3.core.exception.SaveForbiddenException;
30 import fr.ifremer.quadrige3.ui.swing.ApplicationUIUtil;
31 import fr.ifremer.quadrige3.ui.swing.model.AbstractBeanUIModel;
32 import org.apache.commons.collections4.CollectionUtils;
33
34 import java.util.List;
35
36 import static org.nuiton.i18n.I18n.t;
37
38
39
40
41 public class SaveAction extends AbstractDaliRemoteSaveAction<RulesUIModel, RulesUI, RulesUIHandler> {
42
43
44
45
46
47
48 public SaveAction(final RulesUIHandler handler) {
49 super(handler, false);
50 }
51
52 @Override
53 protected void doSave() {
54
55
56 getContext().getRuleListService().saveRuleLists(getContext().getAuthenticationInfo(), getModel().getRuleListUIModel().getRows());
57 }
58
59 @Override
60 protected void reload() {
61
62
63 if (getModel().getControlRuleUIModel().getRowCount() > 0) {
64 getModel().getControlRuleUIModel().getRows().forEach(controlRuleRowModel -> controlRuleRowModel.setNewCode(false));
65 }
66
67
68 getUI().getRulesMenuUI().getHandler().reloadComboBox();
69
70
71 getActionEngine().runInternalAction(getUI().getRulesMenuUI().getHandler(), SearchAction.class);
72 }
73
74 @Override
75 protected void onSaveForbiddenException(SaveForbiddenException exception) {
76
77 if (CollectionUtils.isNotEmpty(exception.getObjectIds())) {
78 getContext().getDialogHelper().showErrorDialog(
79 t("dali.action.save.rules.forbidden.topMessage"),
80 ApplicationUIUtil.getHtmlString(exception.getObjectIds()),
81 t("dali.action.save.rules.forbidden.bottomMessage"),
82 t("dali.action.save.errors.title"));
83 } else {
84 getContext().getDialogHelper().showErrorDialog(
85 t("dali.action.save.rules.forbidden.message"),
86 t("dali.action.save.errors.title"));
87 }
88
89 }
90
91
92 @Override
93 protected List<AbstractBeanUIModel> getModelsToModify() {
94 List<AbstractBeanUIModel> models = Lists.newArrayList();
95 models.add(getModel().getRuleListUIModel());
96 models.add(getModel().getProgramsUIModel());
97 models.add(getModel().getDepartmentsUIModel());
98 models.add(getModel().getControlRuleUIModel());
99 models.add(getModel().getPmfmUIModel());
100 return models;
101 }
102
103 }