1 package fr.ifremer.tutti.ui.swing.content.protocol.actions;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import com.google.common.base.Preconditions;
26 import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
27 import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport;
28 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolCaracteristicsRowModel;
29 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolCaracteristicsTableModel;
30 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI;
31 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIHandler;
32 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel;
33 import jaxx.runtime.SwingUtil;
34 import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
35
36 import static org.nuiton.i18n.I18n.t;
37
38
39
40
41
42
43
44 public class AddCaracteristicMappingAction extends LongActionSupport<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
45
46 public AddCaracteristicMappingAction(EditProtocolUIHandler handler) {
47 super(handler, false);
48 }
49
50 protected Caracteristic caracteristic;
51
52 protected EditProtocolCaracteristicsRowModel newRow;
53
54 @Override
55 public void doAction() throws Exception {
56
57 EditProtocolUI ui = getUI();
58
59 BeanFilterableComboBox<Caracteristic> caracteristicMappingCombBox = ui.getCaracteristicMappingComboBox();
60
61 caracteristic = (Caracteristic) caracteristicMappingCombBox.getSelectedItem();
62 Preconditions.checkNotNull(caracteristic, "Can't add a speciesProtocol with a null species");
63
64
65 newRow = handler.createEditProtocolCaracteristicsRowModel();
66 newRow.setPsfm(caracteristic);
67
68 getModel().addCaracteristicMappingRow(newRow);
69 }
70
71 @Override
72 public void postSuccessAction() {
73 super.postSuccessAction();
74
75
76 getUI().getCaracteristicMappingComboBox().removeItem(caracteristic);
77
78
79 EditProtocolCaracteristicsTableModel tableModel = getHandler().getCaracteristicMappingTableModel();
80 tableModel.addNewRow(newRow);
81
82
83 int rowIndex = tableModel.getRowIndex(newRow);
84 SwingUtil.setSelectionInterval(handler.getCaracteristicsMappingTable(), rowIndex);
85
86
87 String caracteristicStr = decorate(caracteristic);
88 sendMessage(t("tutti.flash.info.caracteristic.add.to.protocol", caracteristicStr));
89 }
90 }