1 package fr.ifremer.reefdb.ui.swing.content.manage.context.menu;
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.reefdb.ui.swing.util.AbstractReefDbUIHandler;
27 import fr.ifremer.reefdb.ui.swing.util.ReefDbUIs;
28 import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox;
29 import org.apache.commons.logging.Log;
30 import org.apache.commons.logging.LogFactory;
31
32 import javax.swing.SwingUtilities;
33
34
35
36
37 public class ManageContextsListMenuUIHandler extends AbstractReefDbUIHandler<ManageContextsListMenuUIModel, ManageContextsListMenuUI> {
38
39
40
41
42 private static final Log LOG = LogFactory.getLog(ManageContextsListMenuUIHandler.class);
43
44
45 @Override
46 public void beforeInit(final ManageContextsListMenuUI ui) {
47 super.beforeInit(ui);
48
49
50 final ManageContextsListMenuUIModel model = new ManageContextsListMenuUIModel();
51 ui.setContextValue(model);
52 }
53
54
55 @Override
56 public void afterInit(final ManageContextsListMenuUI ui) {
57 initUI(ui);
58
59
60 initComboBox();
61 }
62
63
64
65
66 private void initComboBox() {
67
68 initBeanFilterableComboBox(
69 getUI().getContextsLabelsCombo(),
70 getContext().getContextService().getAllContexts(),
71 null);
72
73 ReefDbUIs.forceComponentSize(getUI().getContextsLabelsCombo());
74
75 getUI().getContextsLabelsCombo().getComboBoxModel().addWillChangeSelectedItemListener(event -> {
76 if (getModel().isLoading()) return;
77 if (event.getNextSelectedItem() != null) SwingUtilities.invokeLater(() -> getUI().getSearchButton().getAction().actionPerformed(null));
78 });
79 }
80
81
82
83
84 @SuppressWarnings("unchecked")
85 public void reloadComboBox() {
86 BeanFilterableComboBox cb = getUI().getContextsLabelsCombo();
87 cb.setData(null);
88 cb.setData(getContext().getContextService().getAllContexts());
89 if (cb.getCombobox().getSelectedIndex() != -1) {
90 int lastSelectedIndex = cb.getCombobox().getSelectedIndex();
91 cb.getCombobox().setSelectedIndex(-1);
92 cb.getCombobox().setSelectedIndex(lastSelectedIndex);
93 }
94
95 }
96 }