See also issue 72091 which describes the changes for a different project type.
Created attachment 38218 [details]
complete patch of changes in freeform module and it's friend modules
please review this non-compatible change in friend api.
I removed custom Lookup and Customizer extending apis and replaced them by the
new project extensibility apis.
That means deleting relevant methods in ProjectNature interface and rewrite of
all api friends codebase.
Y01 I'd like to eliminate the TODO that is part of following change:
+ InstanceContent ic = new InstanceContent();
+ Lookup context = new AbstractLookup(ic);
+ //TODO replace with generic apis..
+ OptionListener listener = new OptionListener( project );
+ dialog =
null, listener, null );
I really do not like the reuse of InstanceContent as an API. It was never
meant to be an API - it is just a helper support class. The API is Lookup, the
SPI (and support) is Lookups, ProxyLookup, AbstractLookup,
AbstractLookup.Content, InstanceContent, etc. That is why I'd like to find
another way how to share data among individual panels.
Imho, having such API would potentially be useful everywhere, not just in
freefrom friend API and that is why I'd like to propose following changes:
#1: allow a Category to have associated lookup - that means adding new factory
method in the Category class. The lookup might or might not be used, depending
on the usage of the Category.
#2: However is the Category is used from
ProjectCustomizer.createCustomizerDialog, it would be guaranteed that the
content of the lookup is going to be added to the lookup passed back to the
Imho this is similar pattern used in Tools/Options where each panel can donate
a context and gets context merged from all others back.
re Y01: i've filed a separate issue for that #95049, because that is not only
limited to freeform and it's friend APIs, but a generic project api enhancement.
Is M7 still the target milestone?
nope, let's make it M8, i'm sick and don't have access to my office computer
where the changes reside.