1 package fr.ifremer.dali.ui.swing.content.manage.context.filterslist;
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 com.google.common.collect.Lists;
27 import fr.ifremer.dali.dto.configuration.filter.FilterDTO;
28 import fr.ifremer.dali.service.administration.context.ContextService;
29 import fr.ifremer.quadrige3.core.dao.technical.decorator.Decorator;
30 import fr.ifremer.quadrige3.ui.swing.component.bean.ExtendedComboBox;
31 import fr.ifremer.quadrige3.ui.swing.table.editor.FilterableComboBoxCellEditor;
32
33 import javax.swing.JTable;
34 import java.awt.Component;
35 import java.util.ArrayList;
36 import java.util.List;
37
38
39
40
41
42 public class FilterComboCellEditor extends FilterableComboBoxCellEditor<FilterDTO> {
43
44 private final ManageFiltersListTableUIModel uiModel;
45 private final ContextService service;
46
47
48
49
50
51
52
53
54
55 public FilterComboCellEditor(ManageFiltersListTableUIModel uiModel, ExtendedComboBox<FilterDTO> comboBox,
56 Decorator<FilterDTO> decorator, ContextService service) {
57 super(comboBox);
58
59 getCombo().init(decorator, new ArrayList<>());
60
61 this.uiModel = uiModel;
62 this.service = service;
63 }
64
65
66 @Override
67 public Component getTableCellEditorComponent(
68 final JTable table, final Object value, final boolean isSelected, final int row, final int column) {
69
70
71 final Integer filterTypeId = this.uiModel.getSingleSelectedRow().getFilterTypeId();
72 if (filterTypeId == null) {
73
74
75 getCombo().setData(new ArrayList<>());
76 } else {
77
78
79 final List<FilterDTO> data = service.getFiltersByType(filterTypeId);
80 getCombo().setData(Lists.newArrayList(data));
81 }
82
83
84 return super.getTableCellEditorComponent(table, value, isSelected, row, column);
85 }
86 }