1 package fr.ifremer.dali.ui.swing.content.home.operation;
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.data.sampling.SamplingOperationDTO;
27 import fr.ifremer.dali.ui.swing.action.AbstractDaliAction;
28
29
30
31
32 public class DuplicateOperationAction extends AbstractDaliAction<OperationsTableUIModel, OperationsTableUI, OperationsTableUIHandler> {
33
34 private SamplingOperationDTO duplicatedOperation;
35
36
37
38
39
40
41 public DuplicateOperationAction(final OperationsTableUIHandler handler) {
42 super(handler, false);
43 }
44
45
46
47
48 @Override
49 public boolean prepareAction() throws Exception {
50 return (super.prepareAction() && getModel().getSelectedRows().size() == 1);
51 }
52
53
54
55
56 @Override
57 public void doAction() throws Exception {
58
59
60 final OperationsTableRowModel operationsTableRowModel = getModel().getSelectedRows().iterator().next();
61 if (operationsTableRowModel != null) {
62
63
64 duplicatedOperation = getContext().getObservationService().duplicateSamplingOperation(operationsTableRowModel.toBean());
65 }
66 }
67
68
69
70
71 @Override
72 public void postSuccessAction() {
73 super.postSuccessAction();
74
75 getModel().setModify(true);
76
77
78 getHandler().setFocusOnCell(getModel().addNewRow(duplicatedOperation));
79 getModel().getSurvey().setSamplingOperations(getModel().getBeans());
80 }
81 }