Skip to content

Commit 27ee285

Browse files
committed
Use BatchService to retrieve compatible inputs in ScriptInfo widget
1 parent f350235 commit 27ee285

File tree

1 file changed

+9
-33
lines changed

1 file changed

+9
-33
lines changed

src/main/java/org/scijava/batch/SwingScriptInfoWidget.java

Lines changed: 9 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,16 @@
22

33
import java.awt.event.ActionEvent;
44
import java.awt.event.ActionListener;
5-
import java.io.File;
65
import java.util.HashMap;
6+
import java.util.List;
77
import java.util.Map;
88

99
import javax.swing.JComboBox;
1010
import javax.swing.JPanel;
1111

1212
import org.scijava.Priority;
13-
import org.scijava.convert.ConvertService;
1413
import org.scijava.log.LogService;
15-
import org.scijava.module.Module;
16-
import org.scijava.module.ModuleService;
14+
import org.scijava.module.ModuleItem;
1715
import org.scijava.plugin.Parameter;
1816
import org.scijava.plugin.Plugin;
1917
import org.scijava.script.ScriptInfo;
@@ -22,18 +20,15 @@
2220
import org.scijava.widget.InputWidget;
2321
import org.scijava.widget.WidgetModel;
2422

25-
@Plugin(type = InputWidget.class, priority = Priority.NORMAL_PRIORITY)
23+
@Plugin(type = InputWidget.class, priority = Priority.NORMAL)
2624
public class SwingScriptInfoWidget extends SwingInputWidget<ScriptInfo>
2725
implements ActionListener, ScriptInfoWidget<JPanel> {
2826

2927
@Parameter
30-
private ScriptService scripts;
28+
private ScriptService scriptService;
3129

3230
@Parameter
33-
private ModuleService modules;
34-
35-
@Parameter
36-
private ConvertService convert;
31+
private BatchService batchService;
3732

3833
@Parameter
3934
private LogService log;
@@ -55,30 +50,11 @@ public void actionPerformed(final ActionEvent e) {
5550
public void set(final WidgetModel model) {
5651
super.set(model);
5752

58-
// get required class from style attribute
59-
String style = model.getItem().getWidgetStyle();
60-
if (style == null) {
61-
style = "java.io.File"; // default to File
62-
}
63-
Class<?> inputType;
64-
try {
65-
inputType = Class.forName(style);
66-
} catch (ClassNotFoundException exc) {
67-
log.warn("Wrong style attribute: ", exc);
68-
inputType = File.class;
69-
}
70-
7153
// create script map
72-
for (ScriptInfo script : scripts.getScripts()) {
73-
Module scriptModule = modules.createModule(script);
74-
for (String inputItem : scriptModule.getInputs().keySet()) {
75-
// TODO consider replacing by isAssignableFrom
76-
if (convert.supports(inputType, script.getInput(inputItem).getType())) {
77-
//if (script.getInput(inputItem).getType().isAssignableFrom(inputType)) {
78-
log.info("Support conversion from " + inputType + " to " + script.getInput(inputItem).getType());
79-
scriptMap.put(script.getMenuPath().getMenuString(), script);
80-
break;
81-
}
54+
for (ScriptInfo script : scriptService.getScripts()) {
55+
List<ModuleItem<?>> compatibleInputs = batchService.batchableInputs(script);
56+
if (!compatibleInputs.isEmpty()) {
57+
scriptMap.put(script.getMenuPath().getMenuString(), script);
8258
}
8359
}
8460

0 commit comments

Comments
 (0)