1 package fr.ifremer.tutti.ui.swing.content.protocol.calcifiedpiecessampling.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
26
27 import fr.ifremer.tutti.persistence.entities.referential.Species;
28 import fr.ifremer.tutti.ui.swing.content.protocol.calcifiedpiecessampling.CalcifiedPiecesSamplingEditorRowModel;
29 import fr.ifremer.tutti.ui.swing.content.protocol.calcifiedpiecessampling.CalcifiedPiecesSamplingEditorTableModel;
30 import fr.ifremer.tutti.ui.swing.content.protocol.calcifiedpiecessampling.CalcifiedPiecesSamplingEditorUI;
31 import fr.ifremer.tutti.ui.swing.util.actions.SimpleActionSupport;
32 import jaxx.runtime.SwingUtil;
33 import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
34 import org.apache.commons.logging.Log;
35 import org.apache.commons.logging.LogFactory;
36
37 import java.util.ArrayList;
38 import java.util.List;
39
40
41
42
43
44 public class AddSpeciesAction extends SimpleActionSupport<CalcifiedPiecesSamplingEditorUI> {
45
46
47 private static final Log log = LogFactory.getLog(AddSpeciesAction.class);
48
49 public AddSpeciesAction(CalcifiedPiecesSamplingEditorUI ui) {
50 super(ui);
51 }
52
53 @Override
54 protected void onActionPerformed(CalcifiedPiecesSamplingEditorUI ui) {
55 BeanFilterableComboBox<Species> speciesComboBox = ui.getSpeciesComboBox();
56 Species species = (Species) speciesComboBox.getSelectedItem();
57
58 List<CalcifiedPiecesSamplingEditorRowModel> newRows = new ArrayList<>();
59 if (ui.getMaturityCheckBox().isSelected()) {
60
61 CalcifiedPiecesSamplingEditorRowModel immatureRow = ui.getHandler().createNewRow(species, false);
62 newRows.add(immatureRow);
63
64 CalcifiedPiecesSamplingEditorRowModel matureRow = ui.getHandler().createNewRow(species, true);
65 newRows.add(matureRow);
66
67 } else {
68
69 CalcifiedPiecesSamplingEditorRowModel newRow = ui.getHandler().createNewRow(species, null);
70 newRows.add(newRow);
71
72 }
73
74 List<CalcifiedPiecesSamplingEditorRowModel> cpsRows = ui.getModel().getCpsRows();
75 cpsRows.addAll(newRows);
76 cpsRows.sort(CalcifiedPiecesSamplingEditorRowModel.COMPARATOR);
77
78 speciesComboBox.removeItem(species);
79
80 int firstRowIndex = cpsRows.indexOf(newRows.get(0));
81 int lastRowIndex = cpsRows.indexOf(newRows.get(newRows.size() - 1));
82
83 CalcifiedPiecesSamplingEditorTableModel tableModel =
84 (CalcifiedPiecesSamplingEditorTableModel) ui.getCpsTable().getModel();
85
86 if (log.isInfoEnabled()) {
87 log.info(cpsRows);
88 log.info(tableModel.getRows());
89 log.info("insert in " +firstRowIndex + " " + lastRowIndex );
90 }
91
92 tableModel.fireTableRowsInserted(firstRowIndex, lastRowIndex);
93
94 SwingUtil.setSelectionInterval(ui.getCpsTable(), firstRowIndex);
95 }
96
97 }