Skip to content

Commit 99a549d

Browse files
authored
Merge pull request #377 from scijava/fix-autofill-in-scripts
Respect autoFill parameter in script parameters
2 parents d304cea + 6eeef9a commit 99a549d

File tree

4 files changed

+27
-7
lines changed

4 files changed

+27
-7
lines changed

src/main/java/org/scijava/module/DefaultMutableModuleItem.java

+13
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public class DefaultMutableModuleItem<T> extends AbstractModuleItem<T>
5454
private final Type genericType;
5555
private ItemIO ioType;
5656
private ItemVisibility visibility;
57+
private boolean autoFill;
5758
private boolean required;
5859
private boolean persisted;
5960
private String persistKey;
@@ -88,6 +89,7 @@ public DefaultMutableModuleItem(final ModuleInfo info, final String name,
8889
genericType = type;
8990
ioType = super.getIOType();
9091
visibility = super.getVisibility();
92+
autoFill = super.isAutoFill();
9193
required = super.isRequired();
9294
persisted = super.isPersisted();
9395
persistKey = super.getPersistKey();
@@ -115,6 +117,7 @@ public DefaultMutableModuleItem(final ModuleInfo info,
115117
genericType = item.getGenericType();
116118
ioType = item.getIOType();
117119
visibility = item.getVisibility();
120+
autoFill = item.isAutoFill();
118121
required = item.isRequired();
119122
persisted = item.isPersisted();
120123
persistKey = item.getPersistKey();
@@ -146,6 +149,11 @@ public void setVisibility(final ItemVisibility visibility) {
146149
this.visibility = visibility;
147150
}
148151

152+
@Override
153+
public void setAutoFill(final boolean autoFill) {
154+
this.autoFill = autoFill;
155+
}
156+
149157
@Override
150158
public void setRequired(final boolean required) {
151159
this.required = required;
@@ -244,6 +252,11 @@ public ItemVisibility getVisibility() {
244252
return visibility;
245253
}
246254

255+
@Override
256+
public boolean isAutoFill() {
257+
return autoFill;
258+
}
259+
247260
@Override
248261
public boolean isRequired() {
249262
return required;

src/main/java/org/scijava/module/MutableModuleItem.java

+2
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ public interface MutableModuleItem<T> extends ModuleItem<T> {
4949

5050
void setVisibility(ItemVisibility visibility);
5151

52+
void setAutoFill(boolean autoFill);
53+
5254
void setRequired(boolean required);
5355

5456
void setPersisted(boolean persisted);

src/main/java/org/scijava/script/process/ParameterScriptProcessor.java

+1
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ private <T> void assignAttribute(final DefaultMutableModuleItem<T> item,
270270
else if (is(k, "max")) item.setMaximumValue(as(v, item.getType()));
271271
else if (is(k, "min")) item.setMinimumValue(as(v, item.getType()));
272272
else if (is(k, "name")) item.setName(as(v, String.class));
273+
else if (is(k, "autoFill")) item.setAutoFill(as(v, boolean.class));
273274
else if (is(k, "persist")) item.setPersisted(as(v, boolean.class));
274275
else if (is(k, "persistKey")) item.setPersistKey(as(v, String.class));
275276
else if (is(k, "required")) item.setRequired(as(v, boolean.class));

src/test/java/org/scijava/script/ScriptInfoTest.java

+11-7
Original file line numberDiff line numberDiff line change
@@ -252,13 +252,14 @@ public void testVersion() throws IOException {
252252
@Test
253253
public void testParameters() {
254254
final String script = "" + //
255-
"% @LogService(required = false) log\n" + //
256-
"% @int(label=\"Slider Value\", softMin=5, softMax=15, " + //
255+
"#@ LogService (required = false) log\n" + //
256+
"#@ int (label=\"Slider Value\", softMin=5, softMax=15, " + //
257257
"stepSize=3, value=11, style=\"slider\") sliderValue\n" + //
258-
"% @String(persist = false, family='Carnivora', " + //
258+
"#@ String (persist = false, family='Carnivora', " + //
259259
"choices={'quick brown fox', 'lazy dog'}) animal\n" + //
260-
"% @String(visibility=MESSAGE) msg\n" + //
261-
"% @BOTH java.lang.StringBuilder buffer";
260+
"#@ Double (autoFill = false) notAutoFilled\n" + //
261+
"#@ String (visibility=MESSAGE) msg\n" + //
262+
"#@BOTH java.lang.StringBuilder buffer";
262263

263264
final ScriptInfo info =
264265
new ScriptInfo(context, "params.bsizes", new StringReader(script));
@@ -280,6 +281,9 @@ public void testParameters() {
280281
null, null, null, null, null, null, null, null, animalChoices, animal);
281282
assertEquals(animal.get("family"), "Carnivora"); // test custom attribute
282283

284+
final ModuleItem<?> notAutoFilled = info.getInput("notAutoFilled");
285+
assertFalse(notAutoFilled.isAutoFill());
286+
283287
final ModuleItem<?> msg = info.getInput("msg");
284288
assertSame(ItemVisibility.MESSAGE, msg.getVisibility());
285289

@@ -288,7 +292,7 @@ public void testParameters() {
288292
null, null, null, null, null, null, null, null, noChoices, buffer);
289293

290294
int inputCount = 0;
291-
final ModuleItem<?>[] inputs = { log, sliderValue, animal, msg, buffer };
295+
final ModuleItem<?>[] inputs = { log, sliderValue, animal, notAutoFilled, msg, buffer };
292296
for (final ModuleItem<?> inItem : info.inputs()) {
293297
assertSame(inputs[inputCount++], inItem);
294298
}
@@ -404,7 +408,7 @@ public List<String> getExtensions() {
404408
}
405409
}
406410

407-
// -- Test script langauge --
411+
// -- Test script language --
408412

409413
private static class BindingSizesEngine extends AbstractScriptEngine {
410414

0 commit comments

Comments
 (0)