[ https://issues.apache.org/jira/browse/ISIS-996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Keir Haywood updated ISIS-996: ------------------------------------- Fix Version/s: (was: 2.1.4) Description: was previously: Not possible to "replace" components in Wicket viewer (workaround is to use "add") ~~~~~ As per [http://isis.markmail.org/thread/x3k2www3m2wfsgtv] To recreate: - copy ReferencePanelFactory to ReferencePanelFactory2 in (subclass of) IsisWicketApplication, add: {code:java} @com.google.inject.Singleton public static class MyComponentFactoryRegistrar extends ComponentFactoryRegistrarDefault { @Override public void addComponentFactories(ComponentFactoryList componentFactories) { super.addComponentFactories(componentFactories); componentFactories.replace(new ReferencePanelFactory2()); } } {code} and {code:java} final Module overrides = new AbstractModule() { @Override protected void configure() { ... bind(ComponentFactoryRegistrar.class). to(MyComponentFactoryRegistrar.class); } }; {code} the issue is that "replace" ends up replacing all component factories of type ComponentType.SCALAR_NAME_AND_VALUE, whereas it should instead just replace the one for ReferencePanelFactory. The workaround is easy enough: call "add" (which puts new factory at beginning of list) rather than "replace". was: As per http://isis.markmail.org/thread/x3k2www3m2wfsgtv To recreate: - copy ReferencePanelFactory to ReferencePanelFactory2 in (subclass of) IsisWicketApplication, add: {code} @com.google.inject.Singleton public static class MyComponentFactoryRegistrar extends ComponentFactoryRegistrarDefault { @Override public void addComponentFactories(ComponentFactoryList componentFactories) { super.addComponentFactories(componentFactories); componentFactories.replace(new ReferencePanelFactory2()); } } {code} and {code} final Module overrides = new AbstractModule() { @Override protected void configure() { ... bind(ComponentFactoryRegistrar.class). to(MyComponentFactoryRegistrar.class); } }; {code} the issue is that "replace" ends up replacing all component factories of type ComponentType.SCALAR_NAME_AND_VALUE, whereas it should instead just replace the one for ReferencePanelFactory. The workaround is easy enough: call "add" (which puts new factory at beginning of list) rather than "replace". Issue Type: Improvement (was: Bug) Priority: Major (was: Minor) Summary: Define component factories as Spring @Components (was: Not possible to "replace" components in Wicket viewer (workaround is to use "add")) > Define component factories as Spring @Components > ------------------------------------------------ > > Key: ISIS-996 > URL: https://issues.apache.org/jira/browse/ISIS-996 > Project: Isis > Issue Type: Improvement > Components: Isis Viewer Wicket > Affects Versions: viewer-wicket-1.7.0 > Reporter: Daniel Keir Haywood > Priority: Major > > was previously: > Not possible to "replace" components in Wicket viewer (workaround is to use > "add") > ~~~~~ > As per [http://isis.markmail.org/thread/x3k2www3m2wfsgtv] > To recreate: > - copy ReferencePanelFactory to ReferencePanelFactory2 > in (subclass of) IsisWicketApplication, add: > {code:java} > @com.google.inject.Singleton > public static class MyComponentFactoryRegistrar extends > ComponentFactoryRegistrarDefault { > @Override > public void addComponentFactories(ComponentFactoryList > componentFactories) { > super.addComponentFactories(componentFactories); > componentFactories.replace(new ReferencePanelFactory2()); > } > } > {code} > and > {code:java} > final Module overrides = new AbstractModule() { > @Override > protected void configure() { > ... > bind(ComponentFactoryRegistrar.class). > to(MyComponentFactoryRegistrar.class); > } > }; > {code} > the issue is that "replace" ends up replacing all component factories of type > ComponentType.SCALAR_NAME_AND_VALUE, whereas it should instead just replace > the one for ReferencePanelFactory. > The workaround is easy enough: call "add" (which puts new factory at > beginning of list) rather than "replace". -- This message was sent by Atlassian Jira (v8.3.4#803005)