diff --git a/src/main/java/bdv/ui/Card.java b/src/main/java/bdv/ui/Card.java index a99eea901..fced27e40 100644 --- a/src/main/java/bdv/ui/Card.java +++ b/src/main/java/bdv/ui/Card.java @@ -29,7 +29,7 @@ public interface Card * * @return is visible */ - default boolean getDefaultVisibilty() + default boolean getDefaultVisibility() { return true; } diff --git a/src/main/java/bdv/ui/CardPanel.java b/src/main/java/bdv/ui/CardPanel.java index b6d9438d4..45ac1c931 100644 --- a/src/main/java/bdv/ui/CardPanel.java +++ b/src/main/java/bdv/ui/CardPanel.java @@ -19,6 +19,9 @@ import org.scijava.command.CommandService; import org.scijava.module.ModuleException; import org.scijava.module.ModuleItem; +import org.scijava.module.process.ServicePreprocessor; +import org.scijava.plugin.PluginInfo; +import org.scijava.plugin.SciJavaPlugin; /** * CardPanel handles components in named {@link CardWrapper}s which can be opened or closed. @@ -73,9 +76,11 @@ public void addAll( final Class< ? extends DiscoverableCard > type, final Map< C try { final CommandModule cardModule = new CommandModule( cardInfo ); + populateServices(cardModule, commandService); boolean allInputsResolved = true; for ( final ModuleItem< ? > item : cardInfo.inputs() ) { + if(cardModule.isInputResolved(item.getName())) continue; final Class< ? > inputKlass = item.getType(); if ( parameterMap.containsKey( inputKlass ) ) @@ -92,7 +97,7 @@ public void addAll( final Class< ? extends DiscoverableCard > type, final Map< C if ( allInputsResolved ) { final Card card = ( ( DiscoverableCard ) cardModule.getCommand() ).getCard(); - addCard( card.getName(), card.getComponent(), card.getDefaultVisibilty() ); + addCard( card.getName(), card.getComponent(), card.getDefaultVisibility() ); } } catch ( ModuleException e ) @@ -102,6 +107,12 @@ public void addAll( final Class< ? extends DiscoverableCard > type, final Map< C } ); } + private void populateServices(CommandModule module, CommandService commandService) { + PluginInfo preprocessorInfo = commandService.pluginService().getPlugin(ServicePreprocessor.class); + ServicePreprocessor preprocessor = (ServicePreprocessor) commandService.pluginService().createInstance(preprocessorInfo); + preprocessor.process(module); + } + /** * Add a new {@link JComponent} to the card panel. * diff --git a/src/test/java/bdv/ui/ExampleCard.java b/src/test/java/bdv/ui/ExampleCard.java index 01e4ddff0..dd2e3c3b5 100644 --- a/src/test/java/bdv/ui/ExampleCard.java +++ b/src/test/java/bdv/ui/ExampleCard.java @@ -45,7 +45,7 @@ public JComponent getComponent() } @Override - public boolean getDefaultVisibilty() + public boolean getDefaultVisibility() { return false; } diff --git a/src/test/java/bdv/ui/ExampleCardHighPriority.java b/src/test/java/bdv/ui/ExampleCardHighPriority.java index 22dd50d04..2efeb30ce 100644 --- a/src/test/java/bdv/ui/ExampleCardHighPriority.java +++ b/src/test/java/bdv/ui/ExampleCardHighPriority.java @@ -48,7 +48,7 @@ public JComponent getComponent() } @Override - public boolean getDefaultVisibilty() + public boolean getDefaultVisibility() { return true; }