1 package fr.ifremer.dali.ui.swing.content.manage.filter.list;
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.dto.configuration.filter.FilterDTO;
28 import fr.ifremer.dali.ui.swing.action.AbstractDaliAction;
29
30 import java.util.List;
31
32 import static org.nuiton.i18n.I18n.t;
33
34
35
36
37 public class DeleteFilterAction extends AbstractDaliAction<FilterListUIModel, FilterListUI, FilterListUIHandler> {
38
39 private List<? extends FilterDTO> filtersToDelete;
40
41
42
43
44
45
46 public DeleteFilterAction(final FilterListUIHandler handler) {
47 super(handler, false);
48 }
49
50
51 @Override
52 public boolean prepareAction() throws Exception {
53
54 if (!super.prepareAction() || getModel().getSelectedRows().isEmpty()) {
55 return false;
56 }
57
58 if (askBeforeDelete(t("dali.action.delete.confirm.title"), t("dali.filter.filterList.delete.message"))) {
59
60
61 filtersToDelete = Lists.newArrayList(getModel().getSelectedRows());
62
63
64 if (!getContext().getContextService().checkFiltersNotUsedInContext(filtersToDelete)) {
65 getContext().getDialogHelper().showErrorDialog(t("dali.filter.filterList.delete.filterUsedInContext"));
66 return false;
67 }
68
69 return true;
70 }
71
72 return false;
73 }
74
75
76 @Override
77 public void doAction() throws Exception {
78 getContext().getContextService().deleteFilters(filtersToDelete);
79 }
80
81
82 @Override
83 public void postSuccessAction() {
84
85 getModel().deleteSelectedRows();
86
87 getHandler().getParentUI().getHandler().clearFilterElements();
88
89 getHandler().reloadComboBox();
90 }
91
92 }