1 package fr.ifremer.dali.ui.swing.content.extraction.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 fr.ifremer.dali.dto.DaliBeans;
27 import fr.ifremer.dali.dto.system.extraction.ExtractionDTO;
28 import fr.ifremer.dali.ui.swing.action.AbstractDaliAction;
29 import fr.ifremer.dali.ui.swing.content.extraction.ExtractionUI;
30 import org.apache.commons.logging.Log;
31 import org.apache.commons.logging.LogFactory;
32
33 import java.util.Collection;
34 import java.util.List;
35
36 import static org.nuiton.i18n.I18n.t;
37
38
39
40
41 public class DeleteExtractionAction extends AbstractDaliAction<ExtractionsTableUIModel, ExtractionsTableUI, ExtractionsTableUIHandler> {
42
43 private static final Log LOG = LogFactory.getLog(DeleteExtractionAction.class);
44
45 private Collection<? extends ExtractionDTO> extractionsToDelete;
46
47
48
49
50
51
52 public DeleteExtractionAction(ExtractionsTableUIHandler handler) {
53 super(handler, false);
54 }
55
56
57 @Override
58 public boolean prepareAction() throws Exception {
59 if (!super.prepareAction()) {
60 return false;
61 }
62
63 if (getModel().getSelectedRows().isEmpty()) {
64 LOG.warn("no selected extraction");
65 return false;
66 }
67
68 extractionsToDelete = getModel().getSelectedRows();
69
70 return askBeforeDelete(t("dali.action.delete.extraction.titre"), t("dali.action.delete.extraction.message"));
71 }
72
73
74 @Override
75 public void doAction() throws Exception {
76
77
78 List<Integer> idExtractionToDelete = DaliBeans.collectIds(extractionsToDelete);
79
80
81 getContext().getExtractionService().deleteExtractions(idExtractionToDelete);
82
83 }
84
85
86 @Override
87 public void postSuccessAction() {
88
89
90 getModel().deleteSelectedRows();
91
92 getUI().getParentContainer(ExtractionUI.class).getHandler().reloadComboBox();
93
94 super.postSuccessAction();
95 }
96 }