Skip to content

Commit 4679622

Browse files
committed
DefaultWidgetModel: use default when value is null
Before this change, it was up to individual widget implementations to actually respect the default value... and most of them didn't. This change makes respecting the default value automatic!
1 parent 46d8989 commit 4679622

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/main/java/org/scijava/widget/DefaultWidgetModel.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.scijava.module.MethodCallException;
4545
import org.scijava.module.Module;
4646
import org.scijava.module.ModuleItem;
47+
import org.scijava.module.ModuleService;
4748
import org.scijava.plugin.Parameter;
4849
import org.scijava.thread.ThreadService;
4950
import org.scijava.util.ClassUtils;
@@ -70,6 +71,9 @@ public class DefaultWidgetModel extends AbstractContextual implements WidgetMode
7071
@Parameter
7172
private ConvertService convertService;
7273

74+
@Parameter
75+
private ModuleService moduleService;
76+
7377
@Parameter(required = false)
7478
private LogService log;
7579

@@ -84,6 +88,11 @@ public DefaultWidgetModel(final Context context, final InputPanel<?, ?> inputPan
8488
this.item = item;
8589
this.objectPool = objectPool;
8690
convertedObjects = new WeakHashMap<Object, Object>();
91+
92+
if (item.getValue(module) == null) {
93+
// assign the item's default value as the current value
94+
setValue(moduleService.getDefaultValue(item));
95+
}
8796
}
8897

8998
@Override

0 commit comments

Comments
 (0)