Dan Haywood created ISIS-996:
--------------------------------
Summary: Not possible to "replace" components in Wicket viewer
(workaround is to use "add")
Key: ISIS-996
URL: https://issues.apache.org/jira/browse/ISIS-996
Project: Isis
Issue Type: Bug
Components: Viewer: Wicket
Affects Versions: viewer-wicket-1.7.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
Fix For: viewer-wicket-1.9.0
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".
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)