Skip to content

Commit a2221a6

Browse files
committed
WIP: ScriptInfo: allow default values in scripts
[This is a WIP because it doesn't actually work in my tests. Haven't had time to debug why yet, though.] So now you can write: @int(value = 5) sigma And the sigma variable will have a default value of 5 the first time the script is run. Nicer might be: @int sigma = 5 But doing that would be more involved, and so should probably wait till script parameter parsing is truly fixed as described in #156.
1 parent 0abf0ec commit a2221a6

File tree

6 files changed

+24
-1
lines changed

6 files changed

+24
-1
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,11 @@ public String getWidgetStyle() {
215215
return null;
216216
}
217217

218+
@Override
219+
public T getDefaultValue() {
220+
return null;
221+
}
222+
218223
@Override
219224
public T getMinimumValue() {
220225
return null;

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,8 @@ public <T> T load(final ModuleItem<T> item) {
302302

303303
@Override
304304
public <T> T getDefaultValue(final ModuleItem<T> item) {
305+
final T defaultValue = item.getDefaultValue();
306+
if (defaultValue != null) return defaultValue;
305307
final T min = item.getMinimumValue();
306308
if (min != null) return min;
307309
final T softMin = item.getSoftMinimum();

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public class DefaultMutableModuleItem<T> extends AbstractModuleItem<T>
5959
private String initializer;
6060
private String callback;
6161
private String widgetStyle;
62+
private T defaultValue;
6263
private T minimumValue;
6364
private T maximumValue;
6465
private T softMinimum;
@@ -171,6 +172,11 @@ public void setWidgetStyle(final String widgetStyle) {
171172
this.widgetStyle = widgetStyle;
172173
}
173174

175+
@Override
176+
public void setDefaultValue(final T defaultValue) {
177+
this.defaultValue = defaultValue;
178+
}
179+
174180
@Override
175181
public void setMinimumValue(final T minimumValue) {
176182
this.minimumValue = minimumValue;
@@ -259,6 +265,11 @@ public String getWidgetStyle() {
259265
return widgetStyle;
260266
}
261267

268+
@Override
269+
public T getDefaultValue() {
270+
return defaultValue;
271+
}
272+
262273
@Override
263274
public T getMinimumValue() {
264275
return minimumValue;

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ public interface ModuleItem<T> extends BasicDetails {
146146
*/
147147
String getWidgetStyle();
148148

149+
/** Gets the default value. */
150+
T getDefaultValue();
151+
149152
/** Gets the minimum allowed value (if applicable). */
150153
T getMinimumValue();
151154

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ public interface MutableModuleItem<T> extends ModuleItem<T> {
6060

6161
void setWidgetStyle(String widgetStyle);
6262

63+
void setDefaultValue(T defaultValue);
64+
6365
void setMinimumValue(T minimumValue);
6466

6567
void setMaximumValue(T maximumValue);

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)