Skip to content

Commit eda4d79

Browse files
committed
do something when the image of interest is closed
1 parent 16375ba commit eda4d79

File tree

3 files changed

+28
-5
lines changed

3 files changed

+28
-5
lines changed

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,8 @@ protected Object getSelectedObject() {
4646
protected <T extends RealType<T> & NativeType<T>> RandomAccessibleInterval<T> getSelectedRai() {
4747
return ((ComboBoxItem) this.cmbBox.getSelectedItem()).getImageAsImgLib2();
4848
}
49-
50-
@Override
51-
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
49+
50+
protected void updateList() {
5251
try {
5352
List<ComboBoxItem> openSeqs = consumer.getListOfOpenImages();
5453
ComboBoxItem[] objects = new ComboBoxItem[openSeqs.size()];
@@ -62,6 +61,11 @@ public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
6261
}
6362
}
6463

64+
@Override
65+
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
66+
updateList();
67+
}
68+
6569
@Override
6670
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
6771
try {

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

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,24 @@ public MainGUI(List<SAMModel> modelList, ConsumerInterface consumer) {
102102

103103
createListeners();
104104
this.consumer = consumer;
105-
this.consumer.setCallback(consumerCallback);
106105
cmbImages = ImageSelectionOnlyComboBox.create(this.consumer, imageListener);
107-
108106
if (modelList == null) this.modelList = DEFAULT_MODEL_LIST;
109107
else this.modelList = modelList;
110108
cmbModels = ModelSelection.create(this.modelList, modelListener);
111109

110+
this.consumer.setGuiCallback(() -> {
111+
setTwoThirdsEnabled(false);
112+
cmbImages.updateList();
113+
go.setEnabled(false);
114+
go.showAnimation(true);
115+
new Thread(() -> {
116+
go.setEnabled(cmbModels.getSelectedModel().isInstalled());
117+
go.showAnimation(false);
118+
}).start();
119+
});
120+
this.consumer.setCallback(consumerCallback);
121+
122+
112123

113124
drawerPanel = ModelDrawerPanel.create(DRAWER_HORIZONTAL_SIZE, this.modelDrawerListener);
114125

src/main/java/ai/nets/samj/ui/ConsumerInterface.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import java.awt.Rectangle;
2424
import java.util.List;
2525

26+
import javax.security.auth.callback.Callback;
27+
2628
import ai.nets.samj.annotation.Mask;
2729
import ai.nets.samj.communication.model.SAMModel;
2830
import ai.nets.samj.gui.components.ComboBoxItem;
@@ -45,6 +47,8 @@ public interface ConsumerCallback {
4547

4648
}
4749

50+
protected Runnable guiCallback;
51+
4852
protected ConsumerCallback callback;
4953

5054
/**
@@ -118,6 +122,10 @@ public void setModel(SAMModel model) {
118122
this.selectedModel = model;
119123
}
120124

125+
public void setGuiCallback(Runnable guiCallback) {
126+
this.guiCallback = guiCallback;
127+
}
128+
121129
public void setCallback(ConsumerCallback callback) {
122130
this.callback = callback;
123131
}

0 commit comments

Comments
 (0)