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.collect.Lists;
26 import fr.ifremer.tutti.persistence.entities.referential.Species;
27 import fr.ifremer.tutti.ui.swing.util.actions.LongActionSupport;
28 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUI;
29 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIHandler;
30 import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolUIModel;
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33
34 import java.util.List;
35
36 import static org.nuiton.i18n.I18n.t;
37
38
39
40
41
42
43
44 public class SelectOtherBenthosAction extends LongActionSupport<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
45
46
47 private static final Log log =
48 LogFactory.getLog(SelectOtherBenthosAction.class);
49
50 protected Species selectedSpecies;
51
52 public SelectOtherBenthosAction(EditProtocolUIHandler handler) {
53 super(handler, false);
54 }
55
56 @Override
57 public boolean prepareAction() throws Exception {
58 boolean result = super.prepareAction();
59 if (result) {
60 EditProtocolUIModel model = getModel();
61
62 List<Species> species = Lists.newArrayList(model.getAllSynonyms());
63
64
65 selectedSpecies = openAddSpeciesDialog(t("tutti.selectBenthos.title"), species);
66
67
68
69 if (log.isInfoEnabled()) {
70 log.info("SelectedBenthos: " + selectedSpecies);
71 }
72 result = selectedSpecies != null;
73 }
74 return result;
75 }
76
77 @Override
78 public void releaseAction() {
79 selectedSpecies = null;
80 super.releaseAction();
81 }
82
83 @Override
84 public void doAction() throws Exception {
85 String decoratedSynonym = decorate(selectedSpecies);
86 String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
87 selectedSpecies = getModel().getAllReferentSpeciesByTaxonId().get(taxonId);
88 String decoratedReferent = decorate(selectedSpecies);
89 sendMessage(t("tutti.flash.info.benthos.replaced", decoratedSynonym, decoratedReferent));
90 getUI().getBenthosComboBox().setSelectedItem(selectedSpecies);
91 }
92
93 }