Skip to content

Commit d3f0040

Browse files
committed
Enable default parameter values in scripts
You can now write: @int(value = 5) sigma And the sigma variable will have a default value of 5 the first time the script is run. Nicer would be: @int sigma = 5 But implementing that would be more involved, and so should probably wait till script parameter parsing is truly fixed as described in #156.
1 parent 5e54f89 commit d3f0040

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

src/main/java/org/scijava/module/process/DefaultValuePreprocessor.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,41 +34,39 @@
3434
import org.scijava.Priority;
3535
import org.scijava.module.Module;
3636
import org.scijava.module.ModuleItem;
37-
import org.scijava.module.ModuleService;
38-
import org.scijava.plugin.Parameter;
3937
import org.scijava.plugin.Plugin;
4038

4139
/**
4240
* A preprocessor plugin that populates default parameter values.
4341
* <p>
44-
* Default values are determined using {@link ModuleService#getDefaultValue}.
42+
* Default values are determined using {@link ModuleItem#getDefaultValue}.
4543
* </p>
4644
*
4745
* @author Curtis Rueden
4846
*/
4947
@Plugin(type = PreprocessorPlugin.class, priority = Priority.VERY_HIGH_PRIORITY)
5048
public class DefaultValuePreprocessor extends AbstractPreprocessorPlugin {
5149

52-
@Parameter
53-
private ModuleService moduleService;
54-
5550
// -- ModuleProcessor methods --
5651

5752
@Override
5853
public void process(final Module module) {
5954
for (final ModuleItem<?> input : module.getInfo().inputs()) {
6055
assignDefaultValue(module, input);
6156
}
57+
for (final ModuleItem<?> output : module.getInfo().outputs()) {
58+
assignDefaultValue(module, output);
59+
}
6260
}
6361

6462
// -- Helper methods --
6563

6664
private <T> void assignDefaultValue(final Module module,
67-
final ModuleItem<T> input)
65+
final ModuleItem<T> item)
6866
{
69-
final T defaultValue = moduleService.getDefaultValue(input);
67+
final T defaultValue = item.getDefaultValue();
7068
if (defaultValue == null) return;
71-
input.setValue(module, defaultValue);
69+
item.setValue(module, defaultValue);
7270
}
7371

7472
}

src/main/java/org/scijava/script/ScriptInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ else if ("visibility".equalsIgnoreCase(key)) {
461461
item.setVisibility(convertService.convert(value, ItemVisibility.class));
462462
}
463463
else if ("value".equalsIgnoreCase(key)) {
464-
item.setWidgetStyle(value);
464+
item.setDefaultValue(convertService.convert(value, item.getType()));
465465
}
466466
else {
467467
throw new ScriptException("Invalid attribute name: " + key);

0 commit comments

Comments
 (0)