1 package fr.ifremer.dali.ui.swing.util.table.editor;
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.referential.TaxonDTO;
27 import fr.ifremer.dali.dto.referential.TaxonGroupDTO;
28 import fr.ifremer.dali.ui.swing.DaliUIContext;
29 import fr.ifremer.dali.ui.swing.content.manage.referential.taxon.taxonsDialog.TaxonsDialogUI;
30 import fr.ifremer.dali.ui.swing.util.DaliUI;
31 import fr.ifremer.dali.ui.swing.util.table.AbstractDaliTableModel;
32 import fr.ifremer.quadrige3.ui.swing.table.SwingTable;
33 import fr.ifremer.quadrige3.ui.swing.table.editor.ButtonCellEditor;
34
35 import java.awt.Dimension;
36 import java.util.ArrayList;
37
38 import static org.nuiton.i18n.I18n.t;
39
40
41
42
43
44 public class AssociatedTaxonCellEditor extends ButtonCellEditor {
45
46 private final SwingTable table;
47
48 private final DaliUI parentUI;
49
50
51
52
53
54
55
56 public AssociatedTaxonCellEditor(
57 final SwingTable table,
58 final DaliUI parentUI) {
59 this.table = table;
60 this.parentUI = parentUI;
61 }
62
63
64 @Override
65 public void onButtonCellAction(final int rowIndex, final int column) {
66
67 final AbstractDaliTableModel<?> tableModel = (AbstractDaliTableModel<?>) table.getModel();
68 final int rowModelIndex = table.convertRowIndexToModel(rowIndex);
69 Object entry = tableModel.getEntry(rowModelIndex);
70
71 final TaxonsDialogUI taxonsDialogUI = new TaxonsDialogUI((DaliUIContext) parentUI.getHandler().getContext());
72 if (entry instanceof TaxonGroupDTO) {
73
74
75 taxonsDialogUI.getModel().setTaxonGroup((TaxonGroupDTO) entry);
76 taxonsDialogUI.setTitle(t("dali.property.taxonGroup.taxons"));
77
78 } else if (entry instanceof TaxonDTO) {
79
80
81 taxonsDialogUI.getModel().setTaxons(new ArrayList<>(((TaxonDTO) entry).getCompositeTaxons()));
82 taxonsDialogUI.setTitle(t("dali.property.taxon.composites"));
83 }
84
85
86 parentUI.getHandler().openDialog(taxonsDialogUI, new Dimension(1024, 480));
87 }
88 }