Skip to content

Commit bce3441

Browse files
committed
FIX: ModelSelection listens to Item changes (not _only_ to Popup changes)
1 parent 7a86afb commit bce3441

File tree

1 file changed

+18
-32
lines changed

1 file changed

+18
-32
lines changed

src/main/java/ai/nets/samj/gui/ModelSelection.java

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
package ai.nets.samj.gui;
22

3+
import java.awt.event.ItemEvent;
4+
import java.awt.event.ItemListener;
35
import java.io.IOException;
46
import java.util.List;
57

68
import javax.swing.JButton;
79
import javax.swing.JComboBox;
8-
import javax.swing.event.PopupMenuEvent;
9-
import javax.swing.event.PopupMenuListener;
1010

1111
import ai.nets.samj.gui.components.ComboBoxButtonComp;
1212
import net.imglib2.RandomAccessibleInterval;
1313
import net.imglib2.type.NativeType;
1414
import net.imglib2.type.numeric.RealType;
15-
import ai.nets.samj.annotation.Mask;
1615
import ai.nets.samj.communication.model.SAMModel;
1716

18-
public class ModelSelection extends ComboBoxButtonComp<String> implements PopupMenuListener {
17+
public class ModelSelection extends ComboBoxButtonComp<String> implements ItemListener {
1918

2019
private SAMModel selected;
2120

@@ -33,7 +32,7 @@ private ModelSelection(List<SAMModel> models, ModelSelectionListener listener) {
3332
for (SAMModel model : models) {
3433
this.cmbBox.addItem(model.getName());
3534
}
36-
cmbBox.addPopupMenuListener(this);
35+
cmbBox.addItemListener(this);
3736
selected = models.get(cmbBox.getSelectedIndex());
3837
}
3938

@@ -65,37 +64,24 @@ protected void unLoadModel() {
6564
}
6665

6766
@Override
68-
/**
69-
* Nothing
70-
*/
71-
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
72-
}
73-
74-
@Override
75-
/**
76-
* Check if the image selected has been changed once the combobox pop up is closed
77-
*/
78-
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
79-
try {
80-
SAMModel nSelectedModel = models.get(cmbBox.getSelectedIndex());
81-
if (nSelectedModel != selected) {
82-
unLoadModel();
83-
listener.changeGUI();
84-
selected = nSelectedModel;
67+
public void itemStateChanged(ItemEvent e) {
68+
if (e.getStateChange() == ItemEvent.SELECTED) {
69+
try {
70+
SAMModel nSelectedModel = models.get(cmbBox.getSelectedIndex());
71+
// checks if indeed a different model is selected (from what was selected before)
72+
if (nSelectedModel != selected) {
73+
unLoadModel();
74+
listener.changeGUI();
75+
selected = nSelectedModel;
76+
}
77+
} catch (Exception ex) {
78+
ex.printStackTrace();
8579
}
86-
} catch (Exception ex) {
87-
ex.printStackTrace();
80+
listener.changeDrawerPanel();
8881
}
89-
listener.changeDrawerPanel();
9082
}
9183

92-
@Override
93-
/**
94-
* Nothing
95-
*/
96-
public void popupMenuCanceled(PopupMenuEvent e) {
97-
}
98-
84+
9985
public interface ModelSelectionListener {
10086

10187
void changeDrawerPanel();

0 commit comments

Comments
 (0)