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 SelectOtherSpeciesAction extends LongActionSupport<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
45
46
47 private static final Log log =
48 LogFactory.getLog(SelectOtherSpeciesAction.class);
49
50 protected Species selectedSpecies;
51
52 public SelectOtherSpeciesAction(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 selectedSpecies = openAddSpeciesDialog(t("tutti.selectSpecies.title"), species);
65
66
67 if (log.isInfoEnabled()) {
68 log.info("SelectedSpecies: " + selectedSpecies);
69 }
70 result = selectedSpecies != null;
71 }
72 return result;
73 }
74
75 @Override
76 public void releaseAction() {
77 selectedSpecies = null;
78 super.releaseAction();
79 }
80
81 @Override
82 public void doAction() throws Exception {
83 String decoratedSynonym = decorate(selectedSpecies);
84 String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
85 selectedSpecies = getModel().getAllReferentSpeciesByTaxonId().get(taxonId);
86 String decoratedReferent = decorate(selectedSpecies);
87 sendMessage(t("tutti.flash.info.species.replaced", decoratedSynonym, decoratedReferent));
88 getUI().getSpeciesComboBox().setSelectedItem(selectedSpecies);
89 }
90
91 }